shill: UMA stats Network.Shill.WiFi.Security and Network.Shill.WiFi.PhyMode
Add code to send WiFi security and physical mode UMA metrics.
BUG=chromium-os:24441
TEST=Unit tests
Change-Id: I30bf90d55110dc543f105c06e916b58f73692637
Reviewed-on: https://gerrit.chromium.org/gerrit/13765
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
Commit-Ready: Thieu Le <thieule@chromium.org>
diff --git a/metrics.cc b/metrics.cc
index 1810164..eb31772 100644
--- a/metrics.cc
+++ b/metrics.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -8,6 +8,7 @@
#include <base/logging.h>
#include <base/string_util.h>
#include <base/stringprintf.h>
+#include <chromeos/dbus/service_constants.h>
#include "shill/wifi_service.h"
@@ -21,6 +22,10 @@
// static
const char Metrics::kMetricNetworkChannel[] = "Network.Shill.%s.Channel";
const int Metrics::kMetricNetworkChannelMax = Metrics::kWiFiChannelMax;
+const char Metrics::kMetricNetworkPhyMode[] = "Network.Shill.%s.PhyMode";
+const int Metrics::kMetricNetworkPhyModeMax = Metrics::kWiFiNetworkPhyModeMax;
+const char Metrics::kMetricNetworkSecurity[] = "Network.Shill.%s.Security";
+const int Metrics::kMetricNetworkSecurityMax = Metrics::kWiFiSecurityMax;
const char Metrics::kMetricNetworkServiceErrors[] =
"Network.Shill.ServiceErrors";
const int Metrics::kMetricNetworkServiceErrorsMax = Service::kFailureMax;
@@ -113,6 +118,26 @@
return channel;
}
+// static
+Metrics::WiFiSecurity Metrics::WiFiSecurityStringToEnum(
+ const std::string &security) {
+ if (security == flimflam::kSecurityNone) {
+ return kWiFiSecurityNone;
+ } else if (security == flimflam::kSecurityWep) {
+ return kWiFiSecurityWep;
+ } else if (security == flimflam::kSecurityWpa) {
+ return kWiFiSecurityWpa;
+ } else if (security == flimflam::kSecurityRsn) {
+ return kWiFiSecurityRsn;
+ } else if (security == flimflam::kSecurity8021x) {
+ return kWiFiSecurity8021x;
+ } else if (security == flimflam::kSecurityPsk) {
+ return kWiFiSecurityPsk;
+ } else {
+ return kWiFiSecurityUnknown;
+ }
+}
+
void Metrics::RegisterService(const Service *service) {
shared_ptr<ServiceMetrics> service_metrics(new ServiceMetrics);
services_metrics_[service] = service_metrics;