Metric reporting for services on the same network.
Added metric for reporting number of services that are connected
to the currently connected network.
BUG=chromium:359302
TEST=unittest
Change-Id: I8a88cea19c4d956ef5242fdfb0419c1ca79bc003
Reviewed-on: https://chromium-review.googlesource.com/194820
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
diff --git a/metrics.cc b/metrics.cc
index bff1ab3..78fec18 100644
--- a/metrics.cc
+++ b/metrics.cc
@@ -291,6 +291,13 @@
const int Metrics::kMetricWifiAvailableBSSesMin = 1;
const int Metrics::kMetricWifiAvailableBSSesNumBuckets = 10;
+// Number of services associated with currently connected network.
+const char Metrics::kMetricServicesOnSameNetwork[] =
+ "Network.Shill.ServicesOnSameNetwork";
+const int Metrics::kMetricServicesOnSameNetworkMax = 20;
+const int Metrics::kMetricServicesOnSameNetworkMin = 1;
+const int Metrics::kMetricServicesOnSameNetworkNumBuckets = 10;
+
Metrics::Metrics(EventDispatcher *dispatcher)
: dispatcher_(dispatcher),
library_(&metrics_library_),
@@ -1067,6 +1074,14 @@
kMetricWifiAvailableBSSesNumBuckets);
}
+void Metrics::NotifyServicesOnSameNetwork(int num_services) {
+ SendToUMA(kMetricServicesOnSameNetwork,
+ num_services,
+ kMetricServicesOnSameNetworkMin,
+ kMetricServicesOnSameNetworkMax,
+ kMetricServicesOnSameNetworkNumBuckets);
+}
+
bool Metrics::SendEnumToUMA(const string &name, int sample, int max) {
SLOG(Metrics, 5)
<< "Sending enum " << name << " with value " << sample << ".";
diff --git a/metrics.h b/metrics.h
index 8a9aceb..ba1d36c 100644
--- a/metrics.h
+++ b/metrics.h
@@ -449,6 +449,12 @@
static const int kMetricWifiAvailableBSSesMin;
static const int kMetricWifiAvailableBSSesNumBuckets;
+ // Number of services associated with currently connected network.
+ static const char kMetricServicesOnSameNetwork[];
+ static const int kMetricServicesOnSameNetworkMax;
+ static const int kMetricServicesOnSameNetworkMin;
+ static const int kMetricServicesOnSameNetworkNumBuckets;
+
explicit Metrics(EventDispatcher *dispatcher);
virtual ~Metrics();
@@ -614,6 +620,10 @@
// when attempt to connect to that service.
virtual void NotifyWifiAvailableBSSes(int num_services);
+ // Notifies this object about number of services associated to the
+ // currently connected network.
+ virtual void NotifyServicesOnSameNetwork(int num_services);
+
// Notifies this object about a corrupted profile.
virtual void NotifyCorruptedProfile();
diff --git a/metrics_unittest.cc b/metrics_unittest.cc
index c3b1ab1..1ff9ed4 100644
--- a/metrics_unittest.cc
+++ b/metrics_unittest.cc
@@ -725,6 +725,16 @@
ScopeLogger::GetInstance()->set_verbose_level(0);
}
+TEST_F(MetricsTest, NotifyServicesOnSameNetwork) {
+ EXPECT_CALL(library_,
+ SendToUMA(Metrics::kMetricServicesOnSameNetwork,
+ 1,
+ Metrics::kMetricServicesOnSameNetworkMin,
+ Metrics::kMetricServicesOnSameNetworkMax,
+ Metrics::kMetricServicesOnSameNetworkNumBuckets));
+ metrics_.NotifyServicesOnSameNetwork(1);
+}
+
#ifndef NDEBUG
typedef MetricsTest MetricsDeathTest;
diff --git a/mock_metrics.h b/mock_metrics.h
index a2359c3..55995ce 100644
--- a/mock_metrics.h
+++ b/mock_metrics.h
@@ -44,6 +44,7 @@
int max, int num_buckets));
MOCK_METHOD1(NotifyWifiAutoConnectableServices, void(int num_service));
MOCK_METHOD1(NotifyWifiAvailableBSSes, void(int num_bss));
+ MOCK_METHOD1(NotifyWifiServicesOnSameNetwork, void(int num_service));
private:
DISALLOW_COPY_AND_ASSIGN(MockMetrics);