Bug 1918702 - Migrate telemetry events to use Glean APIs for doh, r=chutten.

Differential Revision: https://phabricator.services.mozilla.com/D222631
This commit is contained in:
Florian Quèze
2024-09-20 13:58:19 +00:00
parent cd093f0a88
commit b6c3a3c7ad
4 changed files with 300 additions and 34 deletions

View File

@@ -506,14 +506,9 @@ export const DoHController = {
resultsForTelemetry.filtering = filtering.join(","); resultsForTelemetry.filtering = filtering.join(",");
resultsForTelemetry.enterprise = enterprise.join(","); resultsForTelemetry.enterprise = enterprise.join(",");
resultsForTelemetry.platform = platform.join(","); resultsForTelemetry.platform = platform.join(",");
resultsForTelemetry.value = decision;
Services.telemetry.recordEvent( Glean.doh.evaluateV2Heuristics.record(resultsForTelemetry);
HEURISTICS_TELEMETRY_CATEGORY,
"evaluate_v2",
"heuristics",
decision,
resultsForTelemetry
);
}, },
async setState(state) { async setState(state) {
@@ -542,12 +537,9 @@ export const DoHController = {
break; break;
} }
Services.telemetry.recordEvent( Glean.doh["state" + state[0].toUpperCase() + state.slice(1)].record({
HEURISTICS_TELEMETRY_CATEGORY, value: "null",
"state", });
state,
"null"
);
let modePref = lazy.Preferences.get(NETWORK_TRR_MODE_PREF); let modePref = lazy.Preferences.get(NETWORK_TRR_MODE_PREF);
if (state == "manuallyDisabled") { if (state == "manuallyDisabled") {
@@ -648,12 +640,9 @@ export const DoHController = {
let setDryRunResultAndRecordTelemetry = trrUri => { let setDryRunResultAndRecordTelemetry = trrUri => {
lazy.Preferences.set(TRR_SELECT_DRY_RUN_RESULT_PREF, trrUri); lazy.Preferences.set(TRR_SELECT_DRY_RUN_RESULT_PREF, trrUri);
Services.telemetry.recordEvent( Glean.securityDohTrrPerformance.trrselectDryrunresult.record({
TRRSELECT_TELEMETRY_CATEGORY, value: trrUri.substring(0, 40), // Telemetry payload max length
"trrselect", });
"dryrunresult",
trrUri.substring(0, 40) // Telemetry payload max length
);
}; };
if (lazy.kIsInAutomation) { if (lazy.kIsInAutomation) {

View File

@@ -206,21 +206,16 @@ export class LookupAggregator {
return; return;
} }
Services.telemetry.recordEvent( Glean.securityDohTrrPerformance.resolvedRecord.record({
"security.doh.trrPerformance", value: "success",
"resolved", domain,
"record", trr,
"success", status,
{ time,
domain, retryCount,
trr, networkUnstable: this.networkUnstable,
status: status.toString(), captivePortal: this.captivePortal,
time: time.toString(), });
retryCount: retryCount.toString(),
networkUnstable: this.networkUnstable.toString(),
captivePortal: this.captivePortal.toString(),
}
);
} }
this.onCompleteCallback(); this.onCompleteCallback();

View File

@@ -0,0 +1,281 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Adding a new metric? We have docs for that!
# https://firefox-source-docs.mozilla.org/toolkit/components/glean/user/new_definitions_file.html
---
$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
$tags:
- 'Firefox :: Security'
doh:
evaluate_v2_heuristics:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.evaluate_v2#heuristics.
bugs:
- https://bugzil.la/1573840
- https://bugzil.la/1631609
- https://bugzil.la/1603779
- https://bugzil.la/1654714
data_reviews:
- https://bugzil.la/1573840
- https://bugzil.la/1631609
- https://bugzil.la/1603779
- https://bugzil.la/1654714
notification_emails:
- nhnt11@mozilla.com
- ddamjanovic@mozilla.com
- seceng-telemetry@mozilla.com
- necko@mozilla.com
expires: never
extra_keys:
value:
description: >
The `value` of the event. Mirrors to the Legacy Telemetry
event's `value` parameter.
type: string
canaries:
description: >
Comma-separated list of canaries that were detected (canary,zscalerCanary)
type: string
filtering:
description: >
Comma-separated list of detected parental controls/content filtering (browserParent,google,youtube)
type: string
enterprise:
description: >
Comma-separated list of detected enterprise config (policy,modifiedRoots,thirdPartyRoots)
type: string
steeredProvider:
description: >
Whether we detected a steering provider
type: string
evaluateReason:
description: >
The reason for running heuristics - startup or netchange
type: string
networkID:
description: >
An ID representing the network on which heuristics were run, unique to this client
type: string
captiveState:
description: >
The Captive Portal Service state - unknown, not_captive, locked, or unlocked
type: string
platform:
description: >
Comma-separated list of platform attributes that would cause split-horizon issues (vpn, proxy, nrpt)
type: string
telemetry_mirror: Doh_EvaluateV2_Heuristics
state_enabled:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#enabled.
bugs: &doh_state_bugs
- https://bugzil.la/1573840
- https://bugzil.la/1631609
- https://bugzil.la/1603779
data_reviews: &doh_state_data_reviews
- https://bugzil.la/1573840
- https://bugzil.la/1631609
- https://bugzil.la/1603779
notification_emails: &doh_state_emails
- nhnt11@mozilla.com
- ddamjanovic@mozilla.com
- seceng-telemetry@mozilla.com
- necko@mozilla.com
expires: never
extra_keys: &doh_state_extra
value:
description: >
The `value` of the event. Mirrors to the Legacy Telemetry
event's `value` parameter.
type: string
telemetry_mirror: Doh_State_Enabled
state_disabled:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#disabled.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Disabled
state_manually_disabled:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#manuallyDisabled.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Manuallydisabled
state_policy_disabled:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#policyDisabled.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Policydisabled
state_uninstalled:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#uninstalled.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Uninstalled
state_uiok:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#UIOk.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Uiok
state_uidisabled:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#UIDisabled.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Uidisabled
state_rollback:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#rollback.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Rollback
state_shutdown:
type: event
description: >
Results of DoH heuristics at startup and after network changes.
This event was generated to correspond to the Legacy Telemetry event
doh.state#shutdown.
bugs: *doh_state_bugs
data_reviews: *doh_state_data_reviews
notification_emails: *doh_state_emails
expires: never
extra_keys: *doh_state_extra
telemetry_mirror: Doh_State_Shutdown
security.doh.trr_performance:
resolved_record:
type: event
description: >
How long it took to resolve a test domain using TRR.
This event was generated to correspond to the Legacy Telemetry event
security.doh.trrPerformance.resolved#record.
bugs:
- https://bugzil.la/1613790
data_reviews:
- https://bugzil.la/1613790
notification_emails:
- nhnt11@mozilla.com
- ddamjanovic@mozilla.com
- seceng-telemetry@mozilla.com
expires: never
extra_keys:
value:
description: >
The `value` of the event. Mirrors to the Legacy Telemetry
event's `value` parameter.
type: string
domain:
description: >
The resolved domain.
type: string
trr:
description: >
The TRR provider used.
type: string
time:
description: >
The network time for the resolution.
type: string
status:
description: >
The DNS status code.
type: string
retryCount:
description: >
The number of lookup attempts before success.
type: string
networkUnstable:
description: >
Whether there was network fluctuation while gathering the results.
type: string
captivePortal:
description: >
Whether there a captive portal was detected during the run.
type: string
telemetry_mirror: SecurityDohTrrperformance_Resolved_Record
trrselect_dryrunresult:
type: event
description: >
The URL of the DoH provider chosen by the TRR selection dry-run
This event was generated to correspond to the Legacy Telemetry event
security.doh.trrPerformance.trrselect#dryrunresult.
bugs:
- https://bugzil.la/1631822
data_reviews:
- https://bugzil.la/1631822
notification_emails:
- nhnt11@mozilla.com
- ddamjanovic@mozilla.com
- seceng-telemetry@mozilla.com
expires: never
extra_keys:
value:
description: >
The `value` of the event. Mirrors to the Legacy Telemetry
event's `value` parameter.
type: string
telemetry_mirror: SecurityDohTrrperformance_Trrselect_Dryrunresult

View File

@@ -60,6 +60,7 @@ gecko_metrics = [
# Order is lexicographical, enforced by t/c/glean/tests/pytest/test_yaml_indices.py # Order is lexicographical, enforced by t/c/glean/tests/pytest/test_yaml_indices.py
firefox_desktop_metrics = [ firefox_desktop_metrics = [
"browser/components/backup/metrics.yaml", "browser/components/backup/metrics.yaml",
"browser/components/doh/metrics.yaml",
"browser/components/firefoxview/metrics.yaml", "browser/components/firefoxview/metrics.yaml",
"browser/components/genai/metrics.yaml", "browser/components/genai/metrics.yaml",
"browser/components/metrics.yaml", "browser/components/metrics.yaml",