blob: eb6c2fea9810dcfdd6a5434ab37089be66577ab5 [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.
metric_definitions:
#####################################################################
# fuchsia memory_usage with VMO owner breakdown
#
# Every five minutes, we log the current memory usage in bytes, divided into buckets:
#####################################################################
- id: 101
metric_name: memory_migrated
metric_type: INTEGER
metric_semantics: [MEMORY_USAGE]
metric_units: BYTES
metric_dimensions:
- dimension: bucket
event_codes:
0: TotalBytes
1: "ZBI Buffer"
2: "Graphics"
3: "Video Buffer"
4: "Minfs"
5: "Blobfs"
6: "Opal"
7: "Web"
8: "Kronk"
9: "Scenic"
10: "Amlogic"
11: "Netstack"
12: "Amber"
13: "Pkgfs"
14: "Cast"
15: "Chromium"
16: "Free"
17: "Kernel"
18: "Orphaned"
19: "Undigested"
20: "Flutter"
21: "Fshost"
22: "Archivist"
23: "Cobalt"
24: "Audio"
25: "Context"
26: "ContiguousPool"
27: "ProtectedPool"
28: "FlutterApps"
29: "BlobfsInactive"
30: "ContiguousPoolFree"
31: "ProtectedPoolFree"
32: "[Addl]PagerTotal"
33: "[Addl]PagerNewest"
34: "[Addl]PagerOldest"
35: "[Addl]DiscardableLocked"
36: "[Addl]DiscardableUnlocked"
37: "Perception"
38: "Camera"
39: "AppManager"
40: "ComponentManager"
41: "Comms"
42: "Resolvers"
43: "SoundPlayer"
44: "Ultrasound"
45: "Vision"
46: "Feedback"
47: "CompositeDrivers"
48: "OtherDrivers"
49: "Code49"
50: "A11y"
51: "Bluetooth"
52: "HCI"
53: "I18N"
54: "SetUI"
55: "SoftwareDelivery"
56: "Thread"
57: "Weave"
58: "WLAN"
59: "NetworkPolicy"
60: "Code60"
61: "Code61"
62: "Code62"
63: "DriverFramework"
64: "EngTools"
65: "Power"
66: "Code66"
67: "Code67"
68: "Fxfs"
69: "SceneManager"
70: "Gazelle"
71: "Netsvc"
72: "Storage"
73: "Fxblob"
reports:
- report_name: memory_bucket_bytes_per_hour_max
id: 1
report_type: HOURLY_VALUE_NUMERIC_STATS
local_aggregation_procedure: MAX_PROCEDURE
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
- report_name: memory_bucket_histograms
id: 2
report_type: FLEETWIDE_HISTOGRAMS
int_buckets:
linear:
floor: 0
num_buckets: 100
step_size: 10485760 # 10 MiB
sparse_output: true
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
- report_name: memory_bucket_per_device_max
id: 3
report_type: UNIQUE_DEVICE_NUMERIC_STATS
local_aggregation_period: WINDOW_1_DAY
local_aggregation_procedure: MAX_PROCEDURE
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2023/07/01"
#####################################################################
# fuchsia memory usage with general breakdown
#
# Every five minutes, we log the current memory usage in bytes from kmem
# with the usage breakdown.
# TODO(https://fxbug.dev/42097023): This is intended to be a copy of the fuchsia_memory_experimental
# metric in fuchsia_system_metrics project. The original one will be removed once
# this one get enough data to be shown on dashboard.
#####################################################################
- id: 102
metric_name: memory_general_breakdown_migrated
metric_type: INTEGER
metric_semantics: [MEMORY_USAGE]
metric_units: BYTES
metric_dimensions:
- dimension: general_breakdown
event_codes: &general_breakdown_event_codes
0: TotalBytes
1: UsedBytes
2: FreeBytes
3: VmoBytes
4: KernelFreeHeapBytes
5: MmuBytes
6: IpcBytes
7: KernelTotalHeapBytes
8: WiredBytes
9: OtherBytes
reports:
#####################################################################
# fuchsia_memory_usage
#
#####################################################################
- report_name: numeric_aggr_per_hour_max
id: 1
report_type: HOURLY_VALUE_NUMERIC_STATS
local_aggregation_procedure: MAX_PROCEDURE
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
- report_name: numeric_aggr_per_device_max
id: 2
report_type: UNIQUE_DEVICE_NUMERIC_STATS
local_aggregation_procedure: MAX_PROCEDURE
local_aggregation_period: WINDOW_1_DAY
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2023/07/01"
#####################################################################
# fuchsia memory usage with general breakdown and time-since-boot breakdown
#
# Every five minutes, we log the current memory usage in bytes from kmem
# with the usage breakdown and time since boot breakdown, intended to detect
# memory leak over time.
# TODO(https://fxbug.dev/42097023): This is intended to be a copy of the fuchsia_memory_experimental
# metric in fuchsia_system_metrics project. The original one will be removed once
# this one get enough data to be shown on dashboard.
#####################################################################
- id: 103
metric_name: memory_leak_migrated
metric_type: INTEGER
metric_semantics: [MEMORY_USAGE]
metric_units: BYTES
metric_dimensions:
- dimension: general_breakdown
event_codes: *general_breakdown_event_codes
- dimension: time_since_boot
event_codes:
0: Up
1: UpOneMinute
2: UpThirtyMinutes
3: UpOneHour
4: UpSixHours
5: UpTwelveHours
6: UpOneDay
7: UpTwoDays
8: UpThreeDays
9: UpSixDays
reports:
#####################################################################
# fuchsia_memory_usage
#####################################################################
- report_name: numeric_aggr_per_hour_max
id: 1
report_type: HOURLY_VALUE_NUMERIC_STATS
local_aggregation_procedure: MAX_PROCEDURE
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
- report_name: histogram
id: 2
report_type: FLEETWIDE_HISTOGRAMS
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
int_buckets:
linear: &linear_buckets
floor: 0
num_buckets: 205 # 2 GiB / 10 MiB
step_size: 10485760 # 10 MiB
sparse_output: true
- report_name: numeric_aggr_per_device_max
id: 3
report_type: UNIQUE_DEVICE_NUMERIC_STATS
local_aggregation_procedure: MAX_PROCEDURE
local_aggregation_period: WINDOW_1_DAY
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
- report_name: histogram_per_device_max
id: 4
report_type: UNIQUE_DEVICE_HISTOGRAMS
system_profile_selection: SELECT_LAST
local_aggregation_procedure: MAX_PROCEDURE
local_aggregation_period: WINDOW_1_DAY
int_buckets:
linear: *linear_buckets
sparse_output: true
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, ARCH, SYSTEM_VERSION, OS, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2023/07/01"
################################################################################
# Sysmem free memory at memory high water
#
# The event reported by sysmem is the minimum amount of free memory in the
# allocator at any time since the system was booted. Updated by Lapis (using
# the sysmem inspect data) once every 5 minutes.
################################################################################
- id: 104
metric_name: memory_free_high_water_migrated
metric_type: INTEGER
metric_semantics: [MEMORY_USAGE]
metric_units: BYTES
metric_dimensions:
- dimension: allocator
event_codes: &allocator_event_codes
0: Ram
1: ContiguousRam
2: AmlogicSecure
3: AmlogicSecureVdec
4: GoldfishDeviceLocal
5: GoldfishHostVisible
reports:
# This report picks the minimum value for a device each week and generates
# summary statistics. This aggregation helps us ignore samples taken right
# after a device reboots so we can focus on how many devices ever use a
# particular amount of memory.
- report_name: free_min_per_device
id: 1
report_type: UNIQUE_DEVICE_NUMERIC_STATS
local_aggregation_procedure: MIN_PROCEDURE
# Seven days is a bit arbitrary, but for now we can assume the device
# will hit its maximum memory usage within that amount of time.
local_aggregation_period: WINDOW_7_DAYS
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
# This report just gets the current value from all devices, which can be
# useful for determining how long it takes for devices to reach
# high-memory-usage states.
- report_name: free_min_histogram
id: 2
report_type: FLEETWIDE_HISTOGRAMS
int_buckets:
exponential: &exponential_buckets
floor: 0
num_buckets: 32
initial_step: 4096
step_multiplier: 2
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
# Similar to report 1, but gives the whole histogram and not just summary
# statistics.
- report_name: free_min_histogram_per_device
id: 3
report_type: UNIQUE_DEVICE_HISTOGRAMS
system_profile_selection: SELECT_LAST
# Seven days is a bit arbitrary, but for now we can assume the device
# will hit its maximum memory usage within that amount of time.
local_aggregation_period: WINDOW_7_DAYS
local_aggregation_procedure: MIN_PROCEDURE
int_buckets:
exponential: *exponential_buckets
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2023/07/01"
################################################################################
# Sysmem Memory usage
#
# The current memory consumption from a sysmem allocator. Updated by Lapis
# (using the sysmem inspect data) once every 5 minutes.
################################################################################
- id: 105
metric_name: memory_usage_migrated
metric_type: INTEGER
metric_semantics: [MEMORY_USAGE]
metric_units: BYTES
metric_dimensions:
- dimension: allocator
event_codes: *allocator_event_codes
reports:
# This report gives the max memory usage on a device each week. This can
# miss transient spikes in memory usage.
- report_name: memory_usage_max_per_device
id: 1
report_type: UNIQUE_DEVICE_NUMERIC_STATS
local_aggregation_procedure: MAX_PROCEDURE
# Seven days is a bit arbitrary, but for now we can assume the device
# will hit its maximum memory usage within that amount of time.
local_aggregation_period: WINDOW_7_DAYS
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
# Raw histogram of the memory usage on a device.
- report_name: memory_usage_histogram
id: 2
report_type: FLEETWIDE_HISTOGRAMS
int_buckets:
linear: *linear_buckets
privacy_level: NO_ADDED_PRIVACY
privacy_mechanism: DE_IDENTIFICATION
system_profile_field: [BOARD_NAME, PRODUCT_NAME, SYSTEM_VERSION, CHANNEL]
meta_data:
max_release_stage: GA
expiration_date: "2023/07/01"
# Deleted metric IDs that must not be reused.
deleted_metric_ids: [1,2,3,4,5]