blob: e3378b050122ba5dbc19a9bf3eb0160fd715bbd3 [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: 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"