shill: LinkMonitor: Add Metrics
BUG=chromium-os:32600
TEST=Unit tests
Change-Id: I4a7625fb006e939a5ea63efeede8ca9982115332
Reviewed-on: https://gerrit.chromium.org/gerrit/29421
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
diff --git a/metrics.h b/metrics.h
index bcd1276..d241249 100644
--- a/metrics.h
+++ b/metrics.h
@@ -116,6 +116,15 @@
kPortalResultMax
};
+ enum LinkMonitorFailure {
+ kLinkMonitorMacAddressNotFound = 0,
+ kLinkMonitorClientStartFailure = 1,
+ kLinkMonitorTransmitFailure = 2,
+ kLinkMonitorFailureThresholdReached = 3,
+
+ kLinkMonitorFailureMax
+ };
+
static const char kMetricDisconnect[];
static const int kMetricDisconnectMax;
static const int kMetricDisconnectMin;
@@ -165,6 +174,13 @@
static const char kMetricPowerManagerKey[];
+ // LinkMonitor statistics.
+ static const char kMetricLinkMonitorFailure[];
+ static const char kMetricLinkMonitorResponseTimeSample[];
+ static const int kMetricLinkMonitorResponseTimeSampleMin;
+ static const int kMetricLinkMonitorResponseTimeSampleMax;
+ static const int kMetricLinkMonitorResponseTimeSampleNumBuckets;
+
Metrics();
virtual ~Metrics();
@@ -211,6 +227,16 @@
// Notifies this object of a power management state change.
void NotifyPowerStateChange(PowerManager::SuspendState new_state);
+ // Notifies this object of a failure in LinkMonitor.
+ void NotifyLinkMonitorFailure(
+ Technology::Identifier technology, LinkMonitorFailure failure);
+
+ // Notifies this object that LinkMonitor has added a response time sample
+ // for |connection| with a value of |response_time_milliseconds|.
+ void NotifyLinkMonitorResponseTimeSampleAdded(
+ Technology::Identifier technology,
+ unsigned int response_time_milliseconds);
+
// Sends linear histogram data to UMA.
virtual bool SendEnumToUMA(const std::string &name, int sample, int max);