Closed Bug 1580129 Opened 5 years ago Closed 5 years ago

Add COMPOSITE_TIME metric for geckoview streaming

Categories

(Core :: Graphics, task)

task
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox71 --- fixed

People

(Reporter: jnicol, Assigned: jnicol)

References

Details

Attachments

(3 files)

Spin off from bug 1568589 for the graphics-specific probes.

Hi Allesio, following on from my questions in the other bug.

Glean SDK only understands dates. I'm afraid you'll need to do the conversion manually by looking at our release calendar.

In the example in the docs it has 2019-12-09 # Gecko 73. On the release calendar you linked to, that date correlates to 6 days after 71 is released, and 73 becomes nightly? Is that correct? Some of the probes I'm adding are supposed to expire in gecko 70 and I can't tell what date I'm supposed to use for that.

I've also ran in to a problem trying to add a labeled_counter probe.

gfx.content.frame_time:
  reason:
    type: labeled_counter
    gecko_datapoint: CONTENT_FRAME_TIME_REASON
    description: The reason that CONTENT_FRAME_TIME recorded a slow (>200) result, if any.
    labels:
    - on_time
    - no_vsync
    - missed_composite
    - slow_composite
    - missed_composite_mid
    - missed_composite_long
    - missed_composite_low
    - no_vsync_no_id
    bugs:
      - 1510853
    data_reviews:
      - https://example.com/data-review-url-example
    notification_emails:
      - gfx-telemetry-alerts@mozilla.com
      - mwoodrow@mozilla.com
    expires: 2019-12-09 # Gecko 73

glean_parser gives the following output:

/home/jamie/src/gecko/toolkit/components/telemetry/geckoview/streaming/metrics.yaml:
    ```
    gfx.content.frame_time:
      reason:
        gecko_datapoint: CONTENT_FRAME_TIME_REASON
    ```
    
    'CONTENT_FRAME_TIME_REASON' is too long

It does this no matter how short I make the value of gecko_datapoint. I only hit this error for type: labelled_counter, and if I change the type to something else it works fine.

Flags: needinfo?(alessio.placitelli)

(In reply to Jamie Nicol [:jnicol] from comment #1)

Hi Allesio, following on from my questions in the other bug.

Glean SDK only understands dates. I'm afraid you'll need to do the conversion manually by looking at our release calendar.

In the example in the docs it has 2019-12-09 # Gecko 73. On the release calendar you linked to, that date correlates to 6 days after 71 is released, and 73 becomes nightly? Is that correct? Some of the probes I'm adding are supposed to expire in gecko 70 and I can't tell what date I'm supposed to use for that.

I think the dates were moved a bit in the calendar, that's why there's a mismatch :). For this specific case, I'd use the day Firefox 70 becomes release, 2019-10-21.

@Chris, I quickly checked the codebase, and I think we're not checking for expired histograms in Gecko when when doing streaming telemetry. That's probably correct. However, by reading the above, this sounds a bit confusing. What do you think? Maybe we should keep the check in both places: Gecko engineers really care about their metrics expiring in the version they say. That would make the expiration date for the metrics.yaml file redundant, more of an indication.

I've also ran in to a problem trying to add a labeled_counter probe.

You are trying to implement the only histogram type we don't support yet :P This mechanism does not support categorical histograms yet. That will be available as part of bug 1571740.

Flags: needinfo?(alessio.placitelli) → needinfo?(chutten)
See Also: → 1580196

For a moment there I almost scared myself. Since the Histogram instance gExpiredHistogram is given the id of the first expired histogram someone tries to use, I was thinking that if the first expired histogram was GV Streaming-supporting, then we'd start streaming all samples for all expired histograms over JNI. (And if the order of histogram accumulations is runtime-dependent, which it almost certainly is, this could happen for only some users and cause havoc).

Luckily the original ID is what's used for all the HistogramInfo checks. (I should investigate whether we should use HistogramCount or some other invalid id for gExpiredHistogram's id...)

So it is indeed how you say: the original ID will be of a GV streamer, and though the Histogram instance in internal_HistogramAdd is gExpiredHistogram we won't notice or care if in GV Streaming mode.\

I've filed bug 1580196 to fix the fault in the code.

But back to the case at hand. In the design proposal we encouraged probe owners to only mark for geckoview_streaming those probes that did not expire. The expiry mechanisms for Gecko and Glean do not line up at all and work in different ways: the only expiry value they agree upon is "never". If a probe's needed that currently does expire, and you will make it not expire, please mention in the Data Collection Review that you're making it permanent.

Flags: needinfo?(chutten)

Hi Chris, so to clarify: if we have a current probe in Histograms.json which is due to expire, and we want to collect it from Fenix also, then we should set it to never expire in both Histograms.json and metrics.yaml?

Flags: needinfo?(chutten)

It would save us from mismatches, yes... but it does impose additional complications for the probe owners. Regression tests, ongoing monitoring... It might be that the correct solution would be to not include the probe in the list of ones we wish to report via this mechanism. I can't make that choice for the probe owners, though.

Ultimately there is nothing wrong with having mismatched expiry values: whichever one happens first will stop collection. It might be unexpected, which is why I encouraged the inclusion only of never-expiring probes.

I recommend splitting off the expiring probes to their own bug where we can ni? the probe owners to inform them of what's going on. While that's happening we can proceed in this bug with the probes that we know won't be confusing, so we can get some of these landed sooner. Sound like a plan?

Flags: needinfo?(chutten)

Here's my data review. Please let me know if I've filled it out wrong, first time doing one!

Just for COMPOSITE_TIME initially, as it is a simple probe which is already set to never expire. Once I've got this past review and landed I'll do the others.

Attachment #9094153 - Flags: data-review?(chutten)
Comment on attachment 9094153 [details]
data review for COMPOSITE_TIME

PRELIMINARY NOTES:
To be complete, the Data Review Request should list the Glean metric name in addition to the Telemetry histogram name in this review to be clear about what it's called at recording time (the Telemetry probe name) and what it's called at reporting time (the Glean metric name). In this case it's enough for me that an interested person in the future who finds this review will be able to link things manually using the `gecko_datapoint` in the `metrics.yaml`, but it'd be nice for future ones to have both names.

And also, though it's not required in any way for Data Review, I sometimes peek at the definitions files being changed to make sure that any of the historical Telemetry footguns aren't catching you. For the future Data Reviews I wouldn't mind if the data review request came after the definitions files changes were up for review.

DATA COLLECTION REVIEW RESPONSE:

    Is there or will there be documentation that describes the schema for the ultimate data set available publicly, complete and accurate?

Yes. This collection is Telemetry so is documented in its definitions file [Histograms.json](https://hg.mozilla.org/mozilla-central/file/tip/toolkit/components/telemetry/Histograms.json) and the [Probe Dictionary](https://telemetry.mozilla.org/probe-dictionary/). The Glean part of this is documented in its definitions file [metrics.yaml](https://hg.mozilla.org/mozilla-central/file/tip/toolkit/components/telemetry/geckoview/streaming/metrics.yaml)

    Is there a control mechanism that allows the user to turn the data collection on and off?

Yes. This collection is Telemetry so can be controlled through Firefox Preview's Data Collection Settings. 

    If the request is for permanent data collection, is there someone who will monitor the data over time?

Yes, Jamie Nicol is responsible.

    Using the category system of data types on the Mozilla wiki, what collection type of data do the requested measurements fall under?

Category 1, Technical.

    Is the data collection request for default-on or default-off?

Default on for all channels, across all products currently embedding geckoview in a streaming configuration (&browser and Firefox Preview so far)

    Does the instrumentation include the addition of any new identifiers?

No.

    Is the data collection covered by the existing Firefox privacy notice?

Yes.

    Does there need to be a check-in in the future to determine whether to renew the data?

No. This collection is permanent.

---
Result: datareview+

ni?dexter - will metrics in gecko's metrics.yaml have generated documentation via `glean_parser`? If so, would you know where that lives?
Flags: needinfo?(alessio.placitelli)
Attachment #9094153 - Flags: data-review?(chutten) → data-review+

(In reply to Chris H-C :chutten from comment #7)

ni?dexter - will metrics in gecko's metrics.yaml have generated
documentation via glean_parser? If so, would you know where that lives?

Yes, Glean Autodocs will be available for these metrics. They will live in the related engine-gecko-* consuming package. For example, docs for the GV nightly channel will live here

Flags: needinfo?(alessio.placitelli)

Thanks for the data review Chris. Apologies about the points in your preliminary notes, I'll make sure I do them next time!

Alessio, I'm still hitting the issue where a-c's engine-gecko-nightly/build/.../GleanGeckoMetricsMapping.kt doesn't pick up the metrics from gecko's metrics.yaml, it only works if I copy it in to a-c's engine-gecko-nightly/.../metrics.yaml also. Even after ./gradlew clean and rm -rf ~/.gradle/caches. Are we confident this is just a caching issue and not something I'm missing?

I'll have my patch up for review shortly, just doing one final check it all works (apart from the above issue).

(In reply to Jamie Nicol [:jnicol] from comment #9)

Alessio, I'm still hitting the issue where a-c's engine-gecko-nightly/build/.../GleanGeckoMetricsMapping.kt doesn't pick up the metrics from gecko's metrics.yaml, it only works if I copy it in to a-c's engine-gecko-nightly/.../metrics.yaml also. Even after ./gradlew clean and rm -rf ~/.gradle/caches. Are we confident this is just a caching issue and not something I'm missing?

Yes, but I'm not sure it's caching itself. It's a weird issue that relates to dependency substitution. If copying the metric to engine-gecko-nightly/.../metrics.yaml allows you to test it, and it works, don't worry. It will do the right thing after this is merged. I will keep an eye on it to make sure :)

Attachment #9094854 - Attachment description: Bug 1580129 - Add COMPOSITE_TIME metric for geckoview_streaming telemetry. r?dexter → Bug 1580129 - Add COMPOSITE_TIME metric for geckoview_streaming telemetry. r?dexter,chutten
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/01dd32f2378e
Add COMPOSITE_TIME metric for geckoview_streaming telemetry. r=Dexter,chutten

Backed out changeset 01dd32f2378e (Bug 1580129) for gv-junit failures complaining about testOnTelemetryReceived

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=geckoview-junit-e10s%2C%28gv-junit%29&fromchange=85971c648a8e0dcb0a9168f3691b9b9ea3df62b5&tochange=22b0c9f685ba100c7b30170de68edd5744e1762b&selectedJob=268230593

Backout link: https://hg.mozilla.org/integration/autoland/rev/22b0c9f685ba100c7b30170de68edd5744e1762b

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=268230593&repo=autoland&lineNumber=9103

[task 2019-09-24T20:32:20.497Z] 20:32:20 INFO - TEST-START | org.mozilla.geckoview.test.TelemetryTest.testOnTelemetryReceived
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=524
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | Error in testOnTelemetryReceived(org.mozilla.geckoview.test.TelemetryTest):
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | java.lang.AssertionError: Metric name should be correct
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | Expected: [<401L>, <12L>, <1L>, <109L>, <2000L>]
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | but: was [<35L>, <101L>, <63L>, <0L>, <70L>, <0L>, <66L>, <0L>, <45L>, <37L>, <102L>, <74L>, <0L>, <39L>, <35L>, <116L>]
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.Assert.assertThat(Assert.java:956)
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2019-09-24T20:32:20.598Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:796)
[task 2019-09-24T20:32:20.599Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.BaseSessionTest.assertThat(BaseSessionTest.kt:74)
[task 2019-09-24T20:32:20.599Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.TelemetryTest$testOnTelemetryReceived$4.onHistogram(TelemetryTest.kt:51)
[task 2019-09-24T20:32:20.599Z] 20:32:20 INFO - org.mozilla.geckoview.test | at java.lang.reflect.Method.invoke(Native Method)
[task 2019-09-24T20:32:20.601Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1652)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.waitUntilCalled(GeckoSessionTestRule.java:1467)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.waitUntilCalled(GeckoSessionTestRule.java:1419)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.TelemetryTest.testOnTelemetryReceived(TelemetryTest.kt:46)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at java.lang.reflect.Method.invoke(Native Method)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1257)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$mzZNnl5Bu5F2_4xGxj0DHU4J33I.run(lambda)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.os.Handler.handleCallback(Handler.java:751)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.os.Looper.loop(Looper.java:154)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at java.lang.reflect.Method.invoke(Native Method)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test |
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=testOnTelemetryReceived
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.TelemetryTest
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Metric name should be correct
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | Expected: [<401L>, <12L>, <1L>, <109L>, <2000L>]
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | but: was [<35L>, <101L>, <63L>, <0L>, <70L>, <0L>, <66L>, <0L>, <45L>, <37L>, <102L>, <74L>, <0L>, <39L>, <35L>, <116L>]
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.Assert.assertThat(Assert.java:956)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:796)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.BaseSessionTest.assertThat(BaseSessionTest.kt:74)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.TelemetryTest$testOnTelemetryReceived$4.onHistogram(TelemetryTest.kt:51)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at java.lang.reflect.Method.invoke(Native Method)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1652)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.waitUntilCalled(GeckoSessionTestRule.java:1467)
[task 2019-09-24T20:32:20.602Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.waitUntilCalled(GeckoSessionTestRule.java:1419)
[task 2019-09-24T20:32:20.603Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.TelemetryTest.testOnTelemetryReceived(TelemetryTest.kt:46)
[task 2019-09-24T20:32:20.603Z] 20:32:20 INFO - org.mozilla.geckoview.test | at java.lang.reflect.Method.invoke(Native Method)
[task 2019-09-24T20:32:20.603Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2019-09-24T20:32:20.603Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2019-09-24T20:32:20.603Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2019-09-24T20:32:20.603Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2019-09-24T20:32:20.604Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1257)
[task 2019-09-24T20:32:20.604Z] 20:32:20 INFO - org.mozilla.geckoview.test | at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$mzZNnl5Bu5F2_4xGxj0DHU4J33I.run(lambda)
[task 2019-09-24T20:32:20.604Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2019-09-24T20:32:20.604Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.os.Handler.handleCallback(Handler.java:751)
[task 2019-09-24T20:32:20.605Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2019-09-24T20:32:20.605Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.os.Looper.loop(Looper.java:154)
[task 2019-09-24T20:32:20.605Z] 20:32:20 INFO - org.mozilla.geckoview.test | at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2019-09-24T20:32:20.605Z] 20:32:20 INFO - org.mozilla.geckoview.test | at java.lang.reflect.Method.invoke(Native Method)
[task 2019-09-24T20:32:20.605Z] 20:32:20 INFO - org.mozilla.geckoview.test | at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2019-09-24T20:32:20.606Z] 20:32:20 INFO - org.mozilla.geckoview.test | at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2019-09-24T20:32:20.606Z] 20:32:20 INFO - org.mozilla.geckoview.test |
[task 2019-09-24T20:32:20.606Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=429
[task 2019-09-24T20:32:20.606Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: -2
[task 2019-09-24T20:32:20.606Z] 20:32:20 WARNING - TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.TelemetryTest.testOnTelemetryReceived | status -2
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - TEST-INFO took 104ms
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=524
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | org.mozilla.geckoview.test.TextInputDelegateTest:
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=inputConnection[#input]
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.TextInputDelegateTest
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=430
[task 2019-09-24T20:32:20.607Z] 20:32:20 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: 1

Flags: needinfo?(jnicol)

Ah sorry, that's a bad test. I'll attach a fix for that test to this bug soon.

Right now testOnTelemetryReceived assumes that only the test histograms will
fire during the test. This works because only the test histograms are enabled
for streaming telemetry and will break as soon as some other histogram is
enabled.

Instead of relying on this fact we just wait for the test histogram to fire and
ignore all the other unrelated ones.

Oh, whoops. Thanks for fixing that Agi!

Flags: needinfo?(jnicol)
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e10b4084b513
Handle external metrics in TelemetryTest. r=snorp
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6b99299f84d4
Add COMPOSITE_TIME metric for geckoview_streaming telemetry. r=Dexter,chutten
Summary: Add graphics telemetry metrics for geckoview streaming → Add COMPOSITE_TIME metric for geckoview streaming
Blocks: 1584109
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: