xref: /aosp_15_r20/external/cronet/components/metrics/structured/histogram_util.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2020 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 COMPONENTS_METRICS_STRUCTURED_HISTOGRAM_UTIL_H_
6*6777b538SAndroid Build Coastguard Worker #define COMPONENTS_METRICS_STRUCTURED_HISTOGRAM_UTIL_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include <string_view>
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker #include "components/prefs/persistent_pref_store.h"
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker namespace metrics::structured {
13*6777b538SAndroid Build Coastguard Worker 
14*6777b538SAndroid Build Coastguard Worker // Whether a single event was recorded correctly, or otherwise what error state
15*6777b538SAndroid Build Coastguard Worker // occurred. These values are persisted to logs. Entries should not be
16*6777b538SAndroid Build Coastguard Worker // renumbered and numeric values should never be reused.
17*6777b538SAndroid Build Coastguard Worker enum class EventRecordingState {
18*6777b538SAndroid Build Coastguard Worker   kRecorded = 0,
19*6777b538SAndroid Build Coastguard Worker   kProviderUninitialized = 1,
20*6777b538SAndroid Build Coastguard Worker   kRecordingDisabled = 2,
21*6777b538SAndroid Build Coastguard Worker   kProviderMissing = 3,
22*6777b538SAndroid Build Coastguard Worker   kProjectDisallowed = 4,
23*6777b538SAndroid Build Coastguard Worker   kLogSizeExceeded = 5,
24*6777b538SAndroid Build Coastguard Worker   kMaxValue = kLogSizeExceeded,
25*6777b538SAndroid Build Coastguard Worker };
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker void LogEventRecordingState(EventRecordingState state);
28*6777b538SAndroid Build Coastguard Worker 
29*6777b538SAndroid Build Coastguard Worker // Log how many structured metrics events were contained in a call to
30*6777b538SAndroid Build Coastguard Worker // ProvideCurrentSessionData.
31*6777b538SAndroid Build Coastguard Worker void LogNumEventsInUpload(int num_events);
32*6777b538SAndroid Build Coastguard Worker 
33*6777b538SAndroid Build Coastguard Worker // Logs the number of events that were recorded before device and user
34*6777b538SAndroid Build Coastguard Worker // cryptographic keys have been loaded to hash events. These events will be kept
35*6777b538SAndroid Build Coastguard Worker // in memory.
36*6777b538SAndroid Build Coastguard Worker void LogNumEventsRecordedBeforeInit(int num_events);
37*6777b538SAndroid Build Coastguard Worker 
38*6777b538SAndroid Build Coastguard Worker // Logs the number of files processed per external metrics scan.
39*6777b538SAndroid Build Coastguard Worker void LogNumFilesPerExternalMetricsScan(int num_files);
40*6777b538SAndroid Build Coastguard Worker 
41*6777b538SAndroid Build Coastguard Worker // Logs the file size of an event.
42*6777b538SAndroid Build Coastguard Worker void LogEventFileSizeKB(int64_t file_size_kb);
43*6777b538SAndroid Build Coastguard Worker 
44*6777b538SAndroid Build Coastguard Worker // Logs the serialized size of an event when it is recorded in bytes.
45*6777b538SAndroid Build Coastguard Worker void LogEventSerializedSizeBytes(int64_t event_size_bytes);
46*6777b538SAndroid Build Coastguard Worker 
47*6777b538SAndroid Build Coastguard Worker // Logs the StructuredMetrics uploaded size to UMA in bytes.
48*6777b538SAndroid Build Coastguard Worker void LogUploadSizeBytes(int64_t upload_size_bytes);
49*6777b538SAndroid Build Coastguard Worker 
50*6777b538SAndroid Build Coastguard Worker // Logs the number of external metrics were scanned for an upload.
51*6777b538SAndroid Build Coastguard Worker void LogExternalMetricsScanInUpload(int num_scans);
52*6777b538SAndroid Build Coastguard Worker 
53*6777b538SAndroid Build Coastguard Worker // Logs the number of external metrics that were dropped.
54*6777b538SAndroid Build Coastguard Worker void LogDroppedExternalMetrics(int num_dropped);
55*6777b538SAndroid Build Coastguard Worker 
56*6777b538SAndroid Build Coastguard Worker // Logs the number of external metrics that were dropped per-project.
57*6777b538SAndroid Build Coastguard Worker void LogDroppedProjectExternalMetrics(std::string_view project_name,
58*6777b538SAndroid Build Coastguard Worker                                       int num_dropped);
59*6777b538SAndroid Build Coastguard Worker 
60*6777b538SAndroid Build Coastguard Worker // Logs the number of external metrics produced per-project.
61*6777b538SAndroid Build Coastguard Worker void LogProducedProjectExternalMetrics(std::string_view project_name,
62*6777b538SAndroid Build Coastguard Worker                                        int num_produced);
63*6777b538SAndroid Build Coastguard Worker 
64*6777b538SAndroid Build Coastguard Worker }  // namespace metrics::structured
65*6777b538SAndroid Build Coastguard Worker 
66*6777b538SAndroid Build Coastguard Worker #endif  // COMPONENTS_METRICS_STRUCTURED_HISTOGRAM_UTIL_H_
67