shill: metrics: Collect termination action statistics

When shill terminates, it executes a set of termination actions that
were queued while it was running (e.g. a cellular device queues a
disconnection request as an action). This CL adds code to track the
percentage of termination actions that succeed within the given timeout
period for termination.

BUG=chromium-os:31475
TEST=Manually tested changes via chrome://histograms

Change-Id: Id2d5e5fef2a02a2d1e4b6a17c8a1366c9ac6676e
Reviewed-on: https://gerrit.chromium.org/gerrit/33225
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Gary Morain <gmorain@chromium.org>
Tested-by: Arman Uguray <armansito@chromium.org>
Commit-Ready: Arman Uguray <armansito@chromium.org>
diff --git a/metrics.h b/metrics.h
index a433dd8..16067e0 100644
--- a/metrics.h
+++ b/metrics.h
@@ -139,6 +139,12 @@
     kDisconnectedNotByAp
   };
 
+  enum TerminationActionResult {
+    kTerminationActionSuccess,
+    kTerminationActionFailure,
+    kTerminationActionResultMax
+  };
+
   static const char kMetricDisconnect[];
   static const int kMetricDisconnectMax;
   static const int kMetricDisconnectMin;
@@ -209,6 +215,9 @@
   static const char kMetricLinkClientDisconnectType[];
   static const char kMetricLinkApDisconnectType[];
 
+  // Shill termination action statistics.
+  static const char kMetricTerminationActionResult[];
+
   Metrics();
   virtual ~Metrics();