New Metric Type: "Keyed Categorical" (needs a better name)
Categories
(Data Platform and Tools Graveyard :: Glean Metric Types, enhancement, P1)
Tracking
(Not tracked)
People
(Reporter: chutten, Assigned: janerik)
References
Details
(Whiteboard: [fog-migration])
Proposal for changing an existing or adding a new Glean metric type
Who is the individual/team requesting this change?
:chutten, Project FOG
Is this about changing an existing metric type or creating a new one?
Likely creating a new one
Can you describe the data that needs to be recorded?
A variety of data.
- APPLICATION_REPUTATION_SERVER_VERDICT_2
- NETWORK_HTTP_REDIRECT_TO_SCHEME
- HTTP_CHILD_OMT_STATS
- HTTP_CHANNEL_DISPOSITION_UPGRADE
- HTTP_CACHE_DISPOSITION_3
- DNS_TRR_FIRST3
- DNS_TRR_SUCCESS2
- DNS_LOOKUP_DISPOSITION2
- UPTAKE_REMOTE_CONTENT_RESULT_1
- TELEMETRY_SEND_FAILURE_TYPE_PER_PING
- CONTENT_SIGNATURE_VERIFICATION_ERRORS
- PAGE_LOAD_ERROR
- WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT_BY_ADDONID
- QM_INIT_TELEMETRY_ERROR
- HTTP_TRAFFIC_ANALYSIS_3
Can you provide a raw sample of the data that needs to be recorded (this is in the abstract, and not any particular implementation details about its representation in the payload or the database)
Taking TELEMETRY_SEND_FAILURE_TYPE_PER_PING as an example, I want to record, per ping doctype, the counts of the different failures we experienced trying to send them. (This lets us know if a particular type of ping is more likely to attract a particular type of send failure)
More generically, I want two-step labels for my counts. And ideally I'd like the labels to be able to support more than the BQ-safe subset of Unicode, if possible.
What is the business question/use-case that requires the data to be recorded?
Various
How would the data be consumed?
GLAM, but also possibly in monitoring dashboards and alerting tools.
Why existing metric types are not enough?
Nothing supports this.
What is the timeline by which the data needs to be collected?
Q1 2021
Comment 1•4 years ago
|
||
Here is another use case for a "keyed categorical":
We currently use the EXTERNAL_PROTOCOL_HANDLER_DIALOG_CONTEXT_SCHEME probe to record how often we show the protocol handler dialog. We use the keys for the context which navigated to the protocol and the label for the protocol scheme.
Comment 2•1 year ago
|
||
We currently have 9 keyed boolean histograms in legacy telemetry that need a migration path to Glean:
HTTP3_CHANNEL_ONSTART_SUCCESS
DNS_TRR_DISABLED3
DNS_TRR_BLACKLISTED3
DNS_TRR_NS_VERFIFIED3
URLCLASSIFIER_COMPLETE_TIMEOUT2
HTTPS_ONLY_MODE_UPGRADE_TYPE
DEVTOOLS_JAVASCRIPT_ERROR_DISPLAYED
PROCESS_CRASH_SUBMIT_SUCCESS
QM_FIRST_INITIALIZATION_ATTEMPT
Comment 3•1 year ago
|
||
We also have several keyed categorical histograms:
APPLICATION_REPUTATION_SERVER_VERDICT_2
NETWORK_HTTP_REDIRECT_TO_SCHEME
HTTP_CHANNEL_DISPOSITION_UPGRADE
HTTP_CACHE_DISPOSITION_3
DNS_TRR_HTTP_VERSION2
DNS_TRR_FIRST4
DNS_TRR_SUCCESS3
DNS_LOOKUP_DISPOSITION3
TELEMETRY_SEND_FAILURE_TYPE_PER_PING
CONTENT_SIGNATURE_VERIFICATION_ERRORS
PAGE_LOAD_ERROR
WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT_BY_ADDONID
WEBEXT_EVENTPAGE_IDLE_RESULT_COUNT_BY_ADDONID
HTTP_TRAFFIC_ANALYSIS_3
SQLITE_STORE_OPEN
SQLITE_STORE_QUERY
| Reporter | ||
Comment 4•1 year ago
|
||
Time to kick off a design doc.
| Reporter | ||
Comment 5•1 year ago
|
||
Alrighty, time for at least initial fill-in and feedback from the Glean Lead, Jan-Erik: https://docs.google.com/document/d/1c3Phq-liTL2Uv9__dxXNkjNheeq4Yhpt2UtDm5qDApE/edit
| Reporter | ||
Updated•1 year ago
|
Updated•1 year ago
|
| Reporter | ||
Comment 7•1 year ago
|
||
When it comes time to implement this, consider implementing MetricIdentifier for LabeledMetric<T> otherwise the FOG impl may need to double-get in child processes to build submetrics that know their names (see https://phabricator.services.mozilla.com/D237751 )
| Reporter | ||
Updated•1 year ago
|
| Assignee | ||
Comment 8•1 year ago
|
||
Sorry for having this linger for longer than it should.
The proposal has now been signed off.
We lack direct input from DS, but we'll address concerns as part of the implementation.
The proposal is accepted
It's publicly available at https://docs.google.com/document/d/e/2PACX-1vSLnT88Z8_8p6XsDFuD_R-AOe_7fVI-pR7mlOZF-sFxJyMzZsSeNg5oDUb23K3JjBy0lWbQCIXIpGQv/pub
Next we'll need to implement this. I will file the followup bugs.
Updated•11 months ago
|
Description
•