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

################################################################################
# Cobalt Project: setui
################################################################################

metric_definitions:

#####################################################################
# Next Metric ID: 2
#####################################################################

#####################################################################
# write_failures
#
# Records the number of times a particular setting fails to be
# written to disk on a given device in a particular day. A new event
# will be logged every hour via a Sampler config if there is any new
# failure in that hour.
#####################################################################
- id: 1
  metric_name: write_failures
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  metric_dimensions:
    - dimension: setting
      event_codes:
        0: Unknown
        1: Accessibility
        2: Audio
        3: AudioPolicy
        4: Display
        5: DoNotDisturb
        6: FactoryReset
        7: Input
        8: Intl
        9: Light
        10: NightMode
        11: Privacy
        12: Setup
  reports:
      #####################################################################
      # per_device_counts
      #
      # Gives a histogram of the number of failures per device, up to 10
      # failures and then one more 10+ failures bucket. This can be used
      # to get the number of devices with at least one failure in addition
      # to the distribution of failures per device.
      #####################################################################
    - report_name: per_device_counts
      id: 1
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      local_aggregation_period: WINDOW_1_DAY
      int_buckets:
        linear:
          floor: 1
          num_buckets: 10 # past 10 failures a day, it will just be the overflow bucket.
          step_size: 1
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2022/10/31"
