| # 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: camera |
| ################################################################################ |
| |
| metric_definitions: |
| |
| ################################################################################ |
| # Next Metric ID: 7 |
| ################################################################################ |
| |
| ################################################################################ |
| # camera_frame_drop_counts_per_stream |
| # |
| # Total number of dropped frames per stream type. Typically, the system decides |
| # to skip a delivered frame in following cases: |
| # 1. FrameAvailableInfo contains an erroneous status, |
| # 2. Delivered frame has a duplicated identifier, |
| # 3. Delivered frame does not have a timestamp, |
| # 4. Or, too many frames are currently in use. |
| ################################################################################ |
| - id: 1 |
| metric_name: camera_frame_drop_counts_per_stream |
| metric_type: OCCURRENCE |
| metric_semantics: [METRIC_SEMANTICS_UNSPECIFIED] |
| |
| metric_dimensions: |
| - dimension: stream_type |
| event_codes: &stream_types |
| 1: Stream 0 |
| 2: Stream 1 |
| 3: Stream 2 |
| 4: Stream 3 |
| 5: Stream 4 |
| 6: Stream 5 |
| 7: Stream 6 |
| 8: Stream 7 |
| 9: Stream 8 |
| # Set the maximal code value as 99 to accommodate any value larger than 9. |
| max_event_code: 99 |
| |
| - dimension: error_code |
| event_codes: &error_codes |
| 1: General |
| 2: InvalidFrame # Corresponding to FrameStatus::ERROR_FRAME |
| 3: NoMemory # Corresponding to FrameStatus::ERROR_BUFFER_FULL |
| 4: FrameIdInUse |
| 5: InvalidTimestamp |
| 6: TooManyFramesInFlight |
| 7: Muted |
| 8: NoClient |
| |
| reports: |
| - report_name: camera_stream_frame_drop_stat |
| id: 1 |
| report_type: FLEETWIDE_OCCURRENCE_COUNTS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [OS, ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL, REALM] |
| |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/05/18" |
| |
| - id: 2 |
| metric_name: camera_open_latency_per_stream |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [LATENCY] |
| |
| metric_dimensions: |
| - dimension: stream_type |
| event_codes: *stream_types |
| |
| reports: |
| - report_name: camera_stream_open_latency_histograms |
| id: 1 |
| report_type: FLEETWIDE_HISTOGRAMS |
| privacy_level: NO_ADDED_PRIVACY |
| int_buckets: &latency_histogram_buckets |
| linear: |
| floor: 0 |
| num_buckets: 50 # Up to 5 seconds |
| step_size: 100000 # 100ms |
| system_profile_field: [OS, ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL, REALM] |
| |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/05/18" |
| |
| - id: 3 |
| metric_name: camera_duration_per_stream |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [METRIC_SEMANTICS_UNSPECIFIED] |
| |
| metric_dimensions: |
| - dimension: stream_type |
| event_codes: *stream_types |
| |
| reports: |
| - report_name: camera_stream_duration_histograms |
| id: 1 |
| report_type: FLEETWIDE_HISTOGRAMS |
| privacy_level: NO_ADDED_PRIVACY |
| int_buckets: |
| linear: |
| floor: 0 |
| num_buckets: 20 # Up to 1 hour |
| step_size: 300000000 # 5 minutes |
| system_profile_field: [OS, ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL, REALM] |
| |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/05/18" |
| |
| - id: 4 |
| metric_name: camera_stream_close_error |
| metric_type: OCCURRENCE |
| metric_semantics: [METRIC_SEMANTICS_UNSPECIFIED] |
| |
| metric_dimensions: |
| - dimension: stream_type |
| event_codes: *stream_types |
| |
| - dimension: error_code |
| event_codes: |
| # Internal failures |
| 1: INTERNAL |
| 2: NOT_SUPPORTED |
| 3: NO_RESOURCES |
| 4: NO_MEMORY |
| # Parameter errors |
| 10: INVALID_ARGS |
| 11: BAD_HANDLE |
| 14: OUT_OF_RANGE |
| 15: BUFFER_TOO_SMALL |
| # Precondition or state errors |
| 20: BAD_STATE |
| 21: TIMED_OUT |
| 24: PEER_CLOSED |
| 25: NOT_FOUND |
| 26: ALREADY_EXISTS |
| 28: UNAVAILABLE |
| # Permission check errors |
| 30: ACCESS_DENIED |
| # I/O errors |
| 40: IO |
| # Flow control |
| 60: STOP |
| |
| reports: |
| - report_name: camera_stream_close_error_stat |
| id: 1 |
| report_type: FLEETWIDE_OCCURRENCE_COUNTS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [OS, ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL, REALM] |
| |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/05/18" |
| |
| - id: 5 |
| metric_name: camera_stream_memory_bandwidth_in_kbytes |
| metric_type: INTEGER |
| metric_units: KILOBYTES |
| metric_semantics: [MEMORY_USAGE] |
| |
| metric_dimensions: |
| - dimension: stream_type |
| event_codes: *stream_types |
| |
| - dimension: channels |
| event_codes: |
| 1: CPU |
| 2: ISP |
| 3: GPU |
| 4: GE2D |
| |
| reports: |
| - report_name: camera_stream_average_memory_bandwidth |
| id: 1 |
| report_type: FLEETWIDE_MEANS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [OS, ARCH, BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL, REALM] |
| |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/05/18" |
| |
| ################################################################################ |
| # camera_failure_frequency |
| # |
| # This metric is intended to capture failure rates of known issues in the field. |
| # An occurrence is triggered when the conditions necessary for such a failure |
| # are encountered, with the FailureTestResult dimension indicating whether the |
| # failure actually occurred. |
| ################################################################################ |
| - id: 6 |
| metric_name: camera_failure_frequency |
| metric_type: OCCURRENCE |
| metric_semantics: [USAGE_COUNTING] |
| |
| metric_dimensions: |
| - dimension: FailureTestType |
| event_codes: |
| # Conditions: driver stream connected and streaming requested |
| # Failure: driver stops (or never starts) sending frames |
| # Success: driver stream disconnected without Failure |
| 1: FramesStuckInPipeline |
| # Conditions: sensor module reset requested |
| # Failure: sensor never comes out of reset state |
| # Success: sensor comes out of reset and begins responding |
| 2: SensorFailedToReset |
| - dimension: FailureTestResult |
| event_codes: |
| 1: Success |
| 2: Failure |
| - dimension: ConfigIndex |
| event_codes: |
| 0: NotApplicable |
| 1: Config0 |
| 2: Config1 |
| 3: Config2 |
| - dimension: StreamIndex |
| event_codes: |
| 0: NotApplicable |
| 1: Stream0 |
| 2: Stream1 |
| 3: Stream2 |
| |
| reports: |
| - report_name: fleetwide_counts |
| id: 1 |
| report_type: FLEETWIDE_OCCURRENCE_COUNTS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: per_device_counts |
| id: 2 |
| report_type: UNIQUE_DEVICE_HISTOGRAMS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_selection: SELECT_LAST |
| local_aggregation_period: WINDOW_1_DAY |
| int_buckets: &buckets_pow2 |
| exponential: |
| # 0, 1, 2, 4, 8, ...~1e9 |
| floor: 0 |
| num_buckets: 32 |
| initial_step: 1 |
| step_multiplier: 2 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: per_device_statistics |
| id: 3 |
| 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] |
| |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2023/04/20" |