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