diff options
author | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-08 15:44:40 +0000 |
---|---|---|
committer | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-08 15:44:40 +0000 |
commit | c94de1860d5f53b31d4178ae77f2bca40e33c9be (patch) | |
tree | 7ebb5f6b67669abbbbd04615fa994b769e3968a7 /chrome/browser/policy/user_policy_token_cache.cc | |
parent | 5cac508f9286ffdefbb3fbb4f0edb893a2b30759 (diff) | |
download | chromium_src-c94de1860d5f53b31d4178ae77f2bca40e33c9be.zip chromium_src-c94de1860d5f53b31d4178ae77f2bca40e33c9be.tar.gz chromium_src-c94de1860d5f53b31d4178ae77f2bca40e33c9be.tar.bz2 |
UMA metrics for cloud policies.
BUG=chromium-os:14002
TEST=Set cloud policies using testserver, corrupt some files, check about:histograms
Review URL: http://codereview.chromium.org/7105018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91857 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/user_policy_token_cache.cc')
-rw-r--r-- | chrome/browser/policy/user_policy_token_cache.cc | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/chrome/browser/policy/user_policy_token_cache.cc b/chrome/browser/policy/user_policy_token_cache.cc index adba4a4..e2341d8 100644 --- a/chrome/browser/policy/user_policy_token_cache.cc +++ b/chrome/browser/policy/user_policy_token_cache.cc @@ -5,8 +5,28 @@ #include "chrome/browser/policy/user_policy_token_cache.h" #include "base/file_util.h" +#include "base/metrics/histogram.h" +#include "chrome/browser/policy/enterprise_metrics.h" #include "content/browser/browser_thread.h" +namespace { + +// Other places can sample on the same UMA counter, so make sure they all do +// it on the same thread (UI). +void SampleUMAOnUIThread(policy::MetricToken sample) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + UMA_HISTOGRAM_ENUMERATION(policy::kMetricToken, sample, + policy::kMetricTokenSize); +} + +void SampleUMA(policy::MetricToken sample) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, + NewRunnableFunction(&SampleUMAOnUIThread, sample)); +} + +} // namespace + namespace policy { namespace em = enterprise_management; @@ -52,6 +72,9 @@ void UserPolicyTokenCache::LoadOnFileThread() { device_credentials.ParseFromArray(data.c_str(), data.size())) { device_token = device_credentials.device_token(); device_id = device_credentials.device_id(); + SampleUMA(kMetricTokenLoadSucceeded); + } else { + SampleUMA(kMetricTokenLoadFailed); } } @@ -81,16 +104,24 @@ void UserPolicyTokenCache::StoreOnFileThread(const std::string& token, if (!success) { LOG(WARNING) << "Failed serialize device token data, will not write " << cache_file_.value(); + SampleUMA(kMetricTokenStoreFailed); return; } if (!file_util::CreateDirectory(cache_file_.DirName())) { LOG(WARNING) << "Failed to create directory " << cache_file_.DirName().value(); + SampleUMA(kMetricTokenStoreFailed); return; } - file_util::WriteFile(cache_file_, data.c_str(), data.length()); + int size = data.size(); + if (file_util::WriteFile(cache_file_, data.c_str(), size) != size) { + LOG(WARNING) << "Failed to write " << cache_file_.value(); + SampleUMA(kMetricTokenStoreFailed); + } + + SampleUMA(kMetricTokenStoreSucceeded); } } // namespace policy |