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

metric_definitions:

#####################################################################
# fuchsia_up_ping
#
# Periodically, we log one or more of the following events:
# - Up, if the device is up at all
# - UpOneMinute, if the device has been up for at least one minute
# - UpTenMInutes, if the device has been up for at lest ten minutes
# - etc.
#
# Note that each event is logged repeatedly by our periodic process.
# It is not the case, for example, that UpOneMinute is only logged once
# when the device has been up for one minute. The intention is that this
# metric be used with local daily aggregation.
#####################################################################
- id: 1
  metric_name: fuchsia_up_ping
  metric_type: EVENT_OCCURRED
  metric_dimensions:
    - dimension: uptime
      event_codes:
        0: Up
        1: UpOneMinute
        2: UpTenMinutes
        3: UpOneHour
        4: UpTwelveHours
        5: UpOneDay
        6: UpThreeDays
        7: UpSixDays
      max_event_code: 7
  reports:
      #####################################################################
      # fuchsia_unique_device_counts
      #
      # Every day we count the number of unique devices that are
      # - up at all during the day
      # - up during the day and have been up for at least one minute
      # - up during the day and have been up for at least 10 minutes
      # - etc.
      #####################################################################
    - report_name: fuchsia_unique_device_up_counts
      id: 2228126248 # legacy long report_id
      report_type: UNIQUE_N_DAY_ACTIVES
      local_privacy_noise_level: NONE
      window_size:
        - 1
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
      #####################################################################
      # fuchsia_up_ping
      #
      # We count the number of pings without the on-device aggregation.
      # Note that the actual values of the counts are not particularly
      # meaningful. We expect to use this report primarily as a sanity check of
      # the reporting system.
      #####################################################################
    - report_name: fuchsia_up_ping
      id: 1074068063 # legacy long report_id
      report_type: SIMPLE_OCCURRENCE_COUNT
      local_privacy_noise_level: NONE
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/01/17"


#####################################################################
# fuchsia_lifetime_events
#
# We log each time one of these events occur on a Fuchsia device.
#####################################################################
- id: 2
  metric_name: fuchsia_lifetime_events
  metric_type: EVENT_OCCURRED
  metric_dimensions:
    - dimension: events
      event_codes:
        0: Boot
      max_event_code: 7
  reports:
      #####################################################################
      # fuchsia_lifetime_event_counts
      #
      # Every day we count the number of times the following events occur across
      # the fleet:
      # - boots
      #####################################################################
    - report_name: fuchsia_lifetime_event_counts
      id: 14219118 # legacy long report_id
      report_type: SIMPLE_OCCURRENCE_COUNT
      local_privacy_noise_level: NONE
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]

      #####################################################################
      # fuchsia_unique_device_lifetime_event_counts
      #
      # Every day we count the number of unique devices for which each
      # of the following events occurred during the course of the day:
      # - boot
      #####################################################################
    - report_name: fuchsia_unique_device_lifetime_event_counts
      id: 560138269 # legacy long report_id
      report_type: UNIQUE_N_DAY_ACTIVES
      local_privacy_noise_level: NONE
      window_size:
        - 1
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/01/17"

#####################################################################
# fuchsia memory_usage
#
# For every minute, we log the memory usage in bytes with breakdowns:
#####################################################################
- id: 3
  metric_name: fuchsia_memory_experimental
  metric_type: MEMORY_USAGE
  metric_dimensions:
    - dimension: memory_breakdown
      event_codes:
        0: TotalBytes
        1: UsedBytes
        2: FreeBytes
        3: VmoBytes
        4: KernelFreeHeapBytes
        5: MmuBytes
        6: IpcBytes
        7: KernelTotalHeapBytes
        8: WiredBytes
        9: OtherBytes
  reports:
      #####################################################################
      # fuchsia_memory_usage
      #
      #####################################################################
    - report_name: fuchsia_memory_usage_numeric_aggr_experimental
      id: 490323763 # legacy long report_id
      report_type: NUMERIC_AGGREGATION
      percentiles: [5, 10, 90, 95, 99]
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
    - report_name: fuchsia_memory_usage_histogram_experimental_2
      id: 2249350189 # legacy long report_id
      report_type: INT_RANGE_HISTOGRAM
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
      int_buckets:
        linear:
          floor: 0
          num_buckets: 154
          step_size: 10485760 # 10 MB
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/10/25"

#####################################################################
# fuchsia memory_usage with up time breakdown
#
# For every minute, we log the memory usage in bytes with breakdowns:
#####################################################################
- id: 4
  metric_name: fuchsia_memory_experimental_2
  metric_type: MEMORY_USAGE
  metric_dimensions:
    - dimension: memory_breakdown
      event_codes:
        0: TotalBytes
        1: UsedBytes
        2: FreeBytes
        3: VmoBytes
        4: KernelFreeHeapBytes
        5: MmuBytes
        6: IpcBytes
        7: KernelTotalHeapBytes
        8: WiredBytes
        9: OtherBytes
    - dimension: time_since_boot
      event_codes:
        0: Up
        1: UpOneMinute
        2: UpThirtyMinutes
        3: UpOneHour
        4: UpSixHours
        5: UpTwelveHours
        6: UpOneDay
        7: UpTwoDays
        8: UpThreeDays
        9: UpSixDays
  reports:
      #####################################################################
      # fuchsia_memory_usage
      #####################################################################
    - report_name: fuchsia_memory_usage_numeric_aggr_experimental
      id: 490323763 # legacy long report_id
      report_type: NUMERIC_AGGREGATION
      percentiles: [5, 10, 90, 95, 99]
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
    - report_name: fuchsia_memory_usage_histogram_experimental
      id: 57178942 # legacy long report_id
      report_type: INT_RANGE_HISTOGRAM
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
      int_buckets:
        linear:
          floor: 0
          num_buckets: 154
          step_size: 10485760 # 10 MB
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/10/25"

#####################################################################
# ****** WILL DEPRECATE. Use id 8 below instead. ******
# fuchsia CPU% * 100 averaged over all cores taken per sec
#
# For every second, a syscall is made to fetch the CPU idle time for
# each CPU core. With that,  we calculate the CPU% which is
# (busy time / 1 sec * 100) for each core. Assuming all cores are
# the same, we take the average CPU% over all cores.
# Note that Cobalt only take integer input, so we further multiply the
# average CPU% by 100 to get 2 decimal places.
# We aggregate 60 data points before flushing them into Cobalt through
# one FIDL call.
# Note that we are using MEMORY_USAGE metric_type until CPU_USAGE is
# avaiable.
#####################################################################
- id: 5
  metric_name: fuchsia_cpu_percentage_experimental
  metric_type: MEMORY_USAGE # TODO(CB-253) Change to CPU metric type when available
  metric_dimensions:
    - dimension: device_state
      event_codes:
        0: Unknown
        1: Idle
        2: Active
  reports:
      #####################################################################
      # fuchsia_cpu_usage
      #####################################################################
    - report_name: fuchsia_cpu_percentage_histogram_experimental
      id: 1375790990 # legacy long report_id
      report_type: INT_RANGE_HISTOGRAM
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
      int_buckets:
        linear:
          floor: 0
          num_buckets: 100
          step_size: 100 # We multiply CPU% by 100. So step size is 100.
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/10/25"

#####################################################################
# fuchsia_uptime
#
# Once per hour, we check the time since the system metrics daemon
# started, and send the uptime in hours (rounded down to the nearest
# hour from the true uptime).
#####################################################################
- id: 6
  metric_name: "fuchsia_uptime"
  metric_type: ELAPSED_TIME
  metric_dimensions:
    - dimension: uptime_range
      event_codes:
        0: LessThanTwoWeeks
        1: TwoWeeksOrMore
  reports:
      #####################################################################
      # fuchsia_uptime_hourly_bucket_counts
      #
      # Each day, we report the total number of pings we received
      # for each 1-hour uptime bucket, up to a cap of 2 weeks. These
      # numbers will be used to compute statistics of the uptime per
      # boot session, under the assumption that most devices will reboot
      # for updates at least once every 2 weeks.
      #####################################################################
    - report_name: fuchsia_uptime_hourly_bucket_counts
      id: 3731123077 # legacy long report_id
      report_type: INT_RANGE_HISTOGRAM
      int_buckets:
        linear:
          floor: 0
          num_buckets: 336
          step_size: 1
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
      #####################################################################
      # fuchsia_uptime_daily_bucket_counts
      #
      # Each day, we report the total number of pings we received
      # for each 24-hour uptime bucket, up to a cap of 2 weeks. These numbers
      # will be used to visualize the uptime per boot session, under the
      # assumption that most devices will reboot for updates at least once
      # every 2 weeks.
      #####################################################################
    - report_name: fuchsia_uptime_daily_bucket_counts
      id: 3715674597 # legacy long report_id
      report_type: INT_RANGE_HISTOGRAM
      int_buckets:
        linear:
          floor: 0
          num_buckets: 14
          step_size: 24
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
      #####################################################################
      # fuchsia_uptime_per_device_max
      #
      # Each day, we report statistics of the maximum uptime reached by
      # devices on that day. (The uptime session may have started on a
      # previous day.) One piece of information provided by this report is
      # the number of unique devices which have been up for 2 weeks or
      # more on a given day.
      #####################################################################
    - report_name: fuchsia_uptime_per_device_max
      id: 3666699243 # legacy long report_id
      report_type: PER_DEVICE_NUMERIC_STATS
      aggregation_type: MAX
      window_size:
        - 1
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/06/14"

#####################################################################
# fuchsia device temperature in degree celsius

# Device temperature is fetched every 10 seconds, and flushed into Cobalt
# every 1 minute (6 samples at once).
#####################################################################
- id: 7
  metric_name: fuchsia_temperature_experimental
  metric_type: INT_HISTOGRAM
  int_buckets:
    linear:
      floor: 0
      num_buckets: 80 # Assuming max 80 degree celsius.
      step_size: 1
  reports:
    - report_name: fuchsia_temperature_histogram_experimental
      id: 1340833861 # legacy long report_id
      report_type: INT_RANGE_HISTOGRAM
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/10/25"


#####################################################################
# fuchsia CPU% * 100 averaged over all cores taken per sec
#
# For every second, a syscall is made to fetch the CPU idle time for
# each CPU core. With that,  we calculate the CPU% which is
# (busy time / 1 sec * 100) for each core. Assuming all cores are
# the same, we take the average CPU% over all cores.
# Note that Cobalt only take integer input, so we further multiply the
# average CPU% by 100 to get 2 decimal places.
# We aggregate 10 minutes of data before flushing them into Cobalt in
# one FIDL call.
# Estimated number of events per day is 3 * (24 * 60)/10 = 432.
#####################################################################
- id: 8
  metric_name: cpu_percentage
  metric_type: INT_HISTOGRAM
  metric_dimensions:
    - dimension: device_state
      event_codes:
        0: Unknown
        1: Idle
        2: Active
  int_buckets:
    linear:
      floor: 0
      num_buckets: 1000  # 0.00% - 100.00%.
      step_size: 10      # 0.10%
  reports:
      #####################################################################
      # fuchsia_cpu_usage
      #####################################################################
    - report_name: cpu_percentage_histogram
      id: 1
      report_type: INT_RANGE_HISTOGRAM
      system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
  meta_data:
    max_release_stage: GA
    expiration_date: "2020/12/17"
