| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/metrics/unsent_log_store_metrics_impl.h" |
| |
| #include "base/metrics/histogram_functions.h" |
| |
| namespace metrics { |
| |
| void UnsentLogStoreMetricsImpl::RecordLogReadStatus( |
| UnsentLogStoreMetrics::LogReadStatus status) { |
| base::UmaHistogramEnumeration("PrefService.PersistentLogRecallProtobufs", |
| status, |
| UnsentLogStoreMetrics::END_RECALL_STATUS); |
| } |
| |
| void UnsentLogStoreMetricsImpl::RecordCompressionRatio(size_t compressed_size, |
| size_t original_size) { |
| base::UmaHistogramPercentageObsoleteDoNotUse( |
| "UMA.ProtoCompressionRatio", |
| static_cast<int>(100 * compressed_size / original_size)); |
| } |
| |
| void UnsentLogStoreMetricsImpl::RecordDroppedLogSize(size_t size) { |
| base::UmaHistogramCounts1M("UMA.UnsentLogs.DroppedSize", |
| static_cast<int>(size)); |
| } |
| |
| void UnsentLogStoreMetricsImpl::RecordDroppedLogsNum(int dropped_logs_num) { |
| base::UmaHistogramCounts1M("UMA.UnsentLogs.Dropped", dropped_logs_num); |
| } |
| |
| void UnsentLogStoreMetricsImpl::RecordLastUnsentLogMetadataMetrics( |
| int unsent_samples_count, |
| int sent_samples_count, |
| int persisted_size_in_kb) { |
| if (!base::FeatureList::IsEnabled(kRecordLastUnsentLogMetadataMetrics)) |
| return; |
| |
| if (unsent_samples_count < 0 || sent_samples_count < 0 || |
| persisted_size_in_kb < 0) { |
| return; |
| } |
| |
| base::UmaHistogramCounts100000("UMA.UnsentLogs.UnsentCount", |
| unsent_samples_count); |
| base::UmaHistogramCounts1M("UMA.UnsentLogs.SentCount", sent_samples_count); |
| // Sets 10MB as maximum because the total size of logs in each LogStore is up |
| // to 6MB. |
| base::UmaHistogramCounts10000("UMA.UnsentLogs.PersistedSizeInKB", |
| persisted_size_in_kb); |
| |
| if (sent_samples_count == 0 && unsent_samples_count == 0) { |
| base::UmaHistogramPercentageObsoleteDoNotUse( |
| "UMA.UnsentLogs.UnsentPercentage", 0); |
| } else { |
| base::UmaHistogramPercentageObsoleteDoNotUse( |
| "UMA.UnsentLogs.UnsentPercentage", |
| 100 * unsent_samples_count / |
| (unsent_samples_count + sent_samples_count)); |
| } |
| } |
| |
| } // namespace metrics |