# Copyright 2018 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:

#####################################################################
# bytes_uploaded
#
# This metric will be used to generate a report that gives statistics about the
# daily total number of bytes uploaded from each device.
# Each time UploadEvents() is called by the ClearcutUploader, an event
# recording the HTTP request's body size will be logged with status |Attempted|.
# If the observation is sent successfully, another event with the HTTP request's
# body size will be logged with status |Succeeded|.
#####################################################################
- id: 12
  metric_name: "bytes_uploaded"
  metric_type: OCCURRENCE
  metric_semantics: [NETWORK_COMMUNICATION]
  metric_dimensions:
    - dimension: status
      event_codes:
        1: Attempted
        2: Succeeded
  reports:
    - report_name: "bytes_uploaded_per_device_histogram"
      id: 1
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      system_profile_selection: SELECT_LAST
      privacy_level: NO_ADDED_PRIVACY
      int_buckets:
        linear:
          floor: 0
          step_size: 100000  # 100KB
          num_buckets: 1000  # max: 100MB
        sparse_output: true
      local_aggregation_period: 1
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

####################################################################
# per_project_bytes_stored_migrated
#
# This metric will be used to measure per-device, daily, number of bytes added
# to the ObservationStore, broken down by project. Each time the
# ObservationStore is called with AddEncryptedObservation(), an event will be
# logged with status |Attempted|. If the observation is successfully stored,
# another event will be logged with status |Succeeded|. All invocations will use
# an event code with value <customer_name>/<project_name>.
#####################################################################
- id: 15
  metric_name: "per_project_bytes_stored_migrated"
  metric_type: INTEGER
  metric_semantics: [ MEMORY_USAGE ]
  metric_units: BYTES
  metric_dimensions:
    - dimension: projects
      event_codes: &project_list
        0: "other"
        1: "2147483647/205836624"
        2: "1/929352809"
        3: "1/657579885"
        4: "1/7"
        5: "1/2322225253"
        6: "1/4"
        7: "1/5"
        8: "1/3708719327"
        9: "1/4228153068"
        10: "1/2"
        11: "1/2820332838"
        12: "1/1334068210"
        13: "1/3676913920"
        14: "1/285903809"
        15: "1/3142410971"
        16: "1/3509424520"
        17: "1/2165403525"
        18: "1/1"
        19: "1/3"
        20: "1/2550112954"
        21: "1/4247972873"
        22: "1/6"
        23: "1/8"
        24: "1/9"
        25: "1/10"
        26: "1/11"
        27: "1/12"
        28: "1/13"
        29: "1/14"
        30: "1/15"
        31: "1/16"
        32: "100000/1"
        33: "100000/2"
        34: "100000/3"
        35: "200000/1"
        36: "200000/2"
        37: "200000/3"
        38: "200001/1"
        39: "299999/1"
        40: "200001/2"
        41: "200001/3"
    - dimension: status
      event_codes:
        1: Attempted
        2: Succeeded
  reports:
    - report_name: "unique_device_histograms"
      id: 1
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      int_buckets:
        linear:
          floor: 0
          step_size: 1000000 # 1MB
          num_buckets: 100  # max: 100MB
        sparse_output: true
      local_aggregation_procedure: SUM_PROCEDURE
      local_aggregation_period: WINDOW_1_DAY
      privacy_level: NO_ADDED_PRIVACY
      system_profile_selection: REPORT_ALL
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

#####################################################################
# inaccurate_clock_events_cached_migrated
#
# This metric will be used to measure per-device, daily number of
# UndatedEventManager::Save method calls made. Each time an event is saved,
# an event will be logged.
#####################################################################
- id: 106
  metric_name: inaccurate_clock_events_cached_migrated
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: per_device_numeric_stats
      id: 2
      report_type: UNIQUE_DEVICE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      local_aggregation_period: WINDOW_1_DAY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  deleted_report_ids: [1]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

#####################################################################
# inaccurate_clock_events_dropped_migrated
#
# This metric will be used to measure per-device, daily number of
# saved UndatedEventManager events that had to be dropped due to size
# constraints. Each time an event is dropped, an event will be logged.
#####################################################################
- id: 107
  metric_name: inaccurate_clock_events_dropped_migrated
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  reports:
    - report_name: per_device_numeric_stats
      id: 2
      report_type: UNIQUE_DEVICE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      local_aggregation_period: WINDOW_1_DAY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  deleted_report_ids: [1]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

#####################################################################
# per_project_bytes_uploaded_migrated
#
# This metric will be used to generate a report that gives statistics about the
# daily total number of bytes uploaded from each project on a device.
# Each time SendEnvelopeToBackend() is called by the ShippingManager, an event
# recording the size of the ObservationBatch proto will be logged with status
# |Attempted| for each project in the Envelope. The event code will contain the
# <customer_name>/<project_name> of the project.
# If the envelope was sent successfully, another event will be logged for each
# project in the Envelope recording the size of the ObservationBatch proto and
# status |Succeeded|. The event code will again contain the
# <customer_name>/<project_name> of the project.
#####################################################################
- id: 17
  metric_name: "per_project_bytes_uploaded_migrated"
  metric_type: INTEGER
  metric_semantics: [ NETWORK_COMMUNICATION ]
  metric_units: BYTES
  metric_dimensions:
    - dimension: projects
      event_codes: *project_list
    - dimension: status
      event_codes:
        1: Attempted
        2: Succeeded
  reports:
    - report_name: "unique_device_histogram_5MB_buckets"
      id: 1
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      int_buckets:
        linear:
          floor: 0
          step_size: 5000000 # 5MB
          num_buckets: 20  # max: 100MB
      local_aggregation_procedure: SUM_PROCEDURE
      local_aggregation_period: WINDOW_1_DAY
      privacy_level: NO_ADDED_PRIVACY
      system_profile_selection: REPORT_ALL
      system_profile_field: [ BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL ]
    - report_name: "unique_device_histogram_500KB_buckets"
      id: 2
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      int_buckets:
        linear:
          floor: 0
          step_size: 500000 # 500KB
          num_buckets: 20  # max: 10MB
      local_aggregation_procedure: SUM_PROCEDURE
      local_aggregation_period: WINDOW_1_DAY
      privacy_level: NO_ADDED_PRIVACY
      system_profile_selection: REPORT_ALL
      system_profile_field: [ BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL ]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

#####################################################################
# logger_calls_made_migrated
#
# This metric will be used to count how much each type of event is logged on a device per day. Each
# time a method from the logger interface is called, an event will be logged with the respective
# logger_method value and a count of 1.
#####################################################################
- id: 109
  metric_name: logger_calls_made_migrated
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  metric_dimensions:
    - dimension: logger_method
      event_codes:
        0: Unknown
        # Old logger methods for Cobalt 1.0.
        1: LogEvent
        2: LogEventCount
        3: LogElapsedTime
        4: LogFrameRate
        5: LogMemoryUsage
        6: LogIntHistogram
        199: LogCobaltEvents
        # New Logger methods for the new Cobalt 1.1.
        9: LogOccurrence
        10: LogInteger
        11: LogIntegerHistogram
        7: LogString
        8: LogCustomEvent
        12: LogSerializedCustomEvent
        198: LogMetricEvents
      max_event_code: 200
  reports:
    - report_name: histogram
      id: 1
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      system_profile_selection: SELECT_LAST
      privacy_level: NO_ADDED_PRIVACY
      int_buckets:
        linear:
          floor: 0
          step_size: 2000  # 2K
          num_buckets: 20  # max: 40K
      local_aggregation_period: WINDOW_1_DAY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
    - report_name: unique_device_count
      id: 2
      report_type: UNIQUE_DEVICE_COUNTS
      system_profile_selection: SELECT_LAST
      local_aggregation_period: WINDOW_1_DAY
      local_aggregation_procedure: AT_LEAST_ONCE
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [OS]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

#####################################################################
# set_software_distribution_info_called_migrated
#
# Whenever the SetSoftwareDistributionInfo() method from the SystemDataUpdater interface is
# invoked, we log "1" along with an indication of the current and new channels.
#####################################################################
- id: 110
  metric_name: set_software_distribution_info_called_migrated
  metric_type: OCCURRENCE
  metric_semantics: [USAGE_COUNTING]
  metric_dimensions:
    - dimension: new_channel
      event_codes:
        0: Unset
        1: Unknown
        2: Valid
    - dimension: previous_channel
      event_codes:
        0: Unset    # SetSoftwareDistributionInfo was not called before.
        1: Unknown  # SetSoftwareDistributionInfo called with null channel.
        2: Valid    # SetSoftwareDistributionInfo called with channel string.
  reports:
    - report_name: stats_per_device_channel
      id: 2
      report_type: UNIQUE_DEVICE_NUMERIC_STATS
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [PRODUCT_NAME, CHANNEL]
      local_aggregation_period: WINDOW_1_DAY
    - report_name: histogram
      id: 3
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      system_profile_selection: SELECT_LAST
      privacy_level: NO_ADDED_PRIVACY
      int_buckets:
        linear:
          floor: 0
          step_size: 5
          num_buckets: 25
      local_aggregation_period: WINDOW_1_DAY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]

  # Deleted report IDs that must not be reused.
  deleted_report_ids: [1]

  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

############################################################################
# store_usage
#
# Whenever Cobalt writes data to disk, we log the estimated number of bytes
# stored for that class.
############################################################################
- id: 13
  metric_name: store_usage
  metric_type: INTEGER
  metric_units: BYTES
  metric_semantics: [DATA_SIZE]
  metric_dimensions: &disk_usage_dimensions
    - dimension: storage_class
      event_codes:
        1: ObservationStore
        2: LocalAggregateStorage
        3: AggregateStore
        4: ObservationHistory
  reports:
    - id: 1
      report_name: per_device_max
      report_type: UNIQUE_DEVICE_NUMERIC_STATS
      local_aggregation_period: WINDOW_1_DAY
      local_aggregation_procedure: MAX_PROCEDURE
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
    - id: 2
      report_name: per_device_histogram
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      system_profile_selection: SELECT_LAST
      int_buckets:
        # Powers of 2 from 2^0 -> 2^21
        exponential:
          floor: 0
          num_buckets: 23
          initial_step: 2
          step_multiplier: 2
        sparse_output: true
      privacy_level: NO_ADDED_PRIVACY
      local_aggregation_period: WINDOW_1_DAY
      local_aggregation_procedure: MAX_PROCEDURE
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

############################################################################
# store_fullness
#
# Whenever Cobalt writes data to disk, we log the estimated fullness of that
# store in per mille. If the store does not have a max size set, this metric
# will not be logged.
############################################################################
- id: 14
  metric_name: store_fullness
  metric_type: INTEGER
  metric_units_other: "per mille"
  metric_semantics: [DATA_SIZE]
  metric_dimensions: *disk_usage_dimensions
  reports:
    - id: 1
      report_name: per_device_max
      report_type: UNIQUE_DEVICE_NUMERIC_STATS
      local_aggregation_period: WINDOW_1_DAY
      local_aggregation_procedure: MAX_PROCEDURE
      privacy_level: NO_ADDED_PRIVACY
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
    - id: 2
      report_name: per_device_histogram
      report_type: UNIQUE_DEVICE_HISTOGRAMS
      system_profile_selection: SELECT_LAST
      int_buckets:
        linear:
          floor: 0
          num_buckets: 1000
          step_size: 1
        sparse_output: true
      privacy_level: NO_ADDED_PRIVACY
      local_aggregation_period: WINDOW_1_DAY
      local_aggregation_procedure: MAX_PROCEDURE
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2024/06/01"

# Deleted metric IDs that must not be reused.
deleted_metric_ids: [1,2,3,4,5,6,7,8,9,10,11,16,18,111]
