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