| # Copyright 2020 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. |
| |
| metric_definitions: |
| ################################################################################ |
| # Life Cycle events for Timekeeper. |
| # |
| # An event is generated when certain key conditions are met during the execution |
| # of Timekeeper. These events are infrequent, with each occurring at most once |
| # per instantiation of the Timekeeper component. |
| ################################################################################ |
| - id: 1 |
| replacement_metric_id: 11 |
| metric_name: timekeeper_lifecycle_events |
| metric_type: EVENT_OCCURRED |
| metric_dimensions: &tle_dimensions |
| - dimension: event_type |
| event_codes: |
| # Timekeeper was initialized before the UTC clock had been started. |
| # This is the expected initialization path. |
| 0: InitializedBeforeUtcStart |
| # Timekeeper was initialized after the UTC clock was already started, |
| # probably indicating Timekeeper has been restarted. |
| 1: InitializedAfterUtcStart |
| # Timekeeper successfully read performance data from the stash. |
| 2: ReadFromStash |
| # Timekeeper started the UTC clock using data it received from a time |
| # source. |
| 3: StartedUtcFromTimeSource |
| # Timekeeper started the UTC clock using data from the real time clock. |
| 4: StartedUtcFromRtc |
| max_event_code: 31 |
| reports: |
| - report_name: counts |
| id: 1 |
| report_type: SIMPLE_OCCURRENCE_COUNT |
| local_privacy_noise_level: NONE |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: n_day_actives |
| id: 2 |
| report_type: UNIQUE_N_DAY_ACTIVES |
| local_privacy_noise_level: NONE |
| window_size: |
| - 1 |
| - 7 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 11 |
| metric_name: timekeeper_lifecycle_events_migrated |
| metric_type: OCCURRENCE |
| metric_semantics: [USAGE_COUNTING, OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *tle_dimensions |
| reports: |
| - report_name: 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: n_day_actives_1day |
| id: 2 |
| report_type: UNIQUE_DEVICE_COUNTS |
| system_profile_selection: SELECT_LAST |
| local_aggregation_period: WINDOW_1_DAY |
| local_aggregation_procedure: AT_LEAST_ONCE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: n_day_actives_7day |
| id: 3 |
| report_type: UNIQUE_DEVICE_COUNTS |
| system_profile_selection: SELECT_LAST |
| local_aggregation_period: WINDOW_7_DAYS |
| local_aggregation_procedure: AT_LEAST_ONCE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # Time source events for Timekeeper. |
| # |
| # This metric covers all pertinent events associated with one of the input |
| # sources to Timekeeper. Events are generated for each failure of a time source |
| # and for each rejection of a sample received from the time source. |
| ################################################################################ |
| - id: 2 |
| replacement_metric_id: 12 |
| metric_name: timekeeper_time_source_events |
| metric_type: EVENT_COUNT |
| metric_dimensions: &ttse_dimensions |
| - dimension: event_type |
| event_codes: |
| 0: SampleRejectedStatusNotOk |
| 1: SampleRejectedMonotonicInFuture |
| 2: SampleRejectedMonotonicTooOld |
| 3: SampleRejectedBeforeBackstop |
| 4: SampleRejectedTooCloseToPrevious |
| 5: LaunchFailed |
| 6: RestartedStreamFailed |
| 7: RestartedCallFailed |
| 8: RestartedSampleTimeOut |
| max_event_code: 31 |
| - dimension: role |
| event_codes: &roles |
| 0: Primary |
| 1: Fallback |
| 2: Gating |
| 3: Monitor |
| - dimension: experiment |
| # Product and role are sufficient to identify which time source produced a |
| # particular event, except for cases where an experiment or partial |
| # rollout is in progress. The experiment dimension is used to distinguish |
| # between the potential options in these cases. |
| event_codes: &experiments |
| 0: None |
| 1: A |
| 2: B |
| reports: |
| - report_name: per_device_stats |
| id: 1 |
| report_type: PER_DEVICE_NUMERIC_STATS |
| window_size: |
| - 1 |
| - 7 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 12 |
| metric_name: timekeeper_time_source_events_migrated |
| metric_type: OCCURRENCE |
| metric_semantics: [USAGE_COUNTING, OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *ttse_dimensions |
| reports: |
| - report_name: per_device_stats_1day |
| id: 1 |
| 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: per_device_stats_7day |
| id: 2 |
| report_type: UNIQUE_DEVICE_NUMERIC_STATS |
| local_aggregation_period: WINDOW_7_DAYS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| ################################################################################ |
| # Real Time Clock events. |
| # |
| # A single read or failure event is generated during Timekeeper initialization, |
| # one or more write events may occur after initialization as time is updated. |
| ################################################################################ |
| - id: 3 |
| replacement_metric_id: 13 |
| metric_name: real_time_clock_events |
| metric_type: EVENT_OCCURRED |
| metric_dimensions: &rtce_dimensions |
| - dimension: event_type |
| event_codes: |
| # No real time clock devices could be found. No reads or writes will |
| # be attempted. |
| 0: NoDevices |
| # More than one real time clock device was found. Since the correct |
| # clock could not be determined no reads or writes will be attemped. |
| 1: MultipleDevices |
| # A single RTC was found but a connection could not be established. |
| # No reads or writes will be attempted. |
| 2: ConnectionFailed |
| # A read of the RTC failed. |
| 3: ReadFailed |
| # A read of the RTC succeeded but the returned value was less than the |
| # minimum allowed time. |
| 4: ReadInvalidBeforeBackstop |
| # A valid time was read from the RTC. Note this does not imply the |
| # system used the RTC time. |
| 5: ReadSucceeded |
| # A write to the RTC failed. |
| 6: WriteFailed |
| # A write to the RTC succeeded. |
| 7: WriteSucceeded |
| max_event_code: 15 |
| reports: |
| - report_name: counts |
| id: 1 |
| report_type: SIMPLE_OCCURRENCE_COUNT |
| local_privacy_noise_level: NONE |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: n_day_actives |
| id: 2 |
| report_type: UNIQUE_N_DAY_ACTIVES |
| local_privacy_noise_level: NONE |
| window_size: |
| - 1 |
| - 7 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 13 |
| metric_name: real_time_clock_events_migrated |
| metric_type: OCCURRENCE |
| metric_semantics: [USAGE_COUNTING, OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *rtce_dimensions |
| reports: |
| - report_name: 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: n_day_actives_1day |
| id: 2 |
| report_type: UNIQUE_DEVICE_COUNTS |
| system_profile_selection: SELECT_LAST |
| local_aggregation_period: WINDOW_1_DAY |
| local_aggregation_procedure: AT_LEAST_ONCE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: n_day_actives_7day |
| id: 3 |
| report_type: UNIQUE_DEVICE_COUNTS |
| system_profile_selection: SELECT_LAST |
| local_aggregation_period: WINDOW_7_DAYS |
| local_aggregation_procedure: AT_LEAST_ONCE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # HTTPSDate time source poll latency, in microseconds. |
| # |
| # Round trip times observed while polling a server in microseconds. |
| ################################################################################ |
| - id: 4 |
| replacement_metric_id: 14 |
| metric_name: httpsdate_poll_latency |
| metric_type: INT_HISTOGRAM |
| int_buckets: &hpl_buckets |
| linear: |
| floor: 0 |
| num_buckets: 50 # 1 second |
| step_size: 20000 # 20 ms |
| reports: |
| - report_name: histogram |
| id: 1 |
| report_type: INT_RANGE_HISTOGRAM |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 14 |
| metric_name: httpsdate_poll_latency_migrated |
| metric_type: INTEGER_HISTOGRAM |
| metric_units: MICROSECONDS |
| metric_semantics: [LATENCY, NETWORK_COMMUNICATION] |
| int_buckets: *hpl_buckets |
| reports: |
| - report_name: histogram |
| id: 1 |
| report_type: FLEETWIDE_HISTOGRAMS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # HTTPSDate time source bound size, in microseconds. |
| # |
| # Size of the final bounds produced for a single sample in microseconds. Serves |
| # as a measure of the accuracy achieved by HTTPSDate. |
| ################################################################################ |
| - id: 5 |
| replacement_metric_id: 15 |
| metric_name: httpsdate_bound_size |
| metric_type: EVENT_COUNT |
| metric_dimensions: &hbs_dimensions |
| - dimension: phase |
| event_codes: |
| 0: Initial |
| 1: Converge |
| 2: Maintain |
| reports: |
| - report_name: percentiles |
| id: 1 |
| report_type: NUMERIC_AGGREGATION |
| percentiles: [50, 90, 95, 99] |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &hbs_h_buckets |
| linear: |
| floor: 0 |
| num_buckets: 40 # 2 seconds |
| step_size: 50000 # 50 ms |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 15 |
| metric_name: httpsdate_bound_size_migrated |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *hbs_dimensions |
| reports: |
| - report_name: hourly_device_maximum |
| id: 1 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MAX_PROCEDURE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *hbs_h_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # Track events for Timekeeper. |
| # |
| # This metric covers all pertinent events associated with one of the two time |
| # tracks inside Timekeeper. An event is generated for each estimate update, |
| # clock correction decision, and clock update. |
| ################################################################################ |
| - id: 6 |
| replacement_metric_id: 16 |
| metric_name: timekeeper_track_events |
| metric_type: EVENT_COUNT |
| metric_dimensions: &tte_dimensions |
| - dimension: event_type |
| event_codes: |
| 0: EstimatedOffsetUpdated |
| 1: EstimatedFrequencyUpdated |
| 2: CorrectionNotRequired |
| 3: CorrectionByStep |
| 4: CorrectionByNominalRateSlew |
| 5: CorrectionByMaxDurationSlew |
| 6: ClockUpdateTimeStep |
| 7: ClockUpdateBeginSlew |
| 8: ClockUpdateEndSlew |
| 9: ClockUpdateReduceError |
| 10: ClockUpdateIncreaseError |
| 11: ClockUpdateChangeFrequency |
| 12: FrequencyWindowDiscardedBeforeWindow |
| 13: FrequencyWindowDiscardedSampleCount |
| 14: FrequencyWindowDiscardedLeapSecond |
| max_event_code: 31 |
| - dimension: track |
| event_codes: &tracks |
| 0: Primary |
| 1: Monitor |
| - dimension: experiment |
| event_codes: *experiments |
| reports: |
| - report_name: per_device_stats |
| id: 1 |
| report_type: PER_DEVICE_NUMERIC_STATS |
| window_size: |
| - 1 |
| - 7 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 16 |
| metric_name: timekeeper_track_events_migrated |
| metric_type: OCCURRENCE |
| metric_semantics: [USAGE_COUNTING] |
| metric_dimensions: *tte_dimensions |
| reports: |
| - report_name: per_device_stats_1day |
| id: 1 |
| 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: per_device_stats_7day |
| id: 2 |
| report_type: UNIQUE_DEVICE_NUMERIC_STATS |
| local_aggregation_period: WINDOW_7_DAYS |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # Square root of Timekeeper Kalman filter covariance, in microseconds. |
| # |
| # Records the square root of covariance in the Kalman filter after each |
| # successful estimate update. Note the initial covariance is not reported, |
| # partly to avoid poluting the significantly lower covariances produced during |
| # updates, partly since it can be directly determined from the time source |
| # output uncertainty. |
| ################################################################################ |
| - id: 7 |
| replacement_metric_id: 17 |
| metric_name: timekeeper_sqrt_covariance |
| metric_type: EVENT_COUNT |
| metric_dimensions: &tsc_dimensions |
| - dimension: track |
| event_codes: *tracks |
| - dimension: experiment |
| event_codes: *experiments |
| reports: |
| - report_name: percentiles |
| id: 1 |
| report_type: NUMERIC_AGGREGATION |
| percentiles: [50, 90, 95, 99] |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &tsc_h_buckets |
| linear: |
| floor: 0 |
| num_buckets: 200 # 1 second |
| step_size: 5000 # 5 ms |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 17 |
| metric_name: timekeeper_sqrt_covariance_migrated |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *tsc_dimensions |
| reports: |
| - report_name: hourly_device_minimum |
| id: 1 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MIN_PROCEDURE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: hourly_device_maximum |
| id: 2 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MAX_PROCEDURE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 3 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *tsc_h_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # Timekeeper clock corrections, in microseconds. |
| # |
| # Records the magnitude (in microseconds) and direction of each update to be |
| # applied to a clock that has previously been initialized from some time source. |
| # Note that these corrections might either be applied by stepping or slewing the |
| # clock. |
| ################################################################################ |
| - id: 8 |
| replacement_metric_id: 18 |
| metric_name: timekeeper_clock_correction |
| metric_type: EVENT_COUNT |
| metric_dimensions: &tcc_dimensions |
| - dimension: direction |
| event_codes: |
| # Reduce the clock time, i.e. correct a clock that was too fast. |
| 0: Negative |
| # Increase the clock time, i.e. correct a clock that was too slow. |
| 1: Positive |
| - dimension: track |
| event_codes: *tracks |
| - dimension: experiment |
| event_codes: *experiments |
| reports: |
| - report_name: percentiles |
| id: 1 |
| report_type: NUMERIC_AGGREGATION |
| percentiles: [50, 90, 95, 99] |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: fine_histogram |
| id: 2 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &tcc_fh_buckets |
| linear: |
| floor: 0 |
| num_buckets: 200 # 1 second |
| step_size: 5000 # 5 ms |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: coarse_histogram |
| id: 3 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &tcc_ch_buckets |
| linear: |
| floor: 1000000 # 1 second |
| num_buckets: 59 # 1 minute |
| step_size: 1000000 # 1 second |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 18 |
| metric_name: timekeeper_clock_correction_migrated |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *tcc_dimensions |
| reports: |
| - report_name: hourly_device_maximum |
| id: 1 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MAX_PROCEDURE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: fine_histogram |
| id: 2 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *tcc_fh_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: coarse_histogram |
| id: 3 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *tcc_ch_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # Timekeeper frequency estimates, as a parts per million deviation. |
| # |
| # NOTE: THESE METRICS SUFFERED FROM A SIGNED/UNSIGNED MISMATCH IN THE COBALT |
| # DEFINITIONS AND THEIR DATA IS CORRUPTED. THEY WILL BE REMOVED ONCE ALL DEVICES |
| # HAVE SUCCESSFULLY MIGRATED TO THE REPLACEMENT METRICS BELOW. |
| # |
| # Records a change to the estimated local oscillator frequency as calculated by |
| # Timekeeper for a particular time track. Values are expressed as a ppm |
| # deviation from the nominal one utc nanosecond per monotonic nanosecond, with |
| # positive values indicating a higher than 1,000,000ppm tick rate, |
| # i.e. compensation for an oscillator that is running slow. |
| ################################################################################ |
| - id: 21 |
| replacement_metric_id: 22 |
| metric_name: timekeeper_frequency_estimate |
| metric_type: EVENT_COUNT |
| metric_dimensions: &tfe_dimensions |
| - dimension: iteration |
| event_codes: |
| # The first time a frequency could be estimated. |
| 0: First |
| # The second time a frequency could be estimated, also incorporating data |
| # from the initial estimate. |
| 1: Second |
| # The third or greater time a frequency could be estimated, also |
| # incorporating data from all previous estimates. |
| 2: Subsequent |
| - dimension: track |
| event_codes: *tracks |
| - dimension: experiment |
| event_codes: *experiments |
| reports: |
| - report_name: percentiles |
| id: 1 |
| report_type: NUMERIC_AGGREGATION |
| percentiles: [50, 90, 95, 99] |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &tfe_buckets |
| linear: |
| floor: -200 |
| num_buckets: 400 |
| step_size: 1 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 22 |
| metric_name: timekeeper_frequency_estimate_migrated |
| metric_type: INTEGER |
| metric_units_other: ppm |
| metric_semantics: [OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *tfe_dimensions |
| reports: |
| - report_name: hourly_device_average |
| id: 1 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MEAN |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *tfe_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| # |
| ################################################################################ |
| # Timekeeper frequency estimates, as an absolute parts per million rate. |
| # |
| # Records a change to the estimated local oscillator frequency as calculated by |
| # Timekeeper for a particular time track. Values are expressed as utc parts |
| # per million monotonic parts, with 1,000,000 representing an oscillator that is |
| # running at exactly 1Hz. A value over 1,000,000 would indicate UTC is ticking |
| # faster than monotonic, i.e. Timekeeper is compensating for an oscillator that |
| # is running slow. |
| ################################################################################ |
| - id: 23 |
| replacement_metric_id: 24 |
| metric_name: timekeeper_frequency_abs_estimate |
| metric_type: EVENT_COUNT |
| metric_dimensions: *tfe_dimensions |
| reports: |
| - report_name: percentiles |
| id: 1 |
| report_type: NUMERIC_AGGREGATION |
| percentiles: [1, 5, 10, 50, 90, 95, 99] |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &tfe_buckets |
| linear: |
| floor: 999800 |
| num_buckets: 400 |
| step_size: 1 |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 24 |
| metric_name: timekeeper_frequency_abs_estimate_migrated |
| metric_type: INTEGER |
| metric_units_other: ppm |
| metric_semantics: [OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *tfe_dimensions |
| reports: |
| - report_name: hourly_device_average |
| id: 1 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MEAN |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *tfe_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # Timekeeper monitor to primary difference, in microseconds. |
| # |
| # When timekeeper is maintaining two independant tracks, this records the |
| # magnitude (in microseconds) and direction of the difference between the clock |
| # times for these tracks. |
| ################################################################################ |
| - id: 9 |
| replacement_metric_id: 19 |
| metric_name: timekeeper_monitor_difference |
| metric_type: EVENT_COUNT |
| metric_dimensions: &tmd_dimensions |
| - dimension: direction |
| event_codes: |
| # The monitor clock is earlier than the primary clock. |
| 0: Negative |
| # The monitor clock is later than the primary clock. |
| 1: Positive |
| - dimension: experiment |
| event_codes: *experiments |
| reports: |
| - report_name: percentiles |
| id: 1 |
| report_type: NUMERIC_AGGREGATION |
| percentiles: [50, 90, 95, 99] |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &tmd_h_buckets |
| linear: |
| floor: 0 |
| num_buckets: 100 # 2 seconds |
| step_size: 20000 # 20 ms |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 19 |
| metric_name: timekeeper_monitor_difference_migrated |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [OUTSIDE_ENVIRONMENT] |
| metric_dimensions: *tmd_dimensions |
| reports: |
| - report_name: hourly_device_maximum |
| id: 1 |
| report_type: HOURLY_VALUE_NUMERIC_STATS |
| local_aggregation_procedure: MAX_PROCEDURE |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| - report_name: histogram |
| id: 2 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *tmd_h_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| ################################################################################ |
| # HTTPSDate time source poll offset, in microseconds. |
| # |
| # An estimate of the difference between the median estimated UTC of a poll and |
| # the UTC time on the system clock. Will be used to improve the standard |
| # deviation estimate reported by HTTPSDate. |
| ################################################################################ |
| - id: 10 |
| replacement_metric_id: 20 |
| metric_name: httpsdate_poll_offset |
| metric_type: EVENT_COUNT |
| metric_dimensions: &hpo_dimensions |
| # Round trip time of the poll, bucketed into bins 10000 microseconds wide |
| # with a floor of 0 microseconds. |
| - dimension: rtt_bucket |
| event_codes: |
| 0: Underflow |
| 101: Overflow |
| max_event_code: 101 |
| - dimension: direction |
| event_codes: |
| # The poll is earlier than the device UTC. |
| 0: Negative |
| # The poll is later than the device UTC. |
| 1: Positive |
| reports: |
| - report_name: histogram |
| id: 1 |
| report_type: INT_RANGE_HISTOGRAM |
| int_buckets: &hpo_h_buckets |
| linear: |
| floor: 0 |
| num_buckets: 100 # 1 second |
| step_size: 10000 # 10 ms |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |
| |
| - id: 20 |
| metric_name: httpsdate_poll_offset_migrated |
| metric_type: INTEGER |
| metric_units: MICROSECONDS |
| metric_semantics: [LATENCY, NETWORK_COMMUNICATION] |
| metric_dimensions: *hpo_dimensions |
| reports: |
| - report_name: histogram |
| id: 1 |
| report_type: FLEETWIDE_HISTOGRAMS |
| int_buckets: *hpo_h_buckets |
| privacy_level: NO_ADDED_PRIVACY |
| system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL] |
| meta_data: |
| max_release_stage: GA |
| expiration_date: "2022/07/15" |