blob: 3809b248333b2dda5f43032924cebb1a30ba82d2 [file] [log] [blame]
# 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: sysmem
################################################################################
metric_definitions:
#####################################################################
# Next Metric ID: 3
#####################################################################
################################################################################
# unused_page_check_old
#
# TODO: Log directly to unused_page_check, once it's clear we won't be merging
# this (and associated CLs) into any branch that wants to log via 1.0.
#
# When a sysmem page becomes unused, sysmem puts a pattern into the page. When
# the pattern is later checked, this metric tracks successful page checks and
# failed page checks.
#
# Pages are checked when allocations occur, and every 10 minutes. Successful
# checks are buffered for 30 minutes before being flushed to Cobalt. Failed
# checks shouldn't happen, but if they do, they're buffered for 5 seconds before
# flushing to Cobalt.
#
# Expected frequency: Batch logging frequency capped at no more than once every
# 5 seconds.
################################################################################
- id: 1
replacement_metric_id: 2
metric_name: unused_page_check_old
metric_type: EVENT_COUNT
metric_dimensions: &upc_dimensions
- dimension: event
event_codes:
# We performed a pattern check (typically of several pages) and the
# pattern was intact ...
1: PatternCheckOk
# ... or the pattern check was not intact.
2: PatternCheckFailed
# Pattern checking is enabled and can log to Cobalt. Basically we get
# this event from a device as soon as sysmem has a way to create a
# cobalt logger iff the device has pattern checking enabled. The intent
# here is as a sanity check that we're getting full stack metric
# connectivity (for this particular metric) even if many devices don't
# see much sysmem churn.
3: Connectivity
reports:
- report_name: device_histogram
id: 1
report_type: PER_DEVICE_HISTOGRAM
int_buckets: &upcdh_buckets
exponential:
floor: 0
num_buckets: 48
initial_step: 1
step_multiplier: 2
window_size: [1]
aggregation_type: SUM
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: device_stats
id: 2
report_type: PER_DEVICE_NUMERIC_STATS
window_size: [1]
aggregation_type: SUM
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: fleet_histogram
id: 3
report_type: INT_RANGE_HISTOGRAM
int_buckets: &upcfh_buckets
exponential:
floor: 0
num_buckets: 63
initial_step: 1
step_multiplier: 2
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: fleet_stats
id: 4
report_type: NUMERIC_AGGREGATION
percentiles: [0, 1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 96, 97, 98, 99, 100]
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2022/10/14"
################################################################################
# unused_page_check
#
# When a sysmem page becomes unused, sysmem puts a pattern into the page. When
# the pattern is later checked, this metric tracks successful page checks and
# failed page checks.
#
# Pages are checked when allocations occur, and every 10 minutes. Successful
# checks are buffered for 30 minutes before being flushed to Cobalt. Failed
# checks shouldn't happen, but if they do, they're buffered for 5 seconds before
# flushing to Cobalt.
#
# Expected frequency: Batch logging frequency capped at no more than once every
# 5 seconds.
################################################################################
- id: 2
metric_name: unused_page_check
metric_type: OCCURRENCE
metric_semantics: [USAGE_COUNTING]
metric_dimensions: *upc_dimensions
reports:
- report_name: device_histogram
id: 1
report_type: UNIQUE_DEVICE_HISTOGRAMS
system_profile_selection: SELECT_LAST
int_buckets: *upcdh_buckets
local_aggregation_period: WINDOW_1_DAY
privacy_level: NO_ADDED_PRIVACY
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: device_stats
id: 2
report_type: UNIQUE_DEVICE_NUMERIC_STATS
local_aggregation_period: WINDOW_1_DAY
privacy_level: NO_ADDED_PRIVACY
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: fleet_histogram
id: 3
report_type: HOURLY_VALUE_HISTOGRAMS
system_profile_selection: SELECT_LAST
int_buckets: *upcfh_buckets
privacy_level: NO_ADDED_PRIVACY
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: fleet_stats
id: 4
report_type: HOURLY_VALUE_NUMERIC_STATS
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/14"