summaryrefslogtreecommitdiffstats
path: root/base/metrics
diff options
context:
space:
mode:
authorjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-10 09:32:58 +0000
committerjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-10 09:32:58 +0000
commitcdd98fcc63b315f39087b9898f35b97bc12e0b44 (patch)
treee116b0a6b3b18a3e86f1a1ef04065cc67c5dcf40 /base/metrics
parent847522f9fc1e134417e8bc87af9ab20cb3e7f123 (diff)
downloadchromium_src-cdd98fcc63b315f39087b9898f35b97bc12e0b44.zip
chromium_src-cdd98fcc63b315f39087b9898f35b97bc12e0b44.tar.gz
chromium_src-cdd98fcc63b315f39087b9898f35b97bc12e0b44.tar.bz2
Telemetry startup tests: Add more histograms to startup tests
* Track a couple more histograms in telemetry-based startup test. * Make histograms report average value in JSON, in the case of the histograms we're interested in, only a single value is recorded so the average is the exact value and we aren't limited in resolution by the bucket width. * Remove unneeded _Exact histogram. BUG=None Review URL: https://chromiumcodereview.appspot.com/14632003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199435 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/metrics')
-rw-r--r--base/metrics/histogram.cc5
-rw-r--r--base/metrics/histogram.h1
-rw-r--r--base/metrics/histogram_base.cc4
-rw-r--r--base/metrics/histogram_base.h4
-rw-r--r--base/metrics/sparse_histogram.cc1
-rw-r--r--base/metrics/sparse_histogram.h1
6 files changed, 13 insertions, 3 deletions
diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc
index da12ccb..bb2ee9b 100644
--- a/base/metrics/histogram.cc
+++ b/base/metrics/histogram.cc
@@ -487,9 +487,12 @@ void Histogram::GetParameters(DictionaryValue* params) const {
params->SetInteger("bucket_count", static_cast<int>(bucket_count()));
}
-void Histogram::GetCountAndBucketData(Count* count, ListValue* buckets) const {
+void Histogram::GetCountAndBucketData(Count* count,
+ int64* sum,
+ ListValue* buckets) const {
scoped_ptr<SampleVector> snapshot = SnapshotSampleVector();
*count = snapshot->TotalCount();
+ *sum = snapshot->sum();
size_t index = 0;
for (size_t i = 0; i < bucket_count(); ++i) {
Sample count = snapshot->GetCountAtIndex(i);
diff --git a/base/metrics/histogram.h b/base/metrics/histogram.h
index 8d059f9..72da2e0 100644
--- a/base/metrics/histogram.h
+++ b/base/metrics/histogram.h
@@ -515,6 +515,7 @@ class BASE_EXPORT Histogram : public HistogramBase {
virtual void GetParameters(DictionaryValue* params) const OVERRIDE;
virtual void GetCountAndBucketData(Count* count,
+ int64* sum,
ListValue* buckets) const OVERRIDE;
// Does not own this object. Should get from StatisticsRecorder.
diff --git a/base/metrics/histogram_base.cc b/base/metrics/histogram_base.cc
index 51689a8..8599f59 100644
--- a/base/metrics/histogram_base.cc
+++ b/base/metrics/histogram_base.cc
@@ -109,8 +109,9 @@ int HistogramBase::FindCorruption(const HistogramSamples& samples) const {
void HistogramBase::WriteJSON(std::string* output) const {
Count count;
+ int64 sum;
scoped_ptr<ListValue> buckets(new ListValue());
- GetCountAndBucketData(&count, buckets.get());
+ GetCountAndBucketData(&count, &sum, buckets.get());
scoped_ptr<DictionaryValue> parameters(new DictionaryValue());
GetParameters(parameters.get());
@@ -118,6 +119,7 @@ void HistogramBase::WriteJSON(std::string* output) const {
DictionaryValue root;
root.SetString("name", histogram_name());
root.SetInteger("count", count);
+ root.SetDouble("sum", sum);
root.SetInteger("flags", flags());
root.Set("params", parameters.release());
root.Set("buckets", buckets.release());
diff --git a/base/metrics/histogram_base.h b/base/metrics/histogram_base.h
index 2fa846e..a133fa5 100644
--- a/base/metrics/histogram_base.h
+++ b/base/metrics/histogram_base.h
@@ -139,8 +139,10 @@ protected:
virtual void GetParameters(DictionaryValue* params) const = 0;
// Writes information about the current (non-empty) buckets and their sample
- // counts to |buckets| and the total sample count to |count|.
+ // counts to |buckets|, the total sample count to |count| and the total sum
+ // to |sum|.
virtual void GetCountAndBucketData(Count* count,
+ int64* sum,
ListValue* buckets) const = 0;
//// Produce actual graph (set of blank vs non blank char's) for a bucket.
diff --git a/base/metrics/sparse_histogram.cc b/base/metrics/sparse_histogram.cc
index df361f7..dd98e58 100644
--- a/base/metrics/sparse_histogram.cc
+++ b/base/metrics/sparse_histogram.cc
@@ -105,6 +105,7 @@ void SparseHistogram::GetParameters(DictionaryValue* params) const {
}
void SparseHistogram::GetCountAndBucketData(Count* count,
+ int64* sum,
ListValue* buckets) const {
// TODO(kaiwang): Implement. (See HistogramBase::WriteJSON.)
}
diff --git a/base/metrics/sparse_histogram.h b/base/metrics/sparse_histogram.h
index 4de2002..870b06b 100644
--- a/base/metrics/sparse_histogram.h
+++ b/base/metrics/sparse_histogram.h
@@ -88,6 +88,7 @@ class BASE_EXPORT_PRIVATE SparseHistogram : public HistogramBase {
virtual void GetParameters(DictionaryValue* params) const OVERRIDE;
virtual void GetCountAndBucketData(Count* count,
+ int64* sum,
ListValue* buckets) const OVERRIDE;
// Helpers for emitting Ascii graphic. Each method appends data to output.