Skip to content

Abstract FrameMetricsAggregator to FrameMetricsRecorder class #3698

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 5, 2022

Conversation

visumickey
Copy link
Contributor

@visumickey visumickey commented May 5, 2022

Make AppStateMonitor to not care about FrameMetricsAggregator. Instead make the AppStateMonitor depend on FrameMetricsRecorder (which abstracts FrameMetricsAggregator)

… `FrameMetricsRecorder` (#3665)

* FrameMetricsRecorder and its tests, missing tests for snapshot()

* Add tests for `snapshot()`

* Remove all null and use Optional instead

* fixing some review comments

* javadoc, change nullable to any, and change Object to Fragment

* log Exception

* better javadoc to explain FrameMetricsRecorder must be dereferenced

* snapshot uses  FrameMetricsCalculator, make snapshot private, make tests follow unit test practices

* remove equals

* fix Julio's comments

* fix Visu's comments

* fix log level

* clear fragmentSnapshotMap

* add test for dangling fragment behavior
@google-oss-bot
Copy link
Contributor

google-oss-bot commented May 5, 2022

Coverage Report 1

Affected Products

  • firebase-perf

    Overall coverage changed from ? (f625c8c) to 71.38% (4cf57e7) by ?.

    101 individual files with coverage change

    FilenameBase (f625c8c)Merge (4cf57e7)Diff
    AddTrace.java?0.00%?
    AndroidApplicationInfo.java?34.71%?
    AndroidApplicationInfoOrBuilder.java?0.00%?
    AndroidLogger.java?100.00%?
    AndroidMemoryReading.java?38.36%?
    AndroidMemoryReadingOrBuilder.java?0.00%?
    ApplicationInfo.java?45.00%?
    ApplicationInfoOrBuilder.java?0.00%?
    ApplicationProcessState.java?73.91%?
    AppStartTrace.java?86.54%?
    AppStateMonitor.java?86.71%?
    AppStateUpdateHandler.java?92.86%?
    Clock.java?100.00%?
    ConfigResolver.java?97.38%?
    ConfigurationConstants.java?99.25%?
    ConfigurationFlag.java?100.00%?
    ConsoleUrlGenerator.java?37.50%?
    Constants.java?95.65%?
    Counter.java?90.91%?
    CpuGaugeCollector.java?92.77%?
    CpuMetricReading.java?39.33%?
    CpuMetricReadingOrBuilder.java?0.00%?
    DaggerFirebasePerformanceComponent.java?100.00%?
    DeviceCacheManager.java?76.03%?
    FirebasePerfApplicationInfoValidator.java?92.86%?
    FirebasePerfGaugeMetricValidator.java?100.00%?
    FirebasePerfHttpClient.java?93.85%?
    FirebasePerfMetricProto.java?0.00%?
    FirebasePerfNetworkValidator.java?86.67%?
    FirebasePerfOkHttpClient.java?44.90%?
    FirebasePerformance.java?79.12%?
    FirebasePerformanceAttributable.java?0.00%?
    FirebasePerformanceComponent.java?0.00%?
    FirebasePerformanceInitializer.java?33.33%?
    FirebasePerformanceModule.java?100.00%?
    FirebasePerformanceModule_ProvidesConfigResolverFactory.java?100.00%?
    FirebasePerformanceModule_ProvidesFirebaseAppFactory.java?100.00%?
    FirebasePerformanceModule_ProvidesFirebaseInstallationsFactory.java?100.00%?
    FirebasePerformanceModule_ProvidesRemoteConfigComponentFactory.java?100.00%?
    FirebasePerformanceModule_ProvidesRemoteConfigManagerFactory.java?100.00%?
    FirebasePerformanceModule_ProvidesSessionManagerFactory.java?100.00%?
    FirebasePerformanceModule_ProvidesTransportFactoryProviderFactory.java?100.00%?
    FirebasePerformance_Factory.java?100.00%?
    FirebasePerfProvider.java?76.92%?
    FirebasePerfRegistrar.java?100.00%?
    FirebasePerfTraceValidator.java?85.87%?
    FirebasePerfUrlConnection.java?44.26%?
    FlgTransport.java?83.33%?
    FragmentStateMonitor.java?89.47%?
    FrameMetricsCalculator.java?96.77%?
    FrameMetricsRecorder.java?78.38%?
    GaugeManager.java?98.43%?
    GaugeMetadata.java?32.21%?
    GaugeMetadataManager.java?84.21%?
    GaugeMetadataOrBuilder.java?0.00%?
    GaugeMetric.java?39.47%?
    GaugeMetricOrBuilder.java?0.00%?
    HttpMetric.java?92.65%?
    ImmutableBundle.java?100.00%?
    InstrHttpInputStream.java?92.86%?
    InstrHttpOutputStream.java?98.00%?
    InstrHttpsURLConnection.java?94.32%?
    InstrHttpURLConnection.java?93.42%?
    InstrumentApacheHttpResponseHandler.java?100.00%?
    InstrumentOkHttpEnqueueCallback.java?100.00%?
    InstrURLConnectionBase.java?94.86%?
    LogWrapper.java?23.08%?
    MemoryGaugeCollector.java?91.38%?
    NetworkConnectionInfo.java?0.00%?
    NetworkConnectionInfoOrBuilder.java?0.00%?
    NetworkRequestMetric.java?49.16%?
    NetworkRequestMetricBuilder.java?95.97%?
    NetworkRequestMetricBuilderUtil.java?75.00%?
    NetworkRequestMetricOrBuilder.java?0.00%?
    Optional.java?86.67%?
    PendingPerfEvent.java?100.00%?
    PerfMetric.java?33.67%?
    PerfMetricOrBuilder.java?0.00%?
    PerfMetricValidator.java?93.55%?
    PerfSession.java?93.22%?
    PerfSessionOrBuilder.java?0.00%?
    Rate.java?100.00%?
    RateLimiter.java?90.98%?
    RemoteConfigManager.java?92.86%?
    ResourceType.java?0.00%?
    ScreenTraceUtil.java?94.12%?
    SessionAwareObject.java?0.00%?
    SessionManager.java?100.00%?
    SessionVerbosity.java?68.42%?
    StorageUnit.java?57.89%?
    Timer.java?93.75%?
    Trace.java?96.67%?
    TraceMetric.java?43.14%?
    TraceMetricBuilder.java?100.00%?
    TraceMetricOrBuilder.java?0.00%?
    TransportInfo.java?0.00%?
    TransportInfoOrBuilder.java?0.00%?
    TransportManager.java?95.81%?
    URLAllowlist.java?94.44%?
    URLWrapper.java?0.00%?
    Utils.java?78.57%?

Test Logs

Notes

  • Commit (4cf57e7) is created by Prow via merging PR base commit (f625c8c) and head commit (5695db8).
  • Run gradle <product>:checkCoverage to produce HTML coverage reports locally. After gradle commands finished, report files can be found under <product-build-dir>/reports/jacoco/.

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/3fawmLMCnr.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented May 5, 2022

Size Report 1

Affected Products

  • firebase-perf

    TypeBase (f625c8c)Merge (4cf57e7)Diff
    aar308 kB310 kB+2.54 kB (+0.8%)
    apk (aggressive)1.03 MB1.03 MB+1.04 kB (+0.1%)
    apk (release)2.47 MB2.47 MB+996 B (+0.0%)

Test Logs

Notes

  • Commit (4cf57e7) is created by Prow via merging PR base commit (f625c8c) and head commit (5695db8).

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/dwWziDj5fb.html

@visumickey
Copy link
Contributor Author

/retest

Copy link
Contributor

@leotianlizhan leotianlizhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@visumickey visumickey merged commit 889bf9a into master May 5, 2022
@visumickey visumickey deleted the perf-fix-fma branch May 5, 2022 17:26
@firebase firebase locked and limited conversation to collaborators Jun 5, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants