12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // 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.
- #ifndef COMPONENTS_METRICS_UNSENT_LOG_STORE_METRICS_H_
- #define COMPONENTS_METRICS_UNSENT_LOG_STORE_METRICS_H_
- #include "base/feature_list.h"
- #include "components/metrics/unsent_log_store.h"
- namespace metrics {
- // Interface for recording metrics from UnsentLogStore.
- class UnsentLogStoreMetrics {
- public:
- // Used to produce a histogram that keeps track of the status of recalling
- // persisted per logs.
- enum LogReadStatus {
- RECALL_SUCCESS, // We were able to correctly recall a persisted log.
- LIST_EMPTY, // Attempting to recall from an empty list.
- LIST_SIZE_MISSING, // Failed to recover list size using GetAsInteger().
- LIST_SIZE_TOO_SMALL, // Too few elements in the list (less than 3).
- LIST_SIZE_CORRUPTION, // List size is not as expected.
- LOG_STRING_CORRUPTION, // Failed to recover log string using GetAsString().
- CHECKSUM_CORRUPTION, // Failed to verify checksum.
- CHECKSUM_STRING_CORRUPTION, // Failed to recover checksum string using
- // GetAsString().
- DECODE_FAIL, // Failed to decode log.
- DEPRECATED_XML_PROTO_MISMATCH, // The XML and protobuf logs have
- // inconsistent data.
- END_RECALL_STATUS // Number of bins to use to create the histogram.
- };
- UnsentLogStoreMetrics();
- UnsentLogStoreMetrics(const UnsentLogStoreMetrics&) = delete;
- UnsentLogStoreMetrics& operator=(const UnsentLogStoreMetrics&) = delete;
- virtual ~UnsentLogStoreMetrics();
- virtual void RecordLogReadStatus(LogReadStatus status);
- virtual void RecordCompressionRatio(size_t compressed_size,
- size_t original_size);
- virtual void RecordDroppedLogSize(size_t size);
- virtual void RecordDroppedLogsNum(int dropped_logs_num);
- virtual void RecordLastUnsentLogMetadataMetrics(int unsent_samples_count,
- int sent_samples_count,
- int persisted_size_in_kb);
- // The feature to record the unsent log info metrics, refer to
- // UnsentLogStoreMetricsImpl::RecordLastUnsentLogMetadataMetrics.
- static const base::Feature kRecordLastUnsentLogMetadataMetrics;
- };
- } // namespace metrics
- #endif // COMPONENTS_METRICS_UNSENT_LOG_STORE_METRICS_H_
|