blob: ae559d555a2e89d20e4fc409156340f0723f788b [file] [log] [blame]
// Copyright 2019 The Fuchsia 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 SRC_DEVELOPER_FEEDBACK_UTILS_COBALT_METRICS_H_
#define SRC_DEVELOPER_FEEDBACK_UTILS_COBALT_METRICS_H_
#include "src/developer/feedback/utils/metrics_registry.cb.h"
namespace feedback {
constexpr auto kProjectId = cobalt_registry::kProjectId;
enum class RebootReason {
kKernelPanic = cobalt_registry::RebootMetricDimensionReason::KernelPanic,
kOOM = cobalt_registry::RebootMetricDimensionReason::Oom,
kCold = cobalt_registry::RebootMetricDimensionReason::Cold,
kClean = cobalt_registry::RebootMetricDimensionReason::Clean,
kUnknown = cobalt_registry::RebootMetricDimensionReason::Unknown,
kHardwareWatchdog = cobalt_registry::RebootMetricDimensionReason::HardwareWatchdog,
kSoftwareWatchdog = cobalt_registry::RebootMetricDimensionReason::SoftwareWatchdog,
kBrownout = cobalt_registry::RebootMetricDimensionReason::Brownout,
};
enum class CrashState {
kUnknown = cobalt_registry::CrashMetricDimensionState::Unknown,
kFiled = cobalt_registry::CrashMetricDimensionState::Filed,
kUploaded = cobalt_registry::CrashMetricDimensionState::Uploaded,
kArchived = cobalt_registry::CrashMetricDimensionState::Archived,
kGarbageCollected = cobalt_registry::CrashMetricDimensionState::GarbageCollected,
kDropped = cobalt_registry::CrashMetricDimensionState::Dropped,
};
enum class UploadAttemptState {
kUnknown = cobalt_registry::CrashUploadAttemptsMetricDimensionState::Unknown,
kUploadAttempt = cobalt_registry::CrashUploadAttemptsMetricDimensionState::UploadAttempt,
kUploaded = cobalt_registry::CrashUploadAttemptsMetricDimensionState::Uploaded,
kArchived = cobalt_registry::CrashUploadAttemptsMetricDimensionState::Archived,
kGarbageCollected = cobalt_registry::CrashUploadAttemptsMetricDimensionState::GarbageCollected,
};
enum class CrashpadFunctionError {
kUnknown = cobalt_registry::CrashpadErrorsMetricDimensionFunction::Unknown,
kInitializeDatabase = cobalt_registry::CrashpadErrorsMetricDimensionFunction::InitializeDatabase,
kPrepareNewCrashReport =
cobalt_registry::CrashpadErrorsMetricDimensionFunction::PrepareNewCrashReport,
kFinishedWritingCrashReport =
cobalt_registry::CrashpadErrorsMetricDimensionFunction::FinishedWritingCrashReport,
kGetReportForUploading =
cobalt_registry::CrashpadErrorsMetricDimensionFunction::GetReportForUploading,
kRecordUploadComplete =
cobalt_registry::CrashpadErrorsMetricDimensionFunction::RecordUploadComplete,
kSkipReportUpload = cobalt_registry::CrashpadErrorsMetricDimensionFunction::SkipReportUpload,
kLookUpCrashReport = cobalt_registry::CrashpadErrorsMetricDimensionFunction::LookUpCrashReport,
};
enum class TimedOutData {
kUnknown = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::Unknown,
kSystemLog = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::SystemLog,
kKernelLog = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::KernelLog,
kScreenshot = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::Screenshot,
kInspect = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::Inspect,
kChannel = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::Channel,
kProductInfo = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::ProductInfo,
kBoardInfo = cobalt_registry::FeedbackDataCollectionTimeoutMetricDimensionData::BoardInfo,
};
inline constexpr uint32_t MetricIDForEventCode(const TimedOutData data) {
return cobalt_registry::kFeedbackDataCollectionTimeoutMetricId;
}
inline constexpr uint32_t MetricIDForEventCode(const RebootReason reason) {
return cobalt_registry::kRebootMetricId;
}
inline constexpr uint32_t MetricIDForEventCode(const CrashState state) {
return cobalt_registry::kCrashMetricId;
}
inline constexpr uint32_t MetricIDForEventCode(const UploadAttemptState state) {
return cobalt_registry::kCrashUploadAttemptsMetricId;
}
inline constexpr uint32_t MetricIDForEventCode(const CrashpadFunctionError function) {
return cobalt_registry::kCrashpadErrorsMetricId;
}
} // namespace feedback
#endif // SRC_DEVELOPER_FEEDBACK_UTILS_COBALT_METRICS_H_