chromium/chrome/browser/chromeos/extensions/telemetry/api/diagnostics/diagnostics_api_metrics.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_DIAGNOSTICS_DIAGNOSTICS_API_METRICS_H_
#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_DIAGNOSTICS_DIAGNOSTICS_API_METRICS_H_

#include "chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom.h"

namespace chromeos {

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
//
// LINT.IfChange
enum class DiagnosticRoutineCategoryHistogramValue {
  kUnknown = 0,
  kMemory = 1,
  kVolumeButton = 2,
  kFan = 3,
  kLedLitUp = 4,
  kNetworkBandwidth = 5,
  kCameraFrameAnalysis = 6,
  kKeyboardBacklight = 7,
  kMaxValue = kKeyboardBacklight,
};
// LINT.ThenChange(/tools/metrics/histograms/metadata/chromeos/enums.xml)

// Logs routine creation for each routine category `tag`.
void RecordRoutineCreation(
    crosapi::mojom::TelemetryDiagnosticRoutineArgument::Tag tag);

// Logs routine supported status query for each routine category `tag`.
void RecordRoutineSupportedStatusQuery(
    crosapi::mojom::TelemetryDiagnosticRoutineArgument::Tag tag);

}  // namespace chromeos

#endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_DIAGNOSTICS_DIAGNOSTICS_API_METRICS_H_