| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/metrics/structured/histogram_util.h" |
| |
| #include "base/metrics/histogram_functions.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "base/strings/strcat.h" |
| |
| namespace metrics::structured { |
| |
| void LogEventRecordingState(EventRecordingState state) { |
| base::UmaHistogramEnumeration("UMA.StructuredMetrics.EventRecordingState2", |
| state); |
| } |
| |
| void LogNumEventsInUpload(const int num_events) { |
| UMA_HISTOGRAM_COUNTS_1000("UMA.StructuredMetrics.NumEventsInUpload", |
| num_events); |
| } |
| |
| void LogNumEventsRecordedBeforeInit(int num_events) { |
| UMA_HISTOGRAM_COUNTS_100("UMA.StructuredMetrics.EventsRecordedBeforeInit", |
| num_events); |
| } |
| |
| void LogNumFilesPerExternalMetricsScan(int num_files) { |
| base::UmaHistogramCounts1000( |
| "UMA.StructuredMetrics.NumFilesPerExternalMetricsScan", num_files); |
| } |
| |
| void LogEventFileSizeKB(int64_t file_size_kb) { |
| base::UmaHistogramMemoryKB("UMA.StructuredMetrics.EventFileSize", |
| file_size_kb); |
| } |
| void LogEventSerializedSizeBytes(int64_t event_size_bytes) { |
| base::UmaHistogramCounts1000("UMA.StructuredMetrics.EventSerializedSize", |
| event_size_bytes); |
| } |
| |
| void LogUploadSizeBytes(int64_t upload_size_bytes) { |
| base::UmaHistogramCounts100000("StructuredMetrics.UploadSize", |
| upload_size_bytes); |
| } |
| |
| void LogExternalMetricsScanInUpload(int num_scans) { |
| base::UmaHistogramExactLinear( |
| "UMA.StructuredMetrics.ExternalMetricScansPerUpload", num_scans, 10); |
| } |
| |
| void LogDroppedExternalMetrics(int num_dropped) { |
| base::UmaHistogramCounts1000("StructuredMetrics.ExternalMetricsDropped", |
| num_dropped); |
| } |
| |
| void LogDroppedProjectExternalMetrics(std::string_view project_name, |
| int num_dropped) { |
| const std::string histogram_name = |
| base::StrCat({kExternalMetricsDroppedHistogramPrefix, project_name}); |
| base::UmaHistogramCounts100(histogram_name, num_dropped); |
| } |
| |
| void LogProducedProjectExternalMetrics(std::string_view project_name, |
| int num_produced) { |
| const std::string histogram_name = |
| base::StrCat({kExternalMetricsProducedHistogramPrefix, project_name}); |
| base::UmaHistogramCounts100(histogram_name, num_produced); |
| } |
| |
| void LogStorageManagerFlushStatus(StorageManagerFlushStatus status) { |
| base::UmaHistogramEnumeration("StructuredMetrics.StorageManager.Flush", |
| status); |
| } |
| |
| void LogFlushedMapError(FlushedMapError error) { |
| base::UmaHistogramEnumeration("StructuredMetrics.FlushedMap.Error", error); |
| } |
| |
| void LogFlushedMapLoadedFlushedKeys(int count) { |
| base::UmaHistogramCounts100("StructuredMetrics.FlushedMap.LoadedFlushedKey", |
| count); |
| } |
| |
| void LogDeletedBuffersWhenOverQuota(int count) { |
| base::UmaHistogramCounts100( |
| "StructuredMetrics.StorageManager.DeletedBuffersWhenOverQuota", count); |
| } |
| |
| void LogDiskQuotaExceededDelta(int delta_kb) { |
| base::UmaHistogramCounts100( |
| "StructuredMetrics.StorageManager.DiskQuotaExceededDelta", delta_kb); |
| } |
| |
| void LogFlushedBuffersAtUpload(int count) { |
| base::UmaHistogramCounts100( |
| "StructuredMetrics.StorageManager.FlushedBuffersAtUpload", count); |
| } |
| |
| void LogInMemoryEventsAtUpload(int count) { |
| base::UmaHistogramCounts100( |
| "StructuredMetrics.StorageManager.InMemoryEventsAtUpload", count); |
| } |
| |
| void LogMaxDiskSizeKb(int size_kb) { |
| base::UmaHistogramCounts100("StructuredMetrics.StorageManager.MaxDiskSizeKB", |
| size_kb); |
| } |
| |
| void LogMaxMemorySizeKb(int size_kb) { |
| base::UmaHistogramCounts100( |
| "StructuredMetrics.StorageManager.MaxMemorySizeKB", size_kb); |
| } |
| |
| void LogStorageManagerRecordStatus(RecordStatus status) { |
| base::UmaHistogramEnumeration("StructuredMetrics.StorageManager.RecordStatus", |
| status); |
| } |
| |
| } // namespace metrics::structured |