Skip to content

Commit

Permalink
Fixes #4334: Log report creation support for performance metrics coll…
Browse files Browse the repository at this point in the history
…ection (#4388)

* qualifiers and constants for metric record and upload times

* comments

* dagger provides for flags

* rename to enablePerformanceMetricCollection

* initial proto

* nit fixes

* nit fixes

* comments.

* nits

* nit

* updates.

* updates.

* nits.

* metric log inclusion.

* base setup.

* name correction.

* nits.

* nits.

* storage comment

* pss comment

* network usage comment.

* network usage comment - part 2.

* metric addition in proto definitions.

* metricLog --> loggableMetric

* proto definitions in oppiaLogger

* wording update for transmission

* dependency/api updates.

* nits.

* metric controller and oppiaLogger

* nits

* logger-controller pattern, single utils

* nits

* comments

* performance metric event logger nits.

* nits.

* deleting unused interfaces.

* log generator to metric log scheduler

* nits

* worker functions to schedule logging, renaming

* nits.

* clearing up build errors.

* nits.

* removal of dependency from oppiaLogger and basing the entire implementation on Logger-Controller

* performanceMetricController tests + fakeLogger

* fakeLogger tests

* nits

* tests for the new logger.

* tests for the worker + renaming of package to logScheduler

* tests for work manager initializer

* initial base setup for utils test

* nits

* nits

* performanceMetricsUtils tests

* nits

* renamed logUpload to logReport + nits

* nits

* review updates.

* nit

* review updates - 2

* isAppInForeground revamp

* isAppInForeground revamp

* nits

* domain tests repair

* app tests repair

* nits.

* nits.

* nits.

* nits.

* nit

* test update.

* test update.

* nit

* todo issue number update -- static check

* comments.

* nits.

* utils test + nits

* utils test + nits

* nits

* test rearrangement

* nits

* test fixes.

* nits

* memory and storage tier updates

* memory and storage tier updates

* updates.

* nits

* test file exemptions refactor due to file renaming.

* additional tests, nit fixes.

* activity manager shadow and assessor test

* nit

* nit

* shadow traffic stats + assessor test fix.

* custom shadow tests

* module deps

* tests

* nits

* metricLogScheduler refactor and test

* exemption removal

* nits

* updates.

* variable nits + parameterized test exemption

* app component dependencies.

* nits

* logging module bazel build, config module creation

* testing robolectric bazel module update

* domain bazel build fixes

* working oppia bazel build

* nits.

* nits.

* nit for bazel building

* addition of test file for module

* bazel tests fixes

* more fixes.

* reformatting

* nits

* nits

* dep fix

* deps fix

* deps fix

* nit

* nits

* nits

* test fixes -- renaming.

* deps addition

* previous merge correction

* nits

* updates.

* nits

* bazel update.

* nit

* nits.
  • Loading branch information
Sarthak2601 authored Sep 2, 2022
1 parent 4d4972f commit 64c5b0c
Show file tree
Hide file tree
Showing 206 changed files with 5,579 additions and 540 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,19 @@ android_library(
"//domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput:ratio_input_module",
"//domain/src/main/java/org/oppia/android/domain/classify/rules/textinput:text_input_rule_module",
"//domain/src/main/java/org/oppia/android/domain/onboarding:retriever_prod_module",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/analytics:performance_metrics_logger_module",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/analytics:prod_module",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions:logger_module",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler:metric_log_scheduler_module",
"//domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader:worker_module",
"//utility/src/main/java/org/oppia/android/util/accessibility:prod_module",
"//utility/src/main/java/org/oppia/android/util/caching:asset_prod_module",
"//utility/src/main/java/org/oppia/android/util/caching:caching_prod_module",
"//utility/src/main/java/org/oppia/android/util/locale:prod_module",
"//utility/src/main/java/org/oppia/android/util/logging:prod_module",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:prod_module",
"//utility/src/main/java/org/oppia/android/util/logging/performancemetrics:performance_metrics_assessor_module",
"//utility/src/main/java/org/oppia/android/util/logging/performancemetrics:performance_metrics_configurations_module",
"//utility/src/main/java/org/oppia/android/util/networking:debug_util_module",
"//utility/src/main/java/org/oppia/android/util/parser/html:html_parser_entity_type_module",
"//utility/src/main/java/org/oppia/android/util/parser/image:glide_image_loader_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.LoggingIdentifierModule
import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule
import org.oppia.android.domain.oppialogger.analytics.PerformanceMetricsLoggerModule
import org.oppia.android.domain.oppialogger.exceptions.UncaughtExceptionLoggerModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.platformparameter.syncup.PlatformParameterSyncUpWorkerModule
Expand All @@ -50,6 +52,8 @@ import org.oppia.android.util.logging.LoggerModule
import org.oppia.android.util.logging.SyncStatusModule
import org.oppia.android.util.logging.firebase.FirebaseLogUploaderModule
import org.oppia.android.util.logging.firebase.LogReportingModule
import org.oppia.android.util.logging.performancemetrics.PerformanceMetricsAssessorModule
import org.oppia.android.util.logging.performancemetrics.PerformanceMetricsConfigurationsModule
import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilProdModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
Expand Down Expand Up @@ -77,7 +81,7 @@ import javax.inject.Singleton
LogStorageModule::class, IntentFactoryShimModule::class, ViewBindingShimModule::class,
PrimeTopicAssetsControllerModule::class, ExpirationMetaDataRetrieverModule::class,
RatioInputModule::class, UncaughtExceptionLoggerModule::class,
ApplicationStartupListenerModule::class, LogUploadWorkerModule::class,
ApplicationStartupListenerModule::class, LogReportWorkerModule::class,
WorkManagerConfigurationModule::class, HintsAndSolutionConfigModule::class,
FirebaseLogUploaderModule::class, NetworkModule::class, PracticeTabModule::class,
PlatformParameterModule::class, PlatformParameterSingletonModule::class,
Expand All @@ -89,7 +93,9 @@ import javax.inject.Singleton
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
NetworkConnectionDebugUtilModule::class, LoggingIdentifierModule::class,
SyncStatusModule::class, LogReportingModule::class, NetworkConnectionUtilProdModule::class,
HintsAndSolutionProdModule::class
HintsAndSolutionProdModule::class, MetricLogSchedulerModule::class,
PerformanceMetricsLoggerModule::class, PerformanceMetricsAssessorModule::class,
PerformanceMetricsConfigurationsModule::class
]
)
interface AlphaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.LoggingIdentifierModule
import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule
import org.oppia.android.domain.oppialogger.analytics.PerformanceMetricsLoggerModule
import org.oppia.android.domain.oppialogger.exceptions.UncaughtExceptionLoggerModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterAlphaKenyaModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.platformparameter.syncup.PlatformParameterSyncUpWorkerModule
Expand All @@ -50,6 +52,8 @@ import org.oppia.android.util.logging.LoggerModule
import org.oppia.android.util.logging.SyncStatusModule
import org.oppia.android.util.logging.firebase.FirebaseLogUploaderModule
import org.oppia.android.util.logging.firebase.LogReportingModule
import org.oppia.android.util.logging.performancemetrics.PerformanceMetricsAssessorModule
import org.oppia.android.util.logging.performancemetrics.PerformanceMetricsConfigurationsModule
import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilProdModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
Expand Down Expand Up @@ -77,7 +81,7 @@ import javax.inject.Singleton
LogStorageModule::class, IntentFactoryShimModule::class, ViewBindingShimModule::class,
PrimeTopicAssetsControllerModule::class, ExpirationMetaDataRetrieverModule::class,
RatioInputModule::class, UncaughtExceptionLoggerModule::class,
ApplicationStartupListenerModule::class, LogUploadWorkerModule::class,
ApplicationStartupListenerModule::class, LogReportWorkerModule::class,
WorkManagerConfigurationModule::class, HintsAndSolutionConfigAlphaKenyaModule::class,
FirebaseLogUploaderModule::class, NetworkModule::class, PracticeTabModule::class,
PlatformParameterAlphaKenyaModule::class, PlatformParameterSingletonModule::class,
Expand All @@ -89,7 +93,9 @@ import javax.inject.Singleton
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
NetworkConnectionDebugUtilModule::class, LoggingIdentifierModule::class,
SyncStatusModule::class, LogReportingModule::class, NetworkConnectionUtilProdModule::class,
HintsAndSolutionProdModule::class
HintsAndSolutionProdModule::class, MetricLogSchedulerModule::class,
PerformanceMetricsLoggerModule::class, PerformanceMetricsAssessorModule::class,
PerformanceMetricsConfigurationsModule::class
]
)
interface AlphaKenyaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.LoggingIdentifierModule
import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule
import org.oppia.android.domain.oppialogger.analytics.PerformanceMetricsLoggerModule
import org.oppia.android.domain.oppialogger.exceptions.UncaughtExceptionLoggerModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.platformparameter.syncup.PlatformParameterSyncUpWorkerModule
Expand All @@ -51,6 +53,8 @@ import org.oppia.android.util.logging.LoggerModule
import org.oppia.android.util.logging.SyncStatusModule
import org.oppia.android.util.logging.firebase.DebugLogReportingModule
import org.oppia.android.util.logging.firebase.FirebaseLogUploaderModule
import org.oppia.android.util.logging.performancemetrics.PerformanceMetricsAssessorModule
import org.oppia.android.util.logging.performancemetrics.PerformanceMetricsConfigurationsModule
import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
Expand Down Expand Up @@ -79,7 +83,7 @@ import javax.inject.Singleton
ViewBindingShimModule::class, PrimeTopicAssetsControllerModule::class,
ExpirationMetaDataRetrieverModule::class, RatioInputModule::class,
UncaughtExceptionLoggerModule::class, ApplicationStartupListenerModule::class,
LogUploadWorkerModule::class, WorkManagerConfigurationModule::class,
LogReportWorkerModule::class, WorkManagerConfigurationModule::class,
HintsAndSolutionConfigModule::class, HintsAndSolutionDebugModule::class,
FirebaseLogUploaderModule::class, NetworkModule::class, PracticeTabModule::class,
PlatformParameterModule::class, PlatformParameterSingletonModule::class,
Expand All @@ -90,7 +94,9 @@ import javax.inject.Singleton
NumericExpressionInputModule::class, AlgebraicExpressionInputModule::class,
MathEquationInputModule::class, SplitScreenInteractionModule::class,
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
NetworkConnectionDebugUtilModule::class, LoggingIdentifierModule::class, SyncStatusModule::class
NetworkConnectionDebugUtilModule::class, LoggingIdentifierModule::class,
SyncStatusModule::class, MetricLogSchedulerModule::class, PerformanceMetricsLoggerModule::class,
PerformanceMetricsAssessorModule::class, PerformanceMetricsConfigurationsModule::class
]
)
interface DeveloperApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,8 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.LoggingIdentifierModule
import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.question.QuestionModule
import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
Expand Down Expand Up @@ -824,7 +825,7 @@ class AdministratorControlsActivityTest {
AccessibilityTestModule::class, LogStorageModule::class, CachingTestModule::class,
PrimeTopicAssetsControllerModule::class, ExpirationMetaDataRetrieverModule::class,
ViewBindingShimModule::class, RatioInputModule::class, WorkManagerConfigurationModule::class,
ApplicationStartupListenerModule::class, LogUploadWorkerModule::class,
ApplicationStartupListenerModule::class, LogReportWorkerModule::class,
HintsAndSolutionConfigModule::class, HintsAndSolutionProdModule::class,
FirebaseLogUploaderModule::class, FakeOppiaClockModule::class, PracticeTabModule::class,
DeveloperOptionsStarterModule::class, DeveloperOptionsModule::class,
Expand All @@ -834,7 +835,7 @@ class AdministratorControlsActivityTest {
NumericExpressionInputModule::class, AlgebraicExpressionInputModule::class,
MathEquationInputModule::class, SplitScreenInteractionModule::class,
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
SyncStatusModule::class
SyncStatusModule::class, MetricLogSchedulerModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.LoggingIdentifierModule
import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.question.QuestionModule
import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
Expand Down Expand Up @@ -602,7 +603,7 @@ class AdministratorControlsFragmentTest {
AccessibilityTestModule::class, LogStorageModule::class, CachingTestModule::class,
PrimeTopicAssetsControllerModule::class, ExpirationMetaDataRetrieverModule::class,
ViewBindingShimModule::class, RatioInputModule::class, WorkManagerConfigurationModule::class,
ApplicationStartupListenerModule::class, LogUploadWorkerModule::class,
ApplicationStartupListenerModule::class, LogReportWorkerModule::class,
HintsAndSolutionConfigModule::class, HintsAndSolutionProdModule::class,
FirebaseLogUploaderModule::class, FakeOppiaClockModule::class, PracticeTabModule::class,
DeveloperOptionsStarterModule::class, DeveloperOptionsModule::class,
Expand All @@ -612,7 +613,7 @@ class AdministratorControlsFragmentTest {
NumericExpressionInputModule::class, AlgebraicExpressionInputModule::class,
MathEquationInputModule::class, SplitScreenInteractionModule::class,
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
SyncStatusModule::class
SyncStatusModule::class, MetricLogSchedulerModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.LoggingIdentifierModule
import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.question.QuestionModule
Expand Down Expand Up @@ -280,7 +281,7 @@ class AppVersionActivityTest {
AccessibilityTestModule::class, LogStorageModule::class, CachingTestModule::class,
PrimeTopicAssetsControllerModule::class, ExpirationMetaDataRetrieverModule::class,
ViewBindingShimModule::class, RatioInputModule::class, WorkManagerConfigurationModule::class,
ApplicationStartupListenerModule::class, LogUploadWorkerModule::class,
ApplicationStartupListenerModule::class, LogReportWorkerModule::class,
HintsAndSolutionConfigModule::class, HintsAndSolutionProdModule::class,
FirebaseLogUploaderModule::class, FakeOppiaClockModule::class, PracticeTabModule::class,
DeveloperOptionsStarterModule::class, DeveloperOptionsModule::class,
Expand All @@ -290,7 +291,7 @@ class AppVersionActivityTest {
NumericExpressionInputModule::class, AlgebraicExpressionInputModule::class,
MathEquationInputModule::class, SplitScreenInteractionModule::class,
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
SyncStatusModule::class
SyncStatusModule::class, MetricLogSchedulerModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,9 @@ import org.oppia.android.domain.onboarding.ExpirationMetaDataRetrieverModule
import org.oppia.android.domain.oppialogger.ApplicationIdSeed
import org.oppia.android.domain.oppialogger.LogStorageModule
import org.oppia.android.domain.oppialogger.OppiaLogger
import org.oppia.android.domain.oppialogger.logscheduler.MetricLogSchedulerModule
import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerFactory
import org.oppia.android.domain.oppialogger.loguploader.LogUploadWorkerModule
import org.oppia.android.domain.platformparameter.PlatformParameterModule
import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule
import org.oppia.android.domain.question.QuestionModule
Expand Down Expand Up @@ -189,7 +190,7 @@ class ProfileAndDeviceIdActivityTest {
AccessibilityTestModule::class, LogStorageModule::class, CachingTestModule::class,
PrimeTopicAssetsControllerModule::class, ExpirationMetaDataRetrieverModule::class,
ViewBindingShimModule::class, RatioInputModule::class, WorkManagerConfigurationModule::class,
ApplicationStartupListenerModule::class, LogUploadWorkerModule::class,
ApplicationStartupListenerModule::class, LogReportWorkerModule::class,
HintsAndSolutionConfigModule::class, HintsAndSolutionProdModule::class,
FirebaseLogUploaderModule::class, FakeOppiaClockModule::class, PracticeTabModule::class,
DeveloperOptionsStarterModule::class, DeveloperOptionsModule::class,
Expand All @@ -198,7 +199,7 @@ class ProfileAndDeviceIdActivityTest {
AssetModule::class, LocaleProdModule::class, ActivityRecreatorTestModule::class,
SyncStatusModule::class, SplitScreenInteractionModule::class,
NumericExpressionInputModule::class, AlgebraicExpressionInputModule::class,
MathEquationInputModule::class
MathEquationInputModule::class, MetricLogSchedulerModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Loading

0 comments on commit 64c5b0c

Please sign in to comment.