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 #include "components/metrics/structured/histogram_util.h"
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_functions.h"
8*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_macros.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/strings/strcat.h"
10*6777b538SAndroid Build Coastguard Worker
11*6777b538SAndroid Build Coastguard Worker namespace metrics::structured {
12*6777b538SAndroid Build Coastguard Worker
LogEventRecordingState(EventRecordingState state)13*6777b538SAndroid Build Coastguard Worker void LogEventRecordingState(EventRecordingState state) {
14*6777b538SAndroid Build Coastguard Worker UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.EventRecordingState2",
15*6777b538SAndroid Build Coastguard Worker state);
16*6777b538SAndroid Build Coastguard Worker }
17*6777b538SAndroid Build Coastguard Worker
LogNumEventsInUpload(const int num_events)18*6777b538SAndroid Build Coastguard Worker void LogNumEventsInUpload(const int num_events) {
19*6777b538SAndroid Build Coastguard Worker UMA_HISTOGRAM_COUNTS_1000("UMA.StructuredMetrics.NumEventsInUpload",
20*6777b538SAndroid Build Coastguard Worker num_events);
21*6777b538SAndroid Build Coastguard Worker }
22*6777b538SAndroid Build Coastguard Worker
LogNumEventsRecordedBeforeInit(int num_events)23*6777b538SAndroid Build Coastguard Worker void LogNumEventsRecordedBeforeInit(int num_events) {
24*6777b538SAndroid Build Coastguard Worker UMA_HISTOGRAM_COUNTS_100("UMA.StructuredMetrics.EventsRecordedBeforeInit",
25*6777b538SAndroid Build Coastguard Worker num_events);
26*6777b538SAndroid Build Coastguard Worker }
27*6777b538SAndroid Build Coastguard Worker
LogNumFilesPerExternalMetricsScan(int num_files)28*6777b538SAndroid Build Coastguard Worker void LogNumFilesPerExternalMetricsScan(int num_files) {
29*6777b538SAndroid Build Coastguard Worker base::UmaHistogramCounts1000(
30*6777b538SAndroid Build Coastguard Worker "UMA.StructuredMetrics.NumFilesPerExternalMetricsScan", num_files);
31*6777b538SAndroid Build Coastguard Worker }
32*6777b538SAndroid Build Coastguard Worker
LogEventFileSizeKB(int64_t file_size_kb)33*6777b538SAndroid Build Coastguard Worker void LogEventFileSizeKB(int64_t file_size_kb) {
34*6777b538SAndroid Build Coastguard Worker base::UmaHistogramMemoryKB("UMA.StructuredMetrics.EventFileSize",
35*6777b538SAndroid Build Coastguard Worker file_size_kb);
36*6777b538SAndroid Build Coastguard Worker }
LogEventSerializedSizeBytes(int64_t event_size_bytes)37*6777b538SAndroid Build Coastguard Worker void LogEventSerializedSizeBytes(int64_t event_size_bytes) {
38*6777b538SAndroid Build Coastguard Worker base::UmaHistogramCounts1000("UMA.StructuredMetrics.EventSerializedSize",
39*6777b538SAndroid Build Coastguard Worker event_size_bytes);
40*6777b538SAndroid Build Coastguard Worker }
41*6777b538SAndroid Build Coastguard Worker
LogUploadSizeBytes(int64_t upload_size_bytes)42*6777b538SAndroid Build Coastguard Worker void LogUploadSizeBytes(int64_t upload_size_bytes) {
43*6777b538SAndroid Build Coastguard Worker base::UmaHistogramCounts100000("StructuredMetrics.UploadSize",
44*6777b538SAndroid Build Coastguard Worker upload_size_bytes);
45*6777b538SAndroid Build Coastguard Worker }
46*6777b538SAndroid Build Coastguard Worker
LogExternalMetricsScanInUpload(int num_scans)47*6777b538SAndroid Build Coastguard Worker void LogExternalMetricsScanInUpload(int num_scans) {
48*6777b538SAndroid Build Coastguard Worker base::UmaHistogramExactLinear(
49*6777b538SAndroid Build Coastguard Worker "UMA.StructuredMetrics.ExternalMetricScansPerUpload", num_scans, 10);
50*6777b538SAndroid Build Coastguard Worker }
51*6777b538SAndroid Build Coastguard Worker
LogDroppedExternalMetrics(int num_dropped)52*6777b538SAndroid Build Coastguard Worker void LogDroppedExternalMetrics(int num_dropped) {
53*6777b538SAndroid Build Coastguard Worker base::UmaHistogramCounts1000("StructuredMetrics.ExternalMetricsDropped",
54*6777b538SAndroid Build Coastguard Worker num_dropped);
55*6777b538SAndroid Build Coastguard Worker }
56*6777b538SAndroid Build Coastguard Worker
LogDroppedProjectExternalMetrics(std::string_view project_name,int num_dropped)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 const std::string histogram_name = base::StrCat(
60*6777b538SAndroid Build Coastguard Worker {"StructuredMetrics.ExternalMetricsDropped2.", project_name});
61*6777b538SAndroid Build Coastguard Worker base::UmaHistogramCustomCounts(histogram_name, num_dropped, 1, 500, 50);
62*6777b538SAndroid Build Coastguard Worker }
63*6777b538SAndroid Build Coastguard Worker
LogProducedProjectExternalMetrics(std::string_view project_name,int num_produced)64*6777b538SAndroid Build Coastguard Worker void LogProducedProjectExternalMetrics(std::string_view project_name,
65*6777b538SAndroid Build Coastguard Worker int num_produced) {
66*6777b538SAndroid Build Coastguard Worker const std::string histogram_name = base::StrCat(
67*6777b538SAndroid Build Coastguard Worker {"StructuredMetrics.ExternalMetricsProduced2.", project_name});
68*6777b538SAndroid Build Coastguard Worker base::UmaHistogramCustomCounts(histogram_name, num_produced, 1, 500, 50);
69*6777b538SAndroid Build Coastguard Worker }
70*6777b538SAndroid Build Coastguard Worker
71*6777b538SAndroid Build Coastguard Worker } // namespace metrics::structured
72