From 4800e39055b7c9b6c4fcf948fb9de08fb0747116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Qu=C3=A8ze?= Date: Tue, 8 Apr 2025 08:42:00 +0000 Subject: [PATCH] Bug 1956726 - Migrate histograms to use Glean APIs for NETWORK_ID* histograms, r=chutten,necko-reviewers,jesup. Differential Revision: https://phabricator.services.mozilla.com/D244175 --- netwerk/base/NetworkConnectivityService.cpp | 7 +-- netwerk/metrics.yaml | 44 +++++++++++++++++++ netwerk/system/mac/nsNetworkLinkService.mm | 12 ++--- netwerk/system/netlink/NetlinkService.cpp | 34 +++++++------- netwerk/system/win32/nsNotifyAddrListener.cpp | 10 ++--- 5 files changed, 76 insertions(+), 31 deletions(-) diff --git a/netwerk/base/NetworkConnectivityService.cpp b/netwerk/base/NetworkConnectivityService.cpp index fb7f964015f3..a5d631c5bcc0 100644 --- a/netwerk/base/NetworkConnectivityService.cpp +++ b/netwerk/base/NetworkConnectivityService.cpp @@ -581,9 +581,10 @@ NetworkConnectivityService::OnStopRequest(nsIRequest* aRequest, mIPv4Channel = nullptr; if (mIPv4 == nsINetworkConnectivityService::OK) { - Telemetry::AccumulateCategorical( - mHasNetworkId ? Telemetry::LABELS_NETWORK_ID_ONLINE::present - : Telemetry::LABELS_NETWORK_ID_ONLINE::absent); + glean::network::id_online + .EnumGet(mHasNetworkId ? glean::network::IdOnlineLabel::ePresent + : glean::network::IdOnlineLabel::eAbsent) + .Add(); LOG(("mHasNetworkId : %d\n", mHasNetworkId)); } } else if (aRequest == mIPv6Channel) { diff --git a/netwerk/metrics.yaml b/netwerk/metrics.yaml index 43f0873f3a9c..8c384d647b30 100644 --- a/netwerk/metrics.yaml +++ b/netwerk/metrics.yaml @@ -3081,3 +3081,47 @@ network.cookies: - necko@mozilla.com expires: never telemetry_mirror: MOZ_SQLITE_COOKIES_OPEN_READAHEAD_MS + +network: + id: + type: custom_distribution + description: > + Network identification (0=None, 1=New Ipv4, 2=Same, 3=New IPv6, 4=New + dual) + + This metric was generated to correspond to the Legacy Telemetry enumerated + histogram NETWORK_ID2. + range_min: 0 + range_max: 6 + bucket_count: 7 + histogram_type: linear + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1240932 + - https://bugzilla.mozilla.org/show_bug.cgi?id=1395914 + data_reviews: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1240932 + - https://bugzilla.mozilla.org/show_bug.cgi?id=1395914 + notification_emails: + - necko@mozilla.com + expires: never + telemetry_mirror: NETWORK_ID2 + + id_online: + type: labeled_counter + description: > + Network ID presence when the network connectivity checker reports that we + have connectivity + + This metric was generated to correspond to the Legacy Telemetry + categorical histogram NETWORK_ID_ONLINE. + labels: + - absent + - present + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1580130 + data_reviews: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1580130 + notification_emails: + - necko@mozilla.com + expires: never + telemetry_mirror: h#NETWORK_ID_ONLINE diff --git a/netwerk/system/mac/nsNetworkLinkService.mm b/netwerk/system/mac/nsNetworkLinkService.mm index 1ae6a3fc536a..09fb894026f2 100644 --- a/netwerk/system/mac/nsNetworkLinkService.mm +++ b/netwerk/system/mac/nsNetworkLinkService.mm @@ -34,7 +34,7 @@ #include "mozilla/Base64.h" #include "mozilla/ScopeExit.h" #include "mozilla/Services.h" -#include "mozilla/Telemetry.h" +#include "mozilla/glean/NetwerkMetrics.h" #include "nsNetworkLinkService.h" #include "../../base/IPv6Utils.h" #include "../LinkServiceCommon.h" @@ -656,18 +656,18 @@ void nsNetworkLinkService::calculateNetworkIdInternal(void) { if (mNetworkId != output) { // new id if (found4 && !found6) { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 1); // IPv4 only + glean::network::id.AccumulateSingleSample(1); // IPv4 only } else if (!found4 && found6) { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 3); // IPv6 only + glean::network::id.AccumulateSingleSample(3); // IPv6 only } else { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 4); // Both! + glean::network::id.AccumulateSingleSample(4); // Both! } mNetworkId = output; idChanged = true; } else { // same id LOG(("Same network id")); - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 2); + glean::network::id.AccumulateSingleSample(2); } } else { // no id @@ -676,7 +676,7 @@ void nsNetworkLinkService::calculateNetworkIdInternal(void) { if (!mNetworkId.IsEmpty()) { mNetworkId.Truncate(); idChanged = true; - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 0); + glean::network::id.AccumulateSingleSample(0); } } diff --git a/netwerk/system/netlink/NetlinkService.cpp b/netwerk/system/netlink/NetlinkService.cpp index f0f4c1b3c273..52ecd01738a5 100644 --- a/netwerk/system/netlink/NetlinkService.cpp +++ b/netwerk/system/netlink/NetlinkService.cpp @@ -27,7 +27,7 @@ #include "mozilla/Base64.h" #include "mozilla/FunctionTypeTraits.h" #include "mozilla/ProfilerThreadSleep.h" -#include "mozilla/Telemetry.h" +#include "mozilla/glean/NetwerkMetrics.h" #include "mozilla/DebugOnly.h" #include "mozilla/ScopeExit.h" @@ -249,7 +249,7 @@ class NetlinkNeighbor { bool mHasMAC{false}; uint8_t mMAC[ETH_ALEN]{}; in_common_addr mAddr{}; - struct ndmsg mNeigh {}; + struct ndmsg mNeigh{}; }; class NetlinkLink { @@ -295,7 +295,7 @@ class NetlinkLink { private: nsCString mName; - struct ifinfomsg mIface {}; + struct ifinfomsg mIface{}; }; class NetlinkRoute { @@ -480,7 +480,7 @@ class NetlinkRoute { uint32_t mOif{}; uint32_t mPrio{}; - struct rtmsg mRtm {}; + struct rtmsg mRtm{}; }; class NetlinkMsg { @@ -501,17 +501,17 @@ class NetlinkMsg { bool SendRequest(int aFD, void* aRequest, uint32_t aRequestLength) { MOZ_ASSERT(!mIsPending, "Request has been already sent!"); - struct sockaddr_nl kernel {}; + struct sockaddr_nl kernel{}; memset(&kernel, 0, sizeof(kernel)); kernel.nl_family = AF_NETLINK; kernel.nl_groups = 0; - struct iovec io {}; + struct iovec io{}; memset(&io, 0, sizeof(io)); io.iov_base = aRequest; io.iov_len = aRequestLength; - struct msghdr rtnl_msg {}; + struct msghdr rtnl_msg{}; memset(&rtnl_msg, 0, sizeof(rtnl_msg)); rtnl_msg.msg_iov = &io; rtnl_msg.msg_iovlen = 1; @@ -655,17 +655,17 @@ void NetlinkService::OnNetlinkMessage(int aNetlinkSocket) { // for netlink messages. char buffer[4096]; - struct sockaddr_nl kernel {}; + struct sockaddr_nl kernel{}; memset(&kernel, 0, sizeof(kernel)); kernel.nl_family = AF_NETLINK; kernel.nl_groups = 0; - struct iovec io {}; + struct iovec io{}; memset(&io, 0, sizeof(io)); io.iov_base = buffer; io.iov_len = sizeof(buffer); - struct msghdr rtnl_reply {}; + struct msghdr rtnl_reply{}; memset(&rtnl_reply, 0, sizeof(rtnl_reply)); rtnl_reply.msg_iov = &io; rtnl_reply.msg_iovlen = 1; @@ -1165,7 +1165,7 @@ NetlinkService::Run() { return NS_ERROR_FAILURE; } - struct sockaddr_nl addr {}; + struct sockaddr_nl addr{}; memset(&addr, 0, sizeof(addr)); addr.nl_family = AF_NETLINK; @@ -1690,7 +1690,7 @@ void NetlinkService::ExtractDNSProperties() { nsTArray resolvers; #if defined(HAVE_RES_NINIT) [&]() { - struct __res_state res {}; + struct __res_state res{}; int ret = res_ninit(&res); if (ret != 0) { LOG(("Call to res_ninit failed: %d", ret)); @@ -1831,18 +1831,18 @@ void NetlinkService::CalculateNetworkID() { if (mNetworkId != output) { // new id if (found4 && !found6) { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 1); // IPv4 only + glean::network::id.AccumulateSingleSample(1); // IPv4 only } else if (!found4 && found6) { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 3); // IPv6 only + glean::network::id.AccumulateSingleSample(3); // IPv6 only } else { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 4); // Both! + glean::network::id.AccumulateSingleSample(4); // Both! } mNetworkId = output; idChanged = true; } else { // same id LOG(("Same network id")); - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 2); + glean::network::id.AccumulateSingleSample(2); } } else { // no id @@ -1851,7 +1851,7 @@ void NetlinkService::CalculateNetworkID() { if (!mNetworkId.IsEmpty()) { mNetworkId.Truncate(); idChanged = true; - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 0); + glean::network::id.AccumulateSingleSample(0); } } diff --git a/netwerk/system/win32/nsNotifyAddrListener.cpp b/netwerk/system/win32/nsNotifyAddrListener.cpp index 4c5a90094226..a82f19380d65 100644 --- a/netwerk/system/win32/nsNotifyAddrListener.cpp +++ b/netwerk/system/win32/nsNotifyAddrListener.cpp @@ -43,7 +43,7 @@ #include "mozilla/SHA1.h" #include "mozilla/Base64.h" #include "mozilla/ScopeExit.h" -#include "mozilla/Telemetry.h" +#include "mozilla/glean/NetwerkMetrics.h" #include "../LinkServiceCommon.h" #include #include @@ -245,7 +245,7 @@ void nsNotifyAddrListener::calculateNetworkId(void) { mNetworkId.Truncate(); } LOG(("calculateNetworkId: no network ID - no active networks")); - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 0); + glean::network::id.AccumulateSingleSample(0); if (idChanged) { NotifyObservers(NS_NETWORK_ID_CHANGED_TOPIC, nullptr); } @@ -264,7 +264,7 @@ void nsNotifyAddrListener::calculateNetworkId(void) { MutexAutoLock lock(mMutex); mNetworkId.Truncate(); } - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 0); + glean::network::id.AccumulateSingleSample(0); LOG(("calculateNetworkId: no network ID Base64Encode error %X", uint32_t(rv))); return; @@ -273,11 +273,11 @@ void nsNotifyAddrListener::calculateNetworkId(void) { MutexAutoLock lock(mMutex); if (output != mNetworkId) { mNetworkId = output; - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 1); + glean::network::id.AccumulateSingleSample(1); LOG(("calculateNetworkId: new NetworkID: %s", output.get())); NotifyObservers(NS_NETWORK_ID_CHANGED_TOPIC, nullptr); } else { - Telemetry::Accumulate(Telemetry::NETWORK_ID2, 2); + glean::network::id.AccumulateSingleSample(2); LOG(("calculateNetworkId: same NetworkID: %s", output.get())); } }