xref: /aosp_15_r20/external/cronet/base/metrics/histogram_functions.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_functions.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram.h"
8*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_base.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/metrics/sparse_histogram.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h"
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker namespace base {
13*6777b538SAndroid Build Coastguard Worker 
UmaHistogramBoolean(const std::string & name,bool sample)14*6777b538SAndroid Build Coastguard Worker void UmaHistogramBoolean(const std::string& name, bool sample) {
15*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = BooleanHistogram::FactoryGet(
16*6777b538SAndroid Build Coastguard Worker       name, HistogramBase::kUmaTargetedHistogramFlag);
17*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
18*6777b538SAndroid Build Coastguard Worker }
19*6777b538SAndroid Build Coastguard Worker 
UmaHistogramBoolean(const char * name,bool sample)20*6777b538SAndroid Build Coastguard Worker void UmaHistogramBoolean(const char* name, bool sample) {
21*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = BooleanHistogram::FactoryGet(
22*6777b538SAndroid Build Coastguard Worker       name, HistogramBase::kUmaTargetedHistogramFlag);
23*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
24*6777b538SAndroid Build Coastguard Worker }
25*6777b538SAndroid Build Coastguard Worker 
UmaHistogramExactLinear(const std::string & name,int sample,int exclusive_max)26*6777b538SAndroid Build Coastguard Worker void UmaHistogramExactLinear(const std::string& name,
27*6777b538SAndroid Build Coastguard Worker                              int sample,
28*6777b538SAndroid Build Coastguard Worker                              int exclusive_max) {
29*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = LinearHistogram::FactoryGet(
30*6777b538SAndroid Build Coastguard Worker       name, 1, exclusive_max, static_cast<size_t>(exclusive_max + 1),
31*6777b538SAndroid Build Coastguard Worker       HistogramBase::kUmaTargetedHistogramFlag);
32*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
33*6777b538SAndroid Build Coastguard Worker }
34*6777b538SAndroid Build Coastguard Worker 
UmaHistogramExactLinear(const char * name,int sample,int exclusive_max)35*6777b538SAndroid Build Coastguard Worker void UmaHistogramExactLinear(const char* name, int sample, int exclusive_max) {
36*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = LinearHistogram::FactoryGet(
37*6777b538SAndroid Build Coastguard Worker       name, 1, exclusive_max, static_cast<size_t>(exclusive_max + 1),
38*6777b538SAndroid Build Coastguard Worker       HistogramBase::kUmaTargetedHistogramFlag);
39*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
40*6777b538SAndroid Build Coastguard Worker }
41*6777b538SAndroid Build Coastguard Worker 
UmaHistogramPercentage(const std::string & name,int percent)42*6777b538SAndroid Build Coastguard Worker void UmaHistogramPercentage(const std::string& name, int percent) {
43*6777b538SAndroid Build Coastguard Worker   UmaHistogramExactLinear(name, percent, 101);
44*6777b538SAndroid Build Coastguard Worker }
45*6777b538SAndroid Build Coastguard Worker 
UmaHistogramPercentage(const char * name,int percent)46*6777b538SAndroid Build Coastguard Worker void UmaHistogramPercentage(const char* name, int percent) {
47*6777b538SAndroid Build Coastguard Worker   UmaHistogramExactLinear(name, percent, 101);
48*6777b538SAndroid Build Coastguard Worker }
49*6777b538SAndroid Build Coastguard Worker 
UmaHistogramPercentageObsoleteDoNotUse(const std::string & name,int percent)50*6777b538SAndroid Build Coastguard Worker void UmaHistogramPercentageObsoleteDoNotUse(const std::string& name,
51*6777b538SAndroid Build Coastguard Worker                                             int percent) {
52*6777b538SAndroid Build Coastguard Worker   UmaHistogramExactLinear(name, percent, 100);
53*6777b538SAndroid Build Coastguard Worker }
54*6777b538SAndroid Build Coastguard Worker 
UmaHistogramPercentageObsoleteDoNotUse(const char * name,int percent)55*6777b538SAndroid Build Coastguard Worker void UmaHistogramPercentageObsoleteDoNotUse(const char* name, int percent) {
56*6777b538SAndroid Build Coastguard Worker   UmaHistogramExactLinear(name, percent, 100);
57*6777b538SAndroid Build Coastguard Worker }
58*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCustomCounts(const std::string & name,int sample,int min,int exclusive_max,size_t buckets)59*6777b538SAndroid Build Coastguard Worker void UmaHistogramCustomCounts(const std::string& name,
60*6777b538SAndroid Build Coastguard Worker                               int sample,
61*6777b538SAndroid Build Coastguard Worker                               int min,
62*6777b538SAndroid Build Coastguard Worker                               int exclusive_max,
63*6777b538SAndroid Build Coastguard Worker                               size_t buckets) {
64*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram =
65*6777b538SAndroid Build Coastguard Worker       Histogram::FactoryGet(name, min, exclusive_max, buckets,
66*6777b538SAndroid Build Coastguard Worker                             HistogramBase::kUmaTargetedHistogramFlag);
67*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
68*6777b538SAndroid Build Coastguard Worker }
69*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCustomCounts(const char * name,int sample,int min,int exclusive_max,size_t buckets)70*6777b538SAndroid Build Coastguard Worker void UmaHistogramCustomCounts(const char* name,
71*6777b538SAndroid Build Coastguard Worker                               int sample,
72*6777b538SAndroid Build Coastguard Worker                               int min,
73*6777b538SAndroid Build Coastguard Worker                               int exclusive_max,
74*6777b538SAndroid Build Coastguard Worker                               size_t buckets) {
75*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram =
76*6777b538SAndroid Build Coastguard Worker       Histogram::FactoryGet(name, min, exclusive_max, buckets,
77*6777b538SAndroid Build Coastguard Worker                             HistogramBase::kUmaTargetedHistogramFlag);
78*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
79*6777b538SAndroid Build Coastguard Worker }
80*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts100(const std::string & name,int sample)81*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts100(const std::string& name, int sample) {
82*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 100, 50);
83*6777b538SAndroid Build Coastguard Worker }
84*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts100(const char * name,int sample)85*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts100(const char* name, int sample) {
86*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 100, 50);
87*6777b538SAndroid Build Coastguard Worker }
88*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts1000(const std::string & name,int sample)89*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts1000(const std::string& name, int sample) {
90*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 1000, 50);
91*6777b538SAndroid Build Coastguard Worker }
92*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts1000(const char * name,int sample)93*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts1000(const char* name, int sample) {
94*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 1000, 50);
95*6777b538SAndroid Build Coastguard Worker }
96*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts10000(const std::string & name,int sample)97*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts10000(const std::string& name, int sample) {
98*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 10000, 50);
99*6777b538SAndroid Build Coastguard Worker }
100*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts10000(const char * name,int sample)101*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts10000(const char* name, int sample) {
102*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 10000, 50);
103*6777b538SAndroid Build Coastguard Worker }
104*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts100000(const std::string & name,int sample)105*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts100000(const std::string& name, int sample) {
106*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 100000, 50);
107*6777b538SAndroid Build Coastguard Worker }
108*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts100000(const char * name,int sample)109*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts100000(const char* name, int sample) {
110*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 100000, 50);
111*6777b538SAndroid Build Coastguard Worker }
112*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts1M(const std::string & name,int sample)113*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts1M(const std::string& name, int sample) {
114*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 1000000, 50);
115*6777b538SAndroid Build Coastguard Worker }
116*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts1M(const char * name,int sample)117*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts1M(const char* name, int sample) {
118*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 1000000, 50);
119*6777b538SAndroid Build Coastguard Worker }
120*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts10M(const std::string & name,int sample)121*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts10M(const std::string& name, int sample) {
122*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 10000000, 50);
123*6777b538SAndroid Build Coastguard Worker }
124*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCounts10M(const char * name,int sample)125*6777b538SAndroid Build Coastguard Worker void UmaHistogramCounts10M(const char* name, int sample) {
126*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 10000000, 50);
127*6777b538SAndroid Build Coastguard Worker }
128*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCustomTimes(const std::string & name,TimeDelta sample,TimeDelta min,TimeDelta max,size_t buckets)129*6777b538SAndroid Build Coastguard Worker void UmaHistogramCustomTimes(const std::string& name,
130*6777b538SAndroid Build Coastguard Worker                              TimeDelta sample,
131*6777b538SAndroid Build Coastguard Worker                              TimeDelta min,
132*6777b538SAndroid Build Coastguard Worker                              TimeDelta max,
133*6777b538SAndroid Build Coastguard Worker                              size_t buckets) {
134*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = Histogram::FactoryTimeGet(
135*6777b538SAndroid Build Coastguard Worker       name, min, max, buckets, HistogramBase::kUmaTargetedHistogramFlag);
136*6777b538SAndroid Build Coastguard Worker   histogram->AddTimeMillisecondsGranularity(sample);
137*6777b538SAndroid Build Coastguard Worker }
138*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCustomTimes(const char * name,TimeDelta sample,TimeDelta min,TimeDelta max,size_t buckets)139*6777b538SAndroid Build Coastguard Worker void UmaHistogramCustomTimes(const char* name,
140*6777b538SAndroid Build Coastguard Worker                              TimeDelta sample,
141*6777b538SAndroid Build Coastguard Worker                              TimeDelta min,
142*6777b538SAndroid Build Coastguard Worker                              TimeDelta max,
143*6777b538SAndroid Build Coastguard Worker                              size_t buckets) {
144*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = Histogram::FactoryTimeGet(
145*6777b538SAndroid Build Coastguard Worker       name, min, max, buckets, HistogramBase::kUmaTargetedHistogramFlag);
146*6777b538SAndroid Build Coastguard Worker   histogram->AddTimeMillisecondsGranularity(sample);
147*6777b538SAndroid Build Coastguard Worker }
148*6777b538SAndroid Build Coastguard Worker 
UmaHistogramTimes(const std::string & name,TimeDelta sample)149*6777b538SAndroid Build Coastguard Worker void UmaHistogramTimes(const std::string& name, TimeDelta sample) {
150*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Seconds(10), 50);
151*6777b538SAndroid Build Coastguard Worker }
152*6777b538SAndroid Build Coastguard Worker 
UmaHistogramTimes(const char * name,TimeDelta sample)153*6777b538SAndroid Build Coastguard Worker void UmaHistogramTimes(const char* name, TimeDelta sample) {
154*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Seconds(10), 50);
155*6777b538SAndroid Build Coastguard Worker }
156*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMediumTimes(const std::string & name,TimeDelta sample)157*6777b538SAndroid Build Coastguard Worker void UmaHistogramMediumTimes(const std::string& name, TimeDelta sample) {
158*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Minutes(3), 50);
159*6777b538SAndroid Build Coastguard Worker }
160*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMediumTimes(const char * name,TimeDelta sample)161*6777b538SAndroid Build Coastguard Worker void UmaHistogramMediumTimes(const char* name, TimeDelta sample) {
162*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Minutes(3), 50);
163*6777b538SAndroid Build Coastguard Worker }
164*6777b538SAndroid Build Coastguard Worker 
UmaHistogramLongTimes(const std::string & name,TimeDelta sample)165*6777b538SAndroid Build Coastguard Worker void UmaHistogramLongTimes(const std::string& name, TimeDelta sample) {
166*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Hours(1), 50);
167*6777b538SAndroid Build Coastguard Worker }
168*6777b538SAndroid Build Coastguard Worker 
UmaHistogramLongTimes(const char * name,TimeDelta sample)169*6777b538SAndroid Build Coastguard Worker void UmaHistogramLongTimes(const char* name, TimeDelta sample) {
170*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Hours(1), 50);
171*6777b538SAndroid Build Coastguard Worker }
172*6777b538SAndroid Build Coastguard Worker 
UmaHistogramLongTimes100(const std::string & name,TimeDelta sample)173*6777b538SAndroid Build Coastguard Worker void UmaHistogramLongTimes100(const std::string& name, TimeDelta sample) {
174*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Hours(1), 100);
175*6777b538SAndroid Build Coastguard Worker }
176*6777b538SAndroid Build Coastguard Worker 
UmaHistogramLongTimes100(const char * name,TimeDelta sample)177*6777b538SAndroid Build Coastguard Worker void UmaHistogramLongTimes100(const char* name, TimeDelta sample) {
178*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomTimes(name, sample, Milliseconds(1), Hours(1), 100);
179*6777b538SAndroid Build Coastguard Worker }
180*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCustomMicrosecondsTimes(const std::string & name,TimeDelta sample,TimeDelta min,TimeDelta max,size_t buckets)181*6777b538SAndroid Build Coastguard Worker void UmaHistogramCustomMicrosecondsTimes(const std::string& name,
182*6777b538SAndroid Build Coastguard Worker                                          TimeDelta sample,
183*6777b538SAndroid Build Coastguard Worker                                          TimeDelta min,
184*6777b538SAndroid Build Coastguard Worker                                          TimeDelta max,
185*6777b538SAndroid Build Coastguard Worker                                          size_t buckets) {
186*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = Histogram::FactoryMicrosecondsTimeGet(
187*6777b538SAndroid Build Coastguard Worker       name, min, max, buckets, HistogramBase::kUmaTargetedHistogramFlag);
188*6777b538SAndroid Build Coastguard Worker   histogram->AddTimeMicrosecondsGranularity(sample);
189*6777b538SAndroid Build Coastguard Worker }
190*6777b538SAndroid Build Coastguard Worker 
UmaHistogramCustomMicrosecondsTimes(const char * name,TimeDelta sample,TimeDelta min,TimeDelta max,size_t buckets)191*6777b538SAndroid Build Coastguard Worker void UmaHistogramCustomMicrosecondsTimes(const char* name,
192*6777b538SAndroid Build Coastguard Worker                                          TimeDelta sample,
193*6777b538SAndroid Build Coastguard Worker                                          TimeDelta min,
194*6777b538SAndroid Build Coastguard Worker                                          TimeDelta max,
195*6777b538SAndroid Build Coastguard Worker                                          size_t buckets) {
196*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = Histogram::FactoryMicrosecondsTimeGet(
197*6777b538SAndroid Build Coastguard Worker       name, min, max, buckets, HistogramBase::kUmaTargetedHistogramFlag);
198*6777b538SAndroid Build Coastguard Worker   histogram->AddTimeMicrosecondsGranularity(sample);
199*6777b538SAndroid Build Coastguard Worker }
200*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMicrosecondsTimes(const std::string & name,TimeDelta sample)201*6777b538SAndroid Build Coastguard Worker void UmaHistogramMicrosecondsTimes(const std::string& name, TimeDelta sample) {
202*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomMicrosecondsTimes(name, sample, Microseconds(1),
203*6777b538SAndroid Build Coastguard Worker                                       Seconds(10), 50);
204*6777b538SAndroid Build Coastguard Worker }
205*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMicrosecondsTimes(const char * name,TimeDelta sample)206*6777b538SAndroid Build Coastguard Worker void UmaHistogramMicrosecondsTimes(const char* name, TimeDelta sample) {
207*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomMicrosecondsTimes(name, sample, Microseconds(1),
208*6777b538SAndroid Build Coastguard Worker                                       Seconds(10), 50);
209*6777b538SAndroid Build Coastguard Worker }
210*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMemoryKB(const std::string & name,int sample)211*6777b538SAndroid Build Coastguard Worker void UmaHistogramMemoryKB(const std::string& name, int sample) {
212*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1000, 500000, 50);
213*6777b538SAndroid Build Coastguard Worker }
214*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMemoryKB(const char * name,int sample)215*6777b538SAndroid Build Coastguard Worker void UmaHistogramMemoryKB(const char* name, int sample) {
216*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1000, 500000, 50);
217*6777b538SAndroid Build Coastguard Worker }
218*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMemoryMB(const std::string & name,int sample)219*6777b538SAndroid Build Coastguard Worker void UmaHistogramMemoryMB(const std::string& name, int sample) {
220*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 1000, 50);
221*6777b538SAndroid Build Coastguard Worker }
222*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMemoryMB(const char * name,int sample)223*6777b538SAndroid Build Coastguard Worker void UmaHistogramMemoryMB(const char* name, int sample) {
224*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 1000, 50);
225*6777b538SAndroid Build Coastguard Worker }
226*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMemoryLargeMB(const std::string & name,int sample)227*6777b538SAndroid Build Coastguard Worker void UmaHistogramMemoryLargeMB(const std::string& name, int sample) {
228*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 64000, 100);
229*6777b538SAndroid Build Coastguard Worker }
230*6777b538SAndroid Build Coastguard Worker 
UmaHistogramMemoryLargeMB(const char * name,int sample)231*6777b538SAndroid Build Coastguard Worker void UmaHistogramMemoryLargeMB(const char* name, int sample) {
232*6777b538SAndroid Build Coastguard Worker   UmaHistogramCustomCounts(name, sample, 1, 64000, 100);
233*6777b538SAndroid Build Coastguard Worker }
234*6777b538SAndroid Build Coastguard Worker 
UmaHistogramSparse(const std::string & name,int sample)235*6777b538SAndroid Build Coastguard Worker void UmaHistogramSparse(const std::string& name, int sample) {
236*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = SparseHistogram::FactoryGet(
237*6777b538SAndroid Build Coastguard Worker       name, HistogramBase::kUmaTargetedHistogramFlag);
238*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
239*6777b538SAndroid Build Coastguard Worker }
240*6777b538SAndroid Build Coastguard Worker 
UmaHistogramSparse(const char * name,int sample)241*6777b538SAndroid Build Coastguard Worker void UmaHistogramSparse(const char* name, int sample) {
242*6777b538SAndroid Build Coastguard Worker   HistogramBase* histogram = SparseHistogram::FactoryGet(
243*6777b538SAndroid Build Coastguard Worker       name, HistogramBase::kUmaTargetedHistogramFlag);
244*6777b538SAndroid Build Coastguard Worker   histogram->Add(sample);
245*6777b538SAndroid Build Coastguard Worker }
246*6777b538SAndroid Build Coastguard Worker 
247*6777b538SAndroid Build Coastguard Worker }  // namespace base
248