Bug 1960567 - Migrate histograms to use Glean APIs in netwerk/protocol/http/, r=chutten,necko-reviewers,jesup.

Differential Revision: https://phabricator.services.mozilla.com/D255547
This commit is contained in:
Florian Quèze 2025-07-08 13:35:09 +00:00 committed by fqueze@mozilla.com
parent 27165f1e2c
commit 00313a80b6
4 changed files with 205 additions and 39 deletions

View file

@ -1790,6 +1790,36 @@ networking:
description: >
Upgrading display content Channel Disposition (key: disabled_wont)
http_channel_disposition_upgrade:
type: dual_labeled_counter
description: >
Upgrading display content Channel Disposition
This metric was generated to correspond to the Legacy Telemetry
categorical histogram HTTP_CHANNEL_DISPOSITION_UPGRADE.
dual_labels:
key:
description: No static keys unfortunately.
category:
labels:
- cancel
- disk
- netOk
- netEarlyFail
- netLateFail
description: Labels of the keyed categorical legacy telemetry histogram
HTTP_CHANNEL_DISPOSITION_UPGRADE.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1440701
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1440701
notification_emails:
- necko@mozilla.com
- seceng-telemetry@mozilla.com
- jkt@mozilla.com
expires: never
telemetry_mirror: HTTP_CHANNEL_DISPOSITION_UPGRADE
http_channel_onstart_status:
type: labeled_counter
description: >
@ -1807,6 +1837,33 @@ networking:
- successful
- fail
http3_channel_onstart_success:
type: dual_labeled_counter
description: >
Successfully started HTTP channels when HTTP3 is used
This metric was generated to correspond to the Legacy Telemetry boolean
histogram HTTP3_CHANNEL_ONSTART_SUCCESS.
dual_labels:
key:
labels:
- "http3"
- "no_http3"
description: Whether http3 was used.
category:
labels:
- "false"
- "true"
description: Boolean
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1677987
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1677987
notification_emails:
- necko@mozilla.com
expires: never
telemetry_mirror: HTTP3_CHANNEL_ONSTART_SUCCESS
http_channel_page_open_to_first_sent:
type: timing_distribution
time_unit: millisecond

View file

@ -8,7 +8,6 @@
#include "mozilla/StaticPrefs_network.h"
#include "mozilla/glean/NetwerkProtocolHttpMetrics.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Unused.h"
#include "nsSocketTransportService2.h"
@ -24,9 +23,8 @@ static constexpr nsLiteralCString gKeyName[] = {
};
#undef DEFINE_CATEGORY
#define DEFINE_CATEGORY(_name, _idx) \
Telemetry::LABELS_HTTP_TRAFFIC_ANALYSIS_3::Y##_idx##_##_name,
static const Telemetry::LABELS_HTTP_TRAFFIC_ANALYSIS_3 gTelemetryLabel[] = {
#define DEFINE_CATEGORY(_name, _idx) "Y##_idx##_##_name"_ns,
static const nsLiteralCString gTelemetryLabel[] = {
#include "HttpTrafficAnalyzer.inc"
};
#undef DEFINE_CATEGORY
@ -187,8 +185,9 @@ void HttpTrafficAnalyzer::IncrementHttpTransaction(
LOG(("HttpTrafficAnalyzer::IncrementHttpTransaction [%s] [this=%p]\n",
gKeyName[aCategory].get(), this));
Telemetry::AccumulateCategoricalKeyed("Transaction"_ns,
gTelemetryLabel[aCategory]);
glean::http::traffic_analysis
.Get("Transaction"_ns, gTelemetryLabel[aCategory])
.Add();
}
void HttpTrafficAnalyzer::IncrementHttpConnection(
@ -200,8 +199,8 @@ void HttpTrafficAnalyzer::IncrementHttpConnection(
LOG(("HttpTrafficAnalyzer::IncrementHttpConnection [%s] [this=%p]\n",
gKeyName[aCategory].get(), this));
Telemetry::AccumulateCategoricalKeyed("Connection"_ns,
gTelemetryLabel[aCategory]);
glean::http::traffic_analysis.Get("Connection"_ns, gTelemetryLabel[aCategory])
.Add();
}
void HttpTrafficAnalyzer::IncrementHttpConnection(

View file

@ -1383,7 +1383,6 @@ networking:
- https://bugzil.la/1706842
notification_emails:
- arthur@mozilla.com
- tanvi@mozilla.com
- tihuang@mozilla.com
expires: never
telemetry_mirror: NETWORKING_DATA_TRANSFERRED_V3_KB
@ -2894,6 +2893,118 @@ http:
expires: never
telemetry_mirror: h#ECHCONFIG_SUCCESS_RATE
cache_disposition:
type: dual_labeled_counter
description: >
HTTP Cache v2 hit/miss stats keyed by content type.
This metric was generated to correspond to the Legacy Telemetry
categorical histogram HTTP_CACHE_DISPOSITION_3.
dual_labels:
key:
description: Keys of the keyed categorical legacy telemetry histogram
HTTP_CACHE_DISPOSITION_3.
labels:
- ALL
- UNKNOWN
- OTHER
- JAVASCRIPT
- IMAGE
- MEDIA
- STYLESHEET
- WASM
category:
labels:
- Unresolved
- Hit
- HitViaReval
- MissedViaReval
- Missed
- Unknown
description: Labels of the keyed categorical legacy telemetry histogram
HTTP_CACHE_DISPOSITION_3.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1611185
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1611185
notification_emails:
- necko@mozilla.com
expires: never
telemetry_mirror: HTTP_CACHE_DISPOSITION_3
traffic_analysis:
type: dual_labeled_counter
description: >
Numbers of HTTP transactions and connections by type. There are some
categories separated by labels based on 5 parameters: 1. normal browsing
or private browsing 2. system principal or not 3. first party or third
party 4. class of service (Leader/Background/Others) 5. tracking
classification (Basic/Content/FingerprintingContent).
This metric was generated to correspond to the Legacy Telemetry
categorical histogram HTTP_TRAFFIC_ANALYSIS_3.
dual_labels:
key:
description: Keys of the keyed categorical legacy telemetry histogram
HTTP_TRAFFIC_ANALYSIS_3.
labels:
- Connection
- Transaction
category:
labels:
- Y0_N1Sys
- Y1_N1
- Y2_N3Oth
- Y3_N3BasicLead
- Y4_N3BasicBg
- Y5_N3BasicOth
- Y6_N3ContentLead
- Y7_N3ContentBg
- Y8_N3ContentOth
- Y9_N3FpLead
- Y10_N3FpBg
- Y11_N3FpOth
- Y12_P1Sys
- Y13_P1
- Y14_P3Oth
- Y15_P3BasicLead
- Y16_P3BasicBg
- Y17_P3BasicOth
- Y18_P3ContentLead
- Y19_P3ContentBg
- Y20_P3ContentOth
- Y21_P3FpLead
- Y22_P3FpBg
- Y23_P3FpOth
description: Labels of the keyed categorical legacy telemetry histogram
HTTP_TRAFFIC_ANALYSIS_3.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1533363
- https://bugzilla.mozilla.org/show_bug.cgi?id=1546796
- https://bugzilla.mozilla.org/show_bug.cgi?id=1546906
- https://bugzilla.mozilla.org/show_bug.cgi?id=1550756
- https://bugzilla.mozilla.org/show_bug.cgi?id=1572666
- https://bugzilla.mozilla.org/show_bug.cgi?id=1590124
- https://bugzilla.mozilla.org/show_bug.cgi?id=1621800
- https://bugzilla.mozilla.org/show_bug.cgi?id=1668604
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706842
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1533363
- https://bugzilla.mozilla.org/show_bug.cgi?id=1546796
- https://bugzilla.mozilla.org/show_bug.cgi?id=1546906
- https://bugzilla.mozilla.org/show_bug.cgi?id=1550756
- https://bugzilla.mozilla.org/show_bug.cgi?id=1572666
- https://bugzilla.mozilla.org/show_bug.cgi?id=1590124
- https://bugzilla.mozilla.org/show_bug.cgi?id=1621800
- https://bugzilla.mozilla.org/show_bug.cgi?id=1668604
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706842
notification_emails:
- arthur@mozilla.com
- tanvi@mozilla.com
- tihuang@mozilla.com
expires: never
telemetry_mirror: HTTP_TRAFFIC_ANALYSIS_3
http3:
ech_outcome:
type: labeled_custom_distribution

View file

@ -185,6 +185,25 @@ enum ChannelDisposition {
kHttpsNetLateFail = 12
};
static nsLiteralCString CacheDispositionToTelemetryLabel(
CacheDisposition hitOrMiss) {
switch (hitOrMiss) {
case kCacheUnresolved:
return "Unresolved"_ns;
case kCacheHit:
return "Hit"_ns;
case kCacheHitViaReval:
return "HitViaReval"_ns;
case kCacheMissedViaReval:
return "MissedViaReval"_ns;
case kCacheMissed:
return "Missed"_ns;
case kCacheUnknown:
return "Unknown"_ns;
}
return "Unresolved"_ns;
}
void AccumulateCacheHitTelemetry(CacheDisposition hitOrMiss,
nsIChannel* aChannel) {
nsCString key("UNKNOWN");
@ -214,31 +233,9 @@ void AccumulateCacheHitTelemetry(CacheDisposition hitOrMiss,
}
}
Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3 label =
Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::Unresolved;
switch (hitOrMiss) {
case kCacheUnresolved:
label = Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::Unresolved;
break;
case kCacheHit:
label = Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::Hit;
break;
case kCacheHitViaReval:
label = Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::HitViaReval;
break;
case kCacheMissedViaReval:
label = Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::MissedViaReval;
break;
case kCacheMissed:
label = Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::Missed;
break;
case kCacheUnknown:
label = Telemetry::LABELS_HTTP_CACHE_DISPOSITION_3::Unknown;
break;
}
Telemetry::AccumulateCategoricalKeyed(key, label);
Telemetry::AccumulateCategoricalKeyed("ALL"_ns, label);
nsLiteralCString label = CacheDispositionToTelemetryLabel(hitOrMiss);
glean::http::cache_disposition.Get(key, label).Add();
glean::http::cache_disposition.Get("ALL"_ns, label).Add();
}
// Computes and returns a SHA1 hash of the input buffer. The input buffer
@ -7862,10 +7859,10 @@ void nsHttpChannel::RecordOnStartTelemetry(nsresult aStatus,
.Add(1);
if (mTransaction) {
Telemetry::Accumulate(
Telemetry::HTTP3_CHANNEL_ONSTART_SUCCESS,
(mTransaction->IsHttp3Used()) ? "http3"_ns : "no_http3"_ns,
NS_SUCCEEDED(aStatus));
glean::networking::http3_channel_onstart_success
.Get((mTransaction->IsHttp3Used()) ? "http3"_ns : "no_http3"_ns,
NS_SUCCEEDED(aStatus) ? "true"_ns : "false"_ns)
.Add();
}
enum class HttpOnStartState : uint32_t {
@ -9084,7 +9081,9 @@ nsresult nsHttpChannel::ContinueOnStopRequest(nsresult aStatus, bool aIsFromNet,
upgradeKey = "disabledWont"_ns;
}
Telemetry::AccumulateCategoricalKeyed(upgradeKey, upgradeChanDisposition);
glean::networking::http_channel_disposition_upgrade
.Get(upgradeKey, upgradeChanDispositionLabel)
.Add();
LOG((" nsHttpChannel::OnStopRequest ChannelDisposition %d\n",
chanDisposition));