Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: base/metrics/histogram_snapshot_manager.cc

Issue 10454086: Histograms - Support histograms for Plugins, GPU (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/metrics/histogram_snapshot_manager.h ('k') | chrome/browser/browser_about_handler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/histogram_snapshot_manager.cc
===================================================================
--- base/metrics/histogram_snapshot_manager.cc (working copy)
+++ base/metrics/histogram_snapshot_manager.cc (working copy)
@@ -2,31 +2,39 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/metrics/histogram_sender.h"
+#include "base/metrics/histogram_snapshot_manager.h"
using base::Histogram;
using base::StatisticsRecorder;
-HistogramSender::HistogramSender() {}
+namespace base {
-HistogramSender::~HistogramSender() {}
+HistogramSnapshotManager::HistogramSnapshotManager(
+ HistogramFlattener* histogram_flattener)
+ : histogram_flattener_(histogram_flattener) {
+ DCHECK(histogram_flattener_);
+}
-void HistogramSender::TransmitAllHistograms(Histogram::Flags flag_to_set,
- bool send_only_uma) {
+HistogramSnapshotManager::~HistogramSnapshotManager() {}
+
+void HistogramSnapshotManager::PrepareDeltas(Histogram::Flags flag_to_set,
+ bool record_only_uma) {
StatisticsRecorder::Histograms histograms;
StatisticsRecorder::GetHistograms(&histograms);
for (StatisticsRecorder::Histograms::const_iterator it = histograms.begin();
histograms.end() != it;
++it) {
(*it)->SetFlags(flag_to_set);
- if (send_only_uma &&
+ if (record_only_uma &&
0 == ((*it)->flags() & Histogram::kUmaTargetedHistogramFlag))
continue;
- TransmitHistogram(**it);
+ PrepareDelta(**it);
}
}
-void HistogramSender::TransmitHistogram(const Histogram& histogram) {
+void HistogramSnapshotManager::PrepareDelta(const Histogram& histogram) {
+ DCHECK(histogram_flattener_);
+
// Get up-to-date snapshot of sample stats.
Histogram::SampleSet snapshot;
histogram.SnapshotSample(&snapshot);
@@ -47,20 +55,20 @@
if (corruption) {
NOTREACHED();
- InconsistencyDetected(corruption);
- // Don't send corrupt data to metrics survices.
+ histogram_flattener_->InconsistencyDetected(corruption);
+ // Don't record corrupt data to metrics survices.
if (NULL == inconsistencies_.get())
inconsistencies_.reset(new ProblemMap);
int old_corruption = (*inconsistencies_)[histogram_name];
if (old_corruption == (corruption | old_corruption))
return; // We've already seen this corruption for this histogram.
(*inconsistencies_)[histogram_name] |= corruption;
- UniqueInconsistencyDetected(corruption);
+ histogram_flattener_->UniqueInconsistencyDetected(corruption);
return;
}
- // Find the already sent stats, or create an empty set. Remove from our
- // snapshot anything that we've already sent.
+ // Find the already recorded stats, or create an empty set. Remove from our
+ // snapshot anything that we've already recorded.
LoggedSampleMap::iterator it = logged_samples_.find(histogram_name);
Histogram::SampleSet* already_logged;
if (logged_samples_.end() == it) {
@@ -70,14 +78,14 @@
} else {
already_logged = &(it->second);
int64 discrepancy(already_logged->TotalCount() -
- already_logged->redundant_count());
+ already_logged->redundant_count());
if (discrepancy) {
NOTREACHED(); // Already_logged has become corrupt.
int problem = static_cast<int>(discrepancy);
if (problem != discrepancy)
problem = INT_MAX;
- SnapshotProblemResolved(problem);
- // With no valid baseline, we'll act like we've sent everything in our
+ histogram_flattener_->SnapshotProblemResolved(problem);
+ // With no valid baseline, we'll act like we've recorded everything in our
// snapshot.
already_logged->Subtract(*already_logged);
already_logged->Add(snapshot);
@@ -88,8 +96,9 @@
// Snapshot now contains only a delta to what we've already_logged.
if (snapshot.redundant_count() > 0) {
- TransmitHistogramDelta(histogram, snapshot);
+ histogram_flattener_->RecordDelta(histogram, snapshot);
// Add new data into our running total.
already_logged->Add(snapshot);
}
}
+} // namespace base
« no previous file with comments | « base/metrics/histogram_snapshot_manager.h ('k') | chrome/browser/browser_about_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698