// 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_PERSISTED_LOGS_METRICS_H_ #define COMPONENTS_METRICS_PERSISTED_LOGS_METRICS_H_ #include "base/macros.h" #include "components/metrics/persisted_logs.h" namespace metrics { // Interface for recording metrics from PersistedLogs. class PersistedLogsMetrics { 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. }; PersistedLogsMetrics() {} virtual ~PersistedLogsMetrics() {} 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) {} private: DISALLOW_COPY_AND_ASSIGN(PersistedLogsMetrics); }; } // namespace metrics #endif // COMPONENTS_METRICS_PERSISTED_LOGS_METRICS_H_