Closed Bug 1981105 Opened 5 months ago Closed 5 months ago

Re-enable http3/quic metric recording on Glean

Categories

(Core :: Networking, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
143 Branch
Tracking Status
firefox143 --- fixed

People

(Reporter: janerik, Assigned: janerik)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(1 file)

Bug 1902065 added some statistic metrics, but disabled them on Android.
Since then other metrics are getting recorded just fine (e.g. bug 1920696).

Glean changed since then and not all metric recordings result in an immediate disk write and are thus a lot cheaper.
We can probably enable those stats on Android now.
I'm running a few more tests to make sure.

My test: downloading a 1 GB file from google drive (which goes over HTTP3).
Note that in an early test I did yesterday I did see the histogram accumulation show up in a profile, but that's the already enabled distributions (like networking.http_3_udp_datagram_segments_received).

I'll run another profile on a optimized build today, with and without those other metrics enabled and will post the links.

Test setup

Build and install: mach build && mach gradle fenix:assembleFenixNightly fenix:installFenixNightly
Built with --enable-optimize

STR:

  1. Open Fenix
  2. Open the Google Drive link and click through until the "Download anyway" button
  3. On my machine run ~/.mozbuild/android-ndk-r28c/simpleperf/app_profiler.py -p org.mozilla.fenix -r "-e task-clock:u -f 1000 -g --duration 60"
  4. Once that's running, click the "Download anyway" button, click "Download", then on the download bar "Details"
  5. View it in the profiler using samply: samply import perf.data --symbol-dir obj-android-opt/dist/bin/

Why duration of 60s? Seemed like an appropriate time to measure and at least occasionally was enough to download the whole file.

Only thing I notice in both profiles is the glean_core::histogram::Histogram::accumulate function, taking ~2% in both.
But that's from metrics like networking.http_3_udp_datagram_segments_received,
which are already sent from Android.

After the download finished I also triggered a metrics ping: adb shell am start -n org.mozilla.fenix/mozilla.telemetry.glean.debug.GleanDebugActivity --ez logPings true --es debugViewTag jer-http3 --es sendPing metrics

Severity: -- → S3
Whiteboard: [necko-triaged]

Thank you Jan-Erik for the detailed analysis. This is great work! Detailed Android metrics will proof very helpful in the future.

Status: NEW → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → 143 Branch
QA Whiteboard: [qa-triage-done-c144/b143]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: