blob: 0367da54d6fd073153b43a7abef920bed4a0d8ed [file] [log] [blame]
# 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.
################################################################################
# Cobalt Project: media
################################################################################
metric_definitions:
#####################################################################
# Next Metric ID: 9
#
# Reserved: Metric ID 2 (deleted in fxrev.dev/437254)
#####################################################################
################################################################################
# audio_session_duration
#
# Total amount of time (ns) in which audio input or output was being processed.
# Typically this is the time between Play/Pause or Record/Stop, or for components
# behind a mixer, it's the time between the first Play of any input being mixed
# until all inputs have been Stopped.
################################################################################
- id: 3
metric_name: audio_session_duration
metric_type: ELAPSED_TIME
metric_dimensions:
- dimension: component
event_codes: &component_event_codes
0: OutputDevice
1: OutputPipeline
2: Renderer
3: Capturer
reports:
- report_name: audio_session_duration_stats
id: 1
report_type: NUMERIC_AGGREGATION
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: audio_session_duration_histograms
id: 2
report_type: INT_RANGE_HISTOGRAM
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
int_buckets: &nanosecond_duration_buckets_one_day
exponential:
# The effective range is 1ms to 18hr, which allows us to represent sessions
# up to about 1 day long. The floor of the largest bucket is 1ms*2^26, or
# 67108s, or about 18h.
floor: 0
num_buckets: 27
initial_step: 1000000
step_multiplier: 2
meta_data:
max_release_stage: GA
expiration_date: "2021/08/11"
################################################################################
# audio_overflow_duration
#
# Total amount of time (ns) in which the system was stalled by an overflow.
################################################################################
- id: 4
metric_name: audio_overflow_duration
metric_type: ELAPSED_TIME
metric_dimensions:
- dimension: component
event_codes: *component_event_codes
reports:
- report_name: audio_overflow_duration_stats
id: 1
report_type: NUMERIC_AGGREGATION
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: audio_overflow_duration_histograms
id: 2
report_type: INT_RANGE_HISTOGRAM
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
int_buckets: &nanosecond_duration_buckets_ten_minutes
exponential:
# The effective range is 1ms to 10min. We expect that overflows and underflows
# are typically at most a few seconds long, so this is plenty of precision.
# The floor of the largest bucket is 1ms*2^19, or 524s, or about 8min.
floor: 0
num_buckets: 20
initial_step: 1000000
step_multiplier: 2
meta_data:
max_release_stage: GA
expiration_date: "2021/08/11"
################################################################################
# audio_underflow_duration
#
# Total amount of time (ns) in which the system was stalled by an underflow.
################################################################################
- id: 5
metric_name: audio_underflow_duration
metric_type: ELAPSED_TIME
metric_dimensions:
- dimension: component
event_codes: *component_event_codes
reports:
- report_name: audio_underflow_duration_stats
id: 1
report_type: NUMERIC_AGGREGATION
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: audio_underflow_duration_histograms
id: 2
report_type: INT_RANGE_HISTOGRAM
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
int_buckets: *nanosecond_duration_buckets_ten_minutes
meta_data:
max_release_stage: GA
expiration_date: "2021/08/11"
################################################################################
# audio_time_since_last_overflow_or_session_start
#
# Total amount of time (ns) since the last overflow event, or since the session
# started, whichever happened most recently. This is recorded at every overflow
# event and when the session ends.
################################################################################
- id: 6
metric_name: audio_time_since_last_overflow_or_session_start
metric_type: ELAPSED_TIME
metric_dimensions:
- dimension: component
event_codes: *component_event_codes
- dimension: last_event
event_codes:
0: SessionStart
1: Overflow
reports:
# Reserved: id 1 (deleted in fxrev.dev/437254)
- report_name: audio_time_since_last_overflow_or_session_start_histograms
id: 2
report_type: INT_RANGE_HISTOGRAM
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
int_buckets: *nanosecond_duration_buckets_one_day
meta_data:
max_release_stage: GA
expiration_date: "2021/08/11"
################################################################################
# audio_time_since_last_underflow_or_session_start
#
# Total amount of time (ns) since the last underflow event, or since the session
# started, whichever happened most recently. This is recorded at every underflow
# event and when the session ends.
################################################################################
- id: 7
metric_name: audio_time_since_last_underflow_or_session_start
metric_type: ELAPSED_TIME
metric_dimensions:
- dimension: component
event_codes: *component_event_codes
- dimension: last_event
event_codes:
0: SessionStart
1: Underflow
reports:
# Reserved: id 1 (deleted in fxrev.dev/437254)
- report_name: audio_time_since_last_overflow_or_session_start_histograms
id: 2
report_type: INT_RANGE_HISTOGRAM
system_profile_field: [ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
int_buckets: *nanosecond_duration_buckets_one_day
meta_data:
max_release_stage: GA
expiration_date: "2021/08/11"
################################################################################
# stream_processor_events
#
# We log counts of various stream processor events. We use an EVENT_COUNT to
# allow accumulating event counts in-process before sending the count to cobalt.
#
# Expected frequency: Batch logging frequency capped at no more than once every
# 5 seconds. The max batch size of 64 will essentially always be large enough
# to avoid spilling into an additional batch. Batch sizes larger than 12 are
# expected to be rare, as 12 is the number of different events we'd expect to
# see if streams are being created and destroyed successfully, plus one type of
# generic error and one more specific error. It's rare that we'd see a storm of
# different error codes within 5 seconds.
################################################################################
- id: 8
metric_name: stream_processor_events
metric_type: EVENT_COUNT
metric_dimensions:
- dimension: implementation
event_codes:
0: AmlogicDecoderShared
1: AmlogicDecoderH264Multi
2: AmlogicDecoderH264Single
3: AmlogicDecoderVp9
4: AmlogicMpeg12
5: FfmpegDecoderH264
- dimension: event
event_codes:
# Often under a "shared" component since sometimes the hosting process
# will start before we know which specific stream processor.
0: HostProcessStart
1: StreamCreated
2: StreamDeleted
3: StreamFlushed
4: StreamEndOfStreamInput
5: StreamEndOfStreamOutput
# In addition to separate reasons listed below.
6: StreamFailureAnyReason
7: CoreCreated
8: CoreDeleted
9: CoreFlushed
10: CoreEndOfStreamInput
11: CoreEndOfStreamOuput
# In addition to separate reasons listed below.
12: CoreFailureAnyReason
13: InputBufferAllocationStarted
14: InputBufferAllocationSuccess
15: InputBufferAllocationFailure
16: OutputBufferAllocationStarted
17: OutputBufferAllocationSuccess
18: OutputBufferAllocationFailure
reports:
- report_name: stream_processor_events_device_histogram
id: 1
report_type: PER_DEVICE_HISTOGRAM
int_buckets:
exponential:
floor: 0
num_buckets: 24
initial_step: 1
step_multiplier: 2
window_size: [1]
aggregation_type: SUM
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: stream_processor_events_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: stream_processor_events_fleet_histogram
id: 3
report_type: INT_RANGE_HISTOGRAM
int_buckets:
exponential:
floor: 0
num_buckets: 48
initial_step: 1
step_multiplier: 2
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
- report_name: stream_processor_events_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]
- report_name: stream_processor_events_component_occurrence_count
id: 5
report_type: EVENT_COMPONENT_OCCURRENCE_COUNT
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2021/08/18"
# also_log_locally: true