# Copyright 2020 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.

metric_definitions:
################################################################################
# GetNext Requests
#
# The number of times that a client of Archivist reads a new batch.
#
# Every minute we log the number of times that a client of Archivist
# has read a new batch, along with event codes specifying which pipeline
# was read and the data type of the batch read.
#
################################################################################
- id: 1
  metric_name: batch_iterator_get_next_requests
  metric_type: EVENT_COUNT
  replacement_metric_id: 101
  metric_dimensions: &bignr_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
    - dimension: data_type
      event_codes:
        0: Inspect
        1: Logs
        2: Lifecycle
  reports:
    - report_name: batch_iterator_get_next_requests
      id: 1
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 101
  metric_name: batch_iterator_get_next_requests_migrated
  metric_dimensions: *bignr_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: batch_iterator_get_next_requests
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# GetNext Errors
#
# The number of times that GetNext requests failed and were closed
#
# Every minute we log the number of times that Archivist has returned an error
# to a client for a GetNext call, along with event codes specifying which pipeline
# and data type experienced the error.
#
################################################################################
- id: 2
  metric_name: batch_iterator_get_next_errors
  metric_type: EVENT_COUNT
  replacement_metric_id: 102
  metric_dimensions: &bigne_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
    - dimension: data_type
      event_codes:
        0: Inspect
        1: Logs
        2: Lifecycle
  reports:
    - report_name: batch_iterator_get_next_errors
      id: 2
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 102
  metric_name: batch_iterator_get_next_errors_migrated
  metric_dimensions: *bigne_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: batch_iterator_get_next_errors
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# GetNext Result Count
#
# The number of results that were returned from GetNext calls
#
# Every minute we log the number of results Archivist returns in GetNext calls
# along with event codes specifying which pipeline and data type was returned.
#
################################################################################
- id: 3
  metric_name: batch_iterator_get_next_result_count
  metric_type: EVENT_COUNT
  replacement_metric_id: 103
  metric_dimensions: &bignrc_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
    - dimension: data_type
      event_codes:
        0: Inspect
        1: Logs
        2: Lifecycle
  reports:
    - report_name: batch_iterator_get_next_result_count
      id: 3
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 103
  metric_name: batch_iterator_get_next_result_count_migrated
  metric_dimensions: *bignrc_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: batch_iterator_get_next_result_count
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# GetNext Result Errors
#
# The number of results containing errors returned from GetNext
#
# Every minute we log the number of error results Archivist returns in GetNext calls
# along with event codes specifying which pipeline and data type was returned.
#
################################################################################
- id: 4
  metric_name: batch_iterator_get_next_result_errors
  metric_type: EVENT_COUNT
  replacement_metric_id: 104
  metric_dimensions: &bignre_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
    - dimension: data_type
      event_codes:
        0: Inspect
        1: Logs
        2: Lifecycle
  reports:
    - report_name: batch_iterator_get_next_result_errors
      id: 4
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 104
  metric_name: batch_iterator_get_next_result_errors_migrated
  metric_dimensions: *bignre_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: batch_iterator_get_next_result_errors
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# Component timeouts count
#
# The number of components that timed out while reading their data.
#
# Every minute we log the number of times the Archivist attempted to read data
# for a component, but that component timed out, along with event codes
# specifying which pipeline and data type Archivist was attempting to read.
#
################################################################################
- id: 5
  metric_name: component_timeouts_count
  metric_type: EVENT_COUNT
  replacement_metric_id: 105
  metric_dimensions: &ctc_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
    - dimension: data_type
      event_codes:
        0: Inspect
        1: Logs
        2: Lifecycle
  reports:
    - report_name: component_timeouts_count
      id: 5
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 105
  metric_name: component_timeouts_count_migrated
  metric_dimensions: *ctc_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: component_timeouts_count
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# Archive Accessor Connections
#
# The number of connections opened to the ArchiveAccessor
#
# Every minute we log the number of incoming connections to the Archivist,
# along with an event code specifying which pipeline was connected to.
#
################################################################################
- id: 6
  metric_name: archive_accessor_connections_opened
  metric_type: EVENT_COUNT
  replacement_metric_id: 106
  metric_dimensions: &aaco_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
  reports:
    - report_name: archive_accessor_connections_opened
      id: 6
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 106
  metric_name: archive_accessor_connections_opened_migrated
  metric_dimensions: *aaco_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: archive_accessor_connections_opened
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# Lifecycle Events Observed
#
# The number of a class of lifecycle events seen by Archivist.
#
# Every minute we log the number of newly observed lifecycle events
# since the last logging.
#
################################################################################
- id: 7
  metric_name: lifecycle_events_observed
  metric_type: EVENT_COUNT
  replacement_metric_id: 107
  metric_dimensions: &leo_dimensions
    - dimension: lifecycle_event
      event_codes:
        0: ComponentStart
        1: ComponentStop
        2: DiagnosticsReady
  reports:
    - report_name: lifecycle_events_observed
      id: 1
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 107
  metric_name: lifecycle_events_observed_migrated
  metric_dimensions: *leo_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: lifecycle_events_observed
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
################################################################################
# Schema Truncation Count
#
# The number of schemas the diagnostics platform truncated to avoid exceeding
# size budget.
#
# Every minute we log a uint counter that increments each time a schema is truncated.
#
################################################################################
- id: 8
  metric_name: schema_truncation_count
  metric_type: EVENT_COUNT
  replacement_metric_id: 108
  metric_dimensions: &stc_dimensions
    - dimension: pipeline
      event_codes:
        0: All
        1: Feedback
        2: LegacyMetrics
    - dimension: data_type
      event_codes:
        0: Inspect
        1: Logs
        2: Lifecycle
  reports:
    - report_name: schema_truncation_count
      id: 8
      report_type: NUMERIC_AGGREGATION
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"

- id: 108
  metric_name: schema_truncation_count_migrated
  metric_dimensions: *stc_dimensions
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: schema_truncation_count
      id: 1
      report_type: HOURLY_VALUE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/07/01"
