Re-enable http3/quic metric recording on Glean
Categories
(Core :: Networking, enhancement, P1)
Tracking
()
| 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.
| Assignee | ||
Comment 1•5 months ago
|
||
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.
| Assignee | ||
Comment 2•5 months ago
|
||
Test setup
- Test device: Pixel 3
- Base Commit: 457ce1c206204a180ead36ef787f992690c3c99f
- File: The 1GB.bin from the Hetzner Speedtest, uploaded to my Google Drive and made public: Share link
Build and install: mach build && mach gradle fenix:assembleFenixNightly fenix:installFenixNightly
Built with --enable-optimize
STR:
- Open Fenix
- Open the Google Drive link and click through until the "Download anyway" button
- 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" - Once that's running, click the "Download anyway" button, click "Download", then on the download bar "Details"
- 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.
- Profile on the
maincommit: https://share.firefox.dev/45l7hB4 - Profile after enabling the stats metrics (enabling
fn record_stats_in_gleanon Android): https://share.firefox.dev/3UJM52L
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
main: https://debug-ping-preview.firebaseapp.com/pings/jer-http33/31a83ac0-103c-4a84-99ec-2d758ecff783- No
networking.http_3_quic_frame_countin there
- No
- after enabling stats: https://debug-ping-preview.firebaseapp.com/pings/jer-http3/296679df-a449-46ac-91d5-648ee08da03b
- This one contains
networking.http_3_quic_frame_countas expected
- This one contains
| Assignee | ||
Comment 3•5 months ago
|
||
Updated•5 months ago
|
Thank you Jan-Erik for the detailed analysis. This is great work! Detailed Android metrics will proof very helpful in the future.
Comment 6•5 months ago
|
||
| bugherder | ||
Updated•5 months ago
|
Description
•