Bug 1570932 - Add telemetry about how often we observe network change events, r=dragana

Differential Revision: https://phabricator.services.mozilla.com/D44215

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Michal Novotny 2019-08-30 18:18:19 +00:00
Родитель 96c4bc8f3b
Коммит a9aa8451c2
7 изменённых файлов: 44 добавлений и 0 удалений

Просмотреть файл

@ -9,6 +9,7 @@
#include "nsNetworkLinkService.h"
#include "nsString.h"
#include "mozilla/Logging.h"
#include "mozilla/Telemetry.h"
#include "mozilla/StaticPrefs_network.h"
#include "mozilla/Services.h"
@ -108,6 +109,13 @@ nsresult nsNetworkLinkService::Shutdown() {
void nsNetworkLinkService::OnNetworkChanged() {
if (StaticPrefs::network_notify_changed()) {
if (!mNetworkChangeTime.IsNull()) {
mozilla::Telemetry::AccumulateTimeDelta(
mozilla::Telemetry::NETWORK_TIME_BETWEEN_NETWORK_CHANGE_EVENTS,
mNetworkChangeTime);
}
mNetworkChangeTime = TimeStamp::Now();
RefPtr<nsNetworkLinkService> self = this;
NS_DispatchToMainThread(NS_NewRunnableFunction(
"nsNetworkLinkService::OnNetworkChanged",

Просмотреть файл

@ -11,6 +11,7 @@
#include "../netlink/NetlinkService.h"
#include "mozilla/RefPtr.h"
#include "mozilla/Atomics.h"
#include "mozilla/TimeStamp.h"
class nsNetworkLinkService : public nsINetworkLinkService,
public nsIObserver,
@ -40,6 +41,9 @@ class nsNetworkLinkService : public nsINetworkLinkService,
mozilla::Atomic<bool, mozilla::Relaxed> mStatusIsKnown;
RefPtr<mozilla::net::NetlinkService> mNetlinkSvc;
// Time stamp of last NS_NETWORK_LINK_DATA_CHANGED event
mozilla::TimeStamp mNetworkChangeTime;
};
#endif /* NSNETWORKLINKSERVICE_LINUX_H_ */

Просмотреть файл

@ -8,6 +8,7 @@
#include "nsINetworkLinkService.h"
#include "nsIObserver.h"
#include "mozilla/Mutex.h"
#include "mozilla/TimeStamp.h"
#include <SystemConfiguration/SCNetworkReachability.h>
#include <SystemConfiguration/SystemConfiguration.h>
@ -46,6 +47,9 @@ class nsNetworkLinkService : public nsINetworkLinkService, public nsIObserver {
mozilla::Mutex mMutex;
nsCString mNetworkId;
// Time stamp of last NS_NETWORK_LINK_DATA_CHANGED event
mozilla::TimeStamp mNetworkChangeTime;
};
#endif /* NSNETWORKLINKSERVICEMAC_H_ */

Просмотреть файл

@ -554,6 +554,12 @@ void nsNetworkLinkService::SendEvent(bool aNetworkChanged) {
return;
}
event = NS_NETWORK_LINK_DATA_CHANGED;
if (!mNetworkChangeTime.IsNull()) {
Telemetry::AccumulateTimeDelta(Telemetry::NETWORK_TIME_BETWEEN_NETWORK_CHANGE_EVENTS,
mNetworkChangeTime);
}
mNetworkChangeTime = TimeStamp::Now();
} else if (!mStatusKnown) {
event = NS_NETWORK_LINK_DATA_UNKNOWN;
} else {

Просмотреть файл

@ -257,6 +257,13 @@ nsNotifyAddrListener::nextCoalesceWaitTime() {
// check if coalescing period should continue
double period = (TimeStamp::Now() - mChangeTime).ToMilliseconds();
if (period >= kNetworkChangeCoalescingPeriod) {
if (!mNetworkChangeTime.IsNull()) {
Telemetry::AccumulateTimeDelta(
Telemetry::NETWORK_TIME_BETWEEN_NETWORK_CHANGE_EVENTS,
mNetworkChangeTime);
}
mNetworkChangeTime = TimeStamp::Now();
SendEvent(NS_NETWORK_LINK_DATA_CHANGED);
mCoalescingActive = false;
return INFINITE; // return default

Просмотреть файл

@ -93,6 +93,9 @@ class nsNotifyAddrListener : public nsINetworkLinkService,
// Time stamp for first event during coalescing
mozilla::TimeStamp mChangeTime;
// Time stamp of last NS_NETWORK_LINK_DATA_CHANGED event
mozilla::TimeStamp mNetworkChangeTime;
};
#endif /* NSNOTIFYADDRLISTENER_H_ */

Просмотреть файл

@ -5378,6 +5378,18 @@
"n_values": 6,
"description": "Network identification (0=None, 1=New Ipv4, 2=Same, 3=New IPv6, 4=New dual)"
},
"NETWORK_TIME_BETWEEN_NETWORK_CHANGE_EVENTS": {
"record_in_processes": ["main"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["necko@mozilla.com", "mnovotny@mozilla.com"],
"bug_numbers": [1570932],
"expires_in_version": "76",
"kind": "exponential",
"low": 1000,
"high": 600000,
"n_buckets": 50,
"description": "Time in ms between two NS_NETWORK_LINK_DATA_CHANGED events sent"
},
"IDLE_NOTIFY_IDLE_MS": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],