blob: f533bc4b1c6dc45554b4f22b92d9e509620628da [file] [log] [blame]
// 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::UmaHistogramPercentage(
"UMA.ProtoCompressionRatio",
static_cast<int>(100 * compressed_size / original_size));
}
void UnsentLogStoreMetricsImpl::RecordDroppedLogSize(size_t 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::UmaHistogramPercentage("UMA.UnsentLogs.UnsentPercentage", 0);
} else {
base::UmaHistogramPercentage(
"UMA.UnsentLogs.UnsentPercentage",
100 * unsent_samples_count /
(unsent_samples_count + sent_samples_count));
}
}
} // namespace metrics