Closed Bug 1657470 Opened 5 years ago Closed 1 year ago

New Metric Type: "Keyed Categorical" (needs a better name)

Categories

(Data Platform and Tools Graveyard :: Glean Metric Types, enhancement, P1)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED

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

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.

See Also: → 1784261

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

Blocks: 1935420

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

Time to kick off a design doc.

Assignee: nobody → chutten
Severity: -- → N/A
Status: NEW → ASSIGNED
Priority: -- → P1

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

Flags: needinfo?(jrediger)
Whiteboard: [telemetry-parity] → [fog-migration]
No longer blocks: 1935420

finally getting around to look at this.

Flags: needinfo?(jrediger)

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 )

No longer blocks: 1944631
Assignee: chutten → jrediger
No longer blocks: 1950710

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.

Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
No longer blocks: 1956726
Product: Data Platform and Tools → Data Platform and Tools Graveyard
You need to log in before you can comment on or make changes to this bug.