xref: /aosp_15_r20/external/cronet/base/metrics/histogram_macros_local.h (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 #ifndef BASE_METRICS_HISTOGRAM_MACROS_LOCAL_H_
6*6777b538SAndroid Build Coastguard Worker #define BASE_METRICS_HISTOGRAM_MACROS_LOCAL_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_macros_internal.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h"
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker // TODO(rkaplow): Migrate all LOCAL_* usage within Chromium to include this
13*6777b538SAndroid Build Coastguard Worker // file instead of the histogram_macros.h file.
14*6777b538SAndroid Build Coastguard Worker 
15*6777b538SAndroid Build Coastguard Worker //------------------------------------------------------------------------------
16*6777b538SAndroid Build Coastguard Worker // Enumeration histograms.
17*6777b538SAndroid Build Coastguard Worker //
18*6777b538SAndroid Build Coastguard Worker // For usage details, see the equivalents in histogram_macros.h.
19*6777b538SAndroid Build Coastguard Worker 
20*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_ENUMERATION(name, ...)                          \
21*6777b538SAndroid Build Coastguard Worker   INTERNAL_UMA_HISTOGRAM_ENUMERATION_GET_MACRO(                         \
22*6777b538SAndroid Build Coastguard Worker       __VA_ARGS__, INTERNAL_UMA_HISTOGRAM_ENUMERATION_SPECIFY_BOUNDARY, \
23*6777b538SAndroid Build Coastguard Worker       INTERNAL_UMA_HISTOGRAM_ENUMERATION_DEDUCE_BOUNDARY)               \
24*6777b538SAndroid Build Coastguard Worker   (name, __VA_ARGS__, base::HistogramBase::kNoFlags)
25*6777b538SAndroid Build Coastguard Worker 
26*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_BOOLEAN(name, sample)                                  \
27*6777b538SAndroid Build Coastguard Worker     STATIC_HISTOGRAM_POINTER_BLOCK(name, AddBoolean(sample),                   \
28*6777b538SAndroid Build Coastguard Worker         base::BooleanHistogram::FactoryGet(name, base::Histogram::kNoFlags))
29*6777b538SAndroid Build Coastguard Worker 
30*6777b538SAndroid Build Coastguard Worker //------------------------------------------------------------------------------
31*6777b538SAndroid Build Coastguard Worker // Percentage histograms.
32*6777b538SAndroid Build Coastguard Worker //
33*6777b538SAndroid Build Coastguard Worker // For usage details, see the equivalents in histogram_macros.h
34*6777b538SAndroid Build Coastguard Worker 
35*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_PERCENTAGE(name, under_one_hundred)                    \
36*6777b538SAndroid Build Coastguard Worker     LOCAL_HISTOGRAM_ENUMERATION(name, under_one_hundred, 101)
37*6777b538SAndroid Build Coastguard Worker 
38*6777b538SAndroid Build Coastguard Worker //------------------------------------------------------------------------------
39*6777b538SAndroid Build Coastguard Worker // Count histograms. These are used for collecting numeric data. Note that we
40*6777b538SAndroid Build Coastguard Worker // have macros for more specialized use cases below (memory, time, percentages).
41*6777b538SAndroid Build Coastguard Worker // For usage details, see the equivalents in histogram_macros.h.
42*6777b538SAndroid Build Coastguard Worker 
43*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_COUNTS_100(name, sample)                               \
44*6777b538SAndroid Build Coastguard Worker     LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, 1, 100, 50)
45*6777b538SAndroid Build Coastguard Worker 
46*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_COUNTS_10000(name, sample)                             \
47*6777b538SAndroid Build Coastguard Worker     LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, 1, 10000, 50)
48*6777b538SAndroid Build Coastguard Worker 
49*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_COUNTS_1000000(name, sample)                           \
50*6777b538SAndroid Build Coastguard Worker     LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, 1, 1000000, 50)
51*6777b538SAndroid Build Coastguard Worker 
52*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, min, max, bucket_count)    \
53*6777b538SAndroid Build Coastguard Worker     INTERNAL_HISTOGRAM_CUSTOM_COUNTS_WITH_FLAG(                                \
54*6777b538SAndroid Build Coastguard Worker         name, sample, min, max, bucket_count, base::HistogramBase::kNoFlags)
55*6777b538SAndroid Build Coastguard Worker 
56*6777b538SAndroid Build Coastguard Worker //------------------------------------------------------------------------------
57*6777b538SAndroid Build Coastguard Worker // Timing histograms. These are used for collecting timing data (generally
58*6777b538SAndroid Build Coastguard Worker // latencies).
59*6777b538SAndroid Build Coastguard Worker //
60*6777b538SAndroid Build Coastguard Worker // For usage details, see the equivalents in histogram_macros.h.
61*6777b538SAndroid Build Coastguard Worker 
62*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_TIMES(name, sample)                         \
63*6777b538SAndroid Build Coastguard Worker   LOCAL_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \
64*6777b538SAndroid Build Coastguard Worker                                base::Seconds(10), 50)
65*6777b538SAndroid Build Coastguard Worker 
66*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
67*6777b538SAndroid Build Coastguard Worker   STATIC_HISTOGRAM_POINTER_BLOCK(                                          \
68*6777b538SAndroid Build Coastguard Worker       name, AddTimeMillisecondsGranularity(sample),                        \
69*6777b538SAndroid Build Coastguard Worker       base::Histogram::FactoryTimeGet(name, min, max, bucket_count,        \
70*6777b538SAndroid Build Coastguard Worker                                       base::HistogramBase::kNoFlags))
71*6777b538SAndroid Build Coastguard Worker 
72*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(name, sample, min, max, \
73*6777b538SAndroid Build Coastguard Worker                                                   bucket_count)           \
74*6777b538SAndroid Build Coastguard Worker   STATIC_HISTOGRAM_POINTER_BLOCK(                                         \
75*6777b538SAndroid Build Coastguard Worker       name, AddTimeMicrosecondsGranularity(sample),                       \
76*6777b538SAndroid Build Coastguard Worker       base::Histogram::FactoryMicrosecondsTimeGet(                        \
77*6777b538SAndroid Build Coastguard Worker           name, min, max, bucket_count, base::HistogramBase::kNoFlags))
78*6777b538SAndroid Build Coastguard Worker //------------------------------------------------------------------------------
79*6777b538SAndroid Build Coastguard Worker // Memory histograms.
80*6777b538SAndroid Build Coastguard Worker //
81*6777b538SAndroid Build Coastguard Worker // For usage details, see the equivalents in histogram_macros.h.
82*6777b538SAndroid Build Coastguard Worker 
83*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_MEMORY_KB(name, sample) LOCAL_HISTOGRAM_CUSTOM_COUNTS( \
84*6777b538SAndroid Build Coastguard Worker     name, sample, 1000, 500000, 50)
85*6777b538SAndroid Build Coastguard Worker 
86*6777b538SAndroid Build Coastguard Worker //------------------------------------------------------------------------------
87*6777b538SAndroid Build Coastguard Worker // Deprecated histograms. Not recommended for current use.
88*6777b538SAndroid Build Coastguard Worker 
89*6777b538SAndroid Build Coastguard Worker // TODO(rkaplow): See if we can clean up this macro and usage.
90*6777b538SAndroid Build Coastguard Worker // Legacy non-explicit version. We suggest using LOCAL_HISTOGRAM_COUNTS_1000000
91*6777b538SAndroid Build Coastguard Worker // instead.
92*6777b538SAndroid Build Coastguard Worker #define LOCAL_HISTOGRAM_COUNTS(name, sample)                                   \
93*6777b538SAndroid Build Coastguard Worker     LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, 1, 1000000, 50)
94*6777b538SAndroid Build Coastguard Worker 
95*6777b538SAndroid Build Coastguard Worker #endif  // BASE_METRICS_HISTOGRAM_MACROS_LOCAL_H_
96