• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/metrics/structured/histogram_util.h"
6 
7 #include "base/metrics/histogram_functions.h"
8 #include "base/metrics/histogram_macros.h"
9 #include "base/strings/strcat.h"
10 
11 namespace metrics::structured {
12 
LogInternalError(StructuredMetricsError error)13 void LogInternalError(StructuredMetricsError error) {
14   UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.InternalError2", error);
15 }
16 
LogEventRecordingState(EventRecordingState state)17 void LogEventRecordingState(EventRecordingState state) {
18   UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.EventRecordingState2",
19                             state);
20 }
21 
LogNumEventsInUpload(const int num_events)22 void LogNumEventsInUpload(const int num_events) {
23   UMA_HISTOGRAM_COUNTS_1000("UMA.StructuredMetrics.NumEventsInUpload",
24                             num_events);
25 }
26 
LogKeyValidation(KeyValidationState state)27 void LogKeyValidation(KeyValidationState state) {
28   UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.KeyValidationState", state);
29 }
30 
LogNumEventsRecordedBeforeInit(int num_events)31 void LogNumEventsRecordedBeforeInit(int num_events) {
32   UMA_HISTOGRAM_COUNTS_100("UMA.StructuredMetrics.EventsRecordedBeforeInit",
33                            num_events);
34 }
35 
LogNumFilesPerExternalMetricsScan(int num_files)36 void LogNumFilesPerExternalMetricsScan(int num_files) {
37   base::UmaHistogramCounts1000(
38       "UMA.StructuredMetrics.NumFilesPerExternalMetricsScan", num_files);
39 }
40 
LogEventFileSizeKB(int64_t file_size_kb)41 void LogEventFileSizeKB(int64_t file_size_kb) {
42   base::UmaHistogramMemoryKB("UMA.StructuredMetrics.EventFileSize",
43                              file_size_kb);
44 }
LogEventSerializedSizeBytes(int64_t event_size_bytes)45 void LogEventSerializedSizeBytes(int64_t event_size_bytes) {
46   base::UmaHistogramCounts1000("UMA.StructuredMetrics.EventSerializedSize",
47                                event_size_bytes);
48 }
49 
LogUploadSizeBytes(int64_t upload_size_bytes)50 void LogUploadSizeBytes(int64_t upload_size_bytes) {
51   base::UmaHistogramCounts100000("StructuredMetrics.UploadSize",
52                                  upload_size_bytes);
53 }
54 
LogExternalMetricsScanInUpload(int num_scans)55 void LogExternalMetricsScanInUpload(int num_scans) {
56   base::UmaHistogramExactLinear(
57       "UMA.StructuredMetrics.ExternalMetricScansPerUpload", num_scans, 10);
58 }
59 
LogDroppedExternalMetrics(int num_dropped)60 void LogDroppedExternalMetrics(int num_dropped) {
61   base::UmaHistogramCounts1000("StructuredMetrics.ExternalMetricsDropped",
62                                num_dropped);
63 }
64 
LogDroppedProjectExternalMetrics(std::string_view project_name,int num_dropped)65 void LogDroppedProjectExternalMetrics(std::string_view project_name,
66                                       int num_dropped) {
67   const std::string histogram_name =
68       base::StrCat({"StructuredMetrics.ExternalMetricsDropped.", project_name});
69   base::UmaHistogramCounts100(histogram_name, num_dropped);
70 }
71 
LogProducedProjectExternalMetrics(std::string_view project_name,int num_produced)72 void LogProducedProjectExternalMetrics(std::string_view project_name,
73                                        int num_produced) {
74   const std::string histogram_name = base::StrCat(
75       {"StructuredMetrics.ExternalMetricsProduced.", project_name});
76   base::UmaHistogramCounts100(histogram_name, num_produced);
77 }
78 
79 }  // namespace metrics::structured
80