| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/external_metrics.h" | 5 #include "chrome/browser/chromeos/external_metrics.h" |
| 6 | 6 |
| 7 #include <fcntl.h> | 7 #include <fcntl.h> |
| 8 #include <stdio.h> | 8 #include <stdio.h> |
| 9 #include <stdlib.h> | 9 #include <stdlib.h> |
| 10 #include <string.h> | 10 #include <string.h> |
| 11 #include <unistd.h> | 11 #include <unistd.h> |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 int sample, min, max, nbuckets; | 79 int sample, min, max, nbuckets; |
| 80 char name[128]; // length must be consistent with sscanf format below. | 80 char name[128]; // length must be consistent with sscanf format below. |
| 81 int n = sscanf(histogram_data, "%127s %d %d %d %d", | 81 int n = sscanf(histogram_data, "%127s %d %d %d %d", |
| 82 name, &sample, &min, &max, &nbuckets); | 82 name, &sample, &min, &max, &nbuckets); |
| 83 if (n != 5) { | 83 if (n != 5) { |
| 84 LOG(ERROR) << "bad histogram request: " << histogram_data; | 84 LOG(ERROR) << "bad histogram request: " << histogram_data; |
| 85 return; | 85 return; |
| 86 } | 86 } |
| 87 // Do not use the UMA_HISTOGRAM_... macros here. They cache the Histogram | 87 // Do not use the UMA_HISTOGRAM_... macros here. They cache the Histogram |
| 88 // instance and thus only work if |name| is constant. | 88 // instance and thus only work if |name| is constant. |
| 89 scoped_refptr<base::Histogram> counter = base::Histogram::FactoryGet( | 89 base::Histogram* counter = base::Histogram::FactoryGet( |
| 90 name, min, max, nbuckets, base::Histogram::kUmaTargetedHistogramFlag); | 90 name, min, max, nbuckets, base::Histogram::kUmaTargetedHistogramFlag); |
| 91 counter->Add(sample); | 91 counter->Add(sample); |
| 92 } | 92 } |
| 93 | 93 |
| 94 void ExternalMetrics::RecordLinearHistogram(const char* histogram_data) { | 94 void ExternalMetrics::RecordLinearHistogram(const char* histogram_data) { |
| 95 int sample, max; | 95 int sample, max; |
| 96 char name[128]; // length must be consistent with sscanf format below. | 96 char name[128]; // length must be consistent with sscanf format below. |
| 97 int n = sscanf(histogram_data, "%127s %d %d", name, &sample, &max); | 97 int n = sscanf(histogram_data, "%127s %d %d", name, &sample, &max); |
| 98 if (n != 3) { | 98 if (n != 3) { |
| 99 LOG(ERROR) << "bad linear histogram request: " << histogram_data; | 99 LOG(ERROR) << "bad linear histogram request: " << histogram_data; |
| 100 return; | 100 return; |
| 101 } | 101 } |
| 102 // Do not use the UMA_HISTOGRAM_... macros here. They cache the Histogram | 102 // Do not use the UMA_HISTOGRAM_... macros here. They cache the Histogram |
| 103 // instance and thus only work if |name| is constant. | 103 // instance and thus only work if |name| is constant. |
| 104 scoped_refptr<base::Histogram> counter = base::LinearHistogram::FactoryGet( | 104 base::Histogram* counter = base::LinearHistogram::FactoryGet( |
| 105 name, 1, max, max + 1, base::Histogram::kUmaTargetedHistogramFlag); | 105 name, 1, max, max + 1, base::Histogram::kUmaTargetedHistogramFlag); |
| 106 counter->Add(sample); | 106 counter->Add(sample); |
| 107 } | 107 } |
| 108 | 108 |
| 109 void ExternalMetrics::CollectEvents() { | 109 void ExternalMetrics::CollectEvents() { |
| 110 const char* event_file_path = "/var/log/metrics/uma-events"; | 110 const char* event_file_path = "/var/log/metrics/uma-events"; |
| 111 struct stat stat_buf; | 111 struct stat stat_buf; |
| 112 int result; | 112 int result; |
| 113 if (!test_path_.empty()) { | 113 if (!test_path_.empty()) { |
| 114 event_file_path = test_path_.value().c_str(); | 114 event_file_path = test_path_.value().c_str(); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 void ExternalMetrics::ScheduleCollector() { | 227 void ExternalMetrics::ScheduleCollector() { |
| 228 bool result; | 228 bool result; |
| 229 result = BrowserThread::PostDelayedTask( | 229 result = BrowserThread::PostDelayedTask( |
| 230 BrowserThread::FILE, FROM_HERE, NewRunnableMethod( | 230 BrowserThread::FILE, FROM_HERE, NewRunnableMethod( |
| 231 this, &chromeos::ExternalMetrics::CollectEventsAndReschedule), | 231 this, &chromeos::ExternalMetrics::CollectEventsAndReschedule), |
| 232 kExternalMetricsCollectionIntervalMs); | 232 kExternalMetricsCollectionIntervalMs); |
| 233 DCHECK(result); | 233 DCHECK(result); |
| 234 } | 234 } |
| 235 | 235 |
| 236 } // namespace chromeos | 236 } // namespace chromeos |
| OLD | NEW |