shill: LinkMonitor: Add more metrics

LinkMonitorSecondsToFailure, LinkMonitorUnicastErrorsAtFailure,
and LinkMonitorBroadcastErrorsAtFailure.

BUG=chromium-os:32600
TEST=Unit tests.

Change-Id: I0a90deee5675ebfb665a76f8e7707eaaecc23ce9
Reviewed-on: https://gerrit.chromium.org/gerrit/29792
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/metrics.h b/metrics.h
index d241249..9e7ea0e 100644
--- a/metrics.h
+++ b/metrics.h
@@ -177,9 +177,18 @@
   // LinkMonitor statistics.
   static const char kMetricLinkMonitorFailure[];
   static const char kMetricLinkMonitorResponseTimeSample[];
-  static const int kMetricLinkMonitorResponseTimeSampleMin;
-  static const int kMetricLinkMonitorResponseTimeSampleMax;
+  static const unsigned int kMetricLinkMonitorResponseTimeSampleMin;
+  static const unsigned int kMetricLinkMonitorResponseTimeSampleMax;
   static const int kMetricLinkMonitorResponseTimeSampleNumBuckets;
+  static const char kMetricLinkMonitorSecondsToFailure[];
+  static const unsigned int kMetricLinkMonitorSecondsToFailureMin;
+  static const unsigned int kMetricLinkMonitorSecondsToFailureMax;
+  static const int kMetricLinkMonitorSecondsToFailureNumBuckets;
+  static const char kMetricLinkMonitorBroadcastErrorsAtFailure[];
+  static const char kMetricLinkMonitorUnicastErrorsAtFailure[];
+  static const unsigned int kMetricLinkMonitorErrorCountMin;
+  static const unsigned int kMetricLinkMonitorErrorCountMax;
+  static const int kMetricLinkMonitorErrorCountNumBuckets;
 
   Metrics();
   virtual ~Metrics();
@@ -229,7 +238,11 @@
 
   // Notifies this object of a failure in LinkMonitor.
   void NotifyLinkMonitorFailure(
-      Technology::Identifier technology, LinkMonitorFailure failure);
+      Technology::Identifier technology,
+      LinkMonitorFailure failure,
+      unsigned int seconds_to_failure,
+      unsigned int broadcast_error_count,
+      unsigned int unicast_error_count);
 
   // Notifies this object that LinkMonitor has added a response time sample
   // for |connection| with a value of |response_time_milliseconds|.