blob: 48557d1dd2f4efb077be67399c65bf5d34ebf0d9 [file] [log] [blame] [edit]
<!-- Structured metrics is under development and isn't available for use yet. -->
<structured-metrics>
<project name="Bluetooth">
<owner>chromeos-bt-kpi@google.com</owner>
<id>per-project</id>
<summary>
Project for recording bluetooth metrics.
</summary>
<event name="BluetoothAdapterStateChanged">
<summary>
Records the toggle of the adapter.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="IsFloss" type="int">
<summary>
Boolean indicating if the Bluetooth is using Floss.
</summary>
</metric>
<metric name="AdapterState" type="int">
<summary>
The state of the bluetooth adapter, 0 for disabled and 1 for enabled.
</summary>
</metric>
</event>
<event name="BluetoothPairingStateChanged">
<summary>
Records the device pairing state change.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="DeviceType" type="int">
<summary>
The bluetooth device type such as LE, BREDR.
</summary>
</metric>
<metric name="PairingState" type="int">
<summary>
The state of the pairing.
</summary>
</metric>
</event>
<event name="BluetoothAclConnectionStateChanged">
<summary>
Records the ACL connection state change.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="IsFloss" type="int">
<summary>
Boolean indicating if the Bluetooth is using Floss.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="DeviceType" type="int">
<summary>
The bluetooth device type such as LE, BREDR.
</summary>
</metric>
<metric name="ConnectionDirection" type="int">
<summary>
Whether it is an incoming or outgoing connection.
</summary>
</metric>
<metric name="ConnectionInitiator" type="int">
<summary>
Whether the connection is established by clients or system.
</summary>
</metric>
<metric name="StateChangeType" type="int">
<summary>
Whether it is a connection or disconnection state change.
</summary>
</metric>
<metric name="AclConnectionState" type="int">
<summary>
The state of the connection.
</summary>
</metric>
</event>
<event name="BluetoothProfileConnectionStateChanged">
<summary>
Records the profile connection state change.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="StateChangeType" type="int">
<summary>
Whether it is a connection or disconnection state change.
</summary>
</metric>
<metric name="Profile" type="int">
<summary>
The bluetooth profile.
</summary>
</metric>
<metric name="ProfileConnectionState" type="int">
<summary>
The state of the profile connection.
</summary>
</metric>
</event>
<event name="BluetoothDeviceInfoReport">
<summary>
Records the bluetooth device info.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="DeviceType" type="int">
<summary>
The bluetooth device type such as LE, BREDR.
</summary>
</metric>
<metric name="DeviceClass" type="int">
<summary>
The major class of the BR/EDR device.
</summary>
</metric>
<metric name="DeviceCategory" type="int">
<summary>
The category of the BLE device.
</summary>
</metric>
<metric name="VendorId" type="int">
<summary>
The vendor id of the bluetooth device.
</summary>
</metric>
<metric name="VendorIdSource" type="int">
<summary>
The vendor id source such as SIG and USB.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
The product id of the bluetooth device.
</summary>
</metric>
<metric name="ProductVersion" type="int">
<summary>
The product version of the bluetooth device.
</summary>
</metric>
</event>
<event name="BluetoothAudioQualityReport">
<summary>
Records the quality of audio connection.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="Profile" type="int">
<summary>
The bluetooth profile.
</summary>
</metric>
<metric name="QualityType" type="int">
<summary>
The type of measured indicator, e.g. RSSI, NAK_Count, No_Rx_Count.
</summary>
</metric>
<metric name="Average" type="int">
<summary>
The average value of the parameter.
</summary>
</metric>
<metric name="StdDev" type="int">
<summary>
The standard deviation value of the parameter.
</summary>
</metric>
<metric name="Percentile95" type="int">
<summary>
The 95th percentile value of the parameter.
</summary>
</metric>
</event>
<event name="BluetoothChipsetInfoReport">
<summary>
Records the bluetooth chipset info.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="VendorId" type="int">
<summary>
The vendor id of the bluetooth controller.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
The product id of the bluetooth controller.
</summary>
</metric>
<metric name="Transport" type="int">
<summary>
Which transport the bluetooth controller uses.
</summary>
</metric>
<metric name="ChipsetStringHashValue" type="int">
<summary>
The first 8 bytes of SHA-256 of modalias of the bluetooth controller.
</summary>
</metric>
</event>
<event name="BluetoothA2dpAudioOverrun">
<summary>
Records the A2DP overrun event.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="EncodingInterval" type="int">
<summary>
A2DP packet encoding interval in milliseconds.
</summary>
</metric>
<metric name="DroppedBuffers" type="int">
<summary>
Number of encoded buffers dropped from Tx queue.
</summary>
</metric>
<metric name="DroppedFrames" type="int">
<summary>
Number of encoded frames dropped from Tx queue.
</summary>
</metric>
<metric name="DroppedBytes" type="int">
<summary>
Number of encoded bytes dropped from Tx queue.
</summary>
</metric>
</event>
<event name="BluetoothHfpPacketLoss">
<summary>
Records the Hfp packet loss.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="DeviceId" type="hmac-string">
<summary>
The bluetooth device id.
</summary>
</metric>
<metric name="DecodedFrames" type="int">
<summary>
The number of decoded frames.
</summary>
</metric>
<metric name="PacketLossRatio" type="double">
<summary>
The ratio of lost frames.
</summary>
</metric>
</event>
</project>
<project name="BluetoothDevice">
<owner>chromeos-bt-kpi@google.com</owner>
<id>none</id>
<summary>
Project for recording Bluetooth device information separately from the main
Bluetooth project to meet privacy constraints.
</summary>
<event name="BluetoothDeviceInfo">
<summary>
Records the bluetooth device info.
</summary>
<metric name="DeviceType" type="int">
<summary>
The bluetooth device type such as LE, BREDR.
</summary>
</metric>
<metric name="DeviceClass" type="int">
<summary>
The major class of the BR/EDR device.
</summary>
</metric>
<metric name="DeviceCategory" type="int">
<summary>
The category of the BLE device.
</summary>
</metric>
<metric name="VendorId" type="int">
<summary>
The vendor id of the bluetooth device.
</summary>
</metric>
<metric name="VendorIdSource" type="int">
<summary>
The vendor id source such as SIG and USB.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
The product id of the bluetooth device.
</summary>
</metric>
<metric name="ProductVersion" type="int">
<summary>
The product version of the bluetooth device.
</summary>
</metric>
</event>
</project>
<project name="BluetoothChipset">
<owner>chromeos-bt-kpi@google.com</owner>
<id>none</id>
<summary>
Project for recording Bluetooth chipset information separately from the
main Bluetooth project to meet privacy constraints.
</summary>
<event name="BluetoothChipsetInfo">
<summary>
Records the bluetooth chipset info.
</summary>
<metric name="VendorId" type="int">
<summary>
The vendor id of the bluetooth controller.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
The product id of the bluetooth controller.
</summary>
</metric>
<metric name="Transport" type="int">
<summary>
Which transport the bluetooth controller uses.
</summary>
</metric>
<metric name="ChipsetString" type="raw-string">
<summary>
The modalias of the bluetooth controller.
</summary>
</metric>
</event>
</project>
<project name="HardwareVerifier">
<owner>kevinptt@chromium.org</owner>
<id>per-project</id>
<summary>
Project for hardware_verifier to record HardwareVerifier metrics.
hardware_verifier is run once per boot.
</summary>
<event name="HwVerificationReport">
<summary>
Record a verification report once hardware_verifier runs. The event will
be sent once per run.
</summary>
<metric name="IsCompliant" type="int">
<summary>
The qualification status of components that are probed by
hardware_verifier.
</summary>
</metric>
<metric name="QualificationStatusDisplayPanel" type="int">
<summary>The qualification status of display_panel components.</summary>
</metric>
<metric name="QualificationStatusStorage" type="int">
<summary>The qualification status of storage components.</summary>
</metric>
</event>
<event name="ComponentInfo">
<summary>
Record a hardware component on devices probed by hardware_verifier.
The event will be sent several times per run, depending on how many
hardware components are probed. Since we only record display currently,
there are usually 1~2 events. If we extend structured metrics to more
hardware categories, e.g. battery, memory, storage, network, it would be
about 10 events per run.
</summary>
<metric name="ComponentCategory" type="int">
<summary>The category of the recorded component.</summary>
</metric>
<metric name="DisplayPanelVendor" type="int">
<summary>The vendor of the display panel.</summary>
</metric>
<metric name="DisplayPanelProductId" type="int">
<summary>The product ID of the display panel.</summary>
</metric>
<metric name="DisplayPanelHeight" type="int">
<summary>The height of the display panel.</summary>
</metric>
<metric name="DisplayPanelWidth" type="int">
<summary>The width of the display panel.</summary>
</metric>
<metric name="StorageMmcManfid" type="int">
<summary>The manfid of the MMC storage.</summary>
</metric>
<metric name="StorageMmcHwrev" type="int">
<summary>The hwrev of the MMC storage.</summary>
</metric>
<metric name="StorageMmcOemid" type="int">
<summary>The oemid of the MMC storage.</summary>
</metric>
<metric name="StorageMmcPrv" type="int">
<summary>The prv of the MMC storage.</summary>
</metric>
<metric name="StoragePciVendor" type="int">
<summary>The vendor of the PCI (NVMe) storage.</summary>
</metric>
<metric name="StoragePciDevice" type="int">
<summary>The device ID of the PCI (NVMe) storage.</summary>
</metric>
<metric name="StoragePciClass" type="int">
<summary>The device class of the PCI (NVMe) storage.</summary>
</metric>
</event>
</project>
<project name="Cellular">
<owner>andrewlassalle@chromium.org</owner>
<owner>ejcaruso@chromium.org</owner>
<id>per-project</id>
<summary>
Project for recording Cellular metrics.
</summary>
<event name="CellularConnectionAttempt">
<summary>
Records information of the last cellular connection attempt. An entry is
logged inmediately after the cellular connection fails or succeeds.
</summary>
<metric name="apn_id" type="int">
<summary>
The ID of the APN used to establish the connection. This ID is a hash
of the string uuid+apn_name+username+password.
</summary>
</metric>
<metric name="ipv4_config_method" type="int">
<summary>
The IPv4 config method(see IPConfig::Method) provided by the carrier.
</summary>
</metric>
<metric name="ipv6_config_method" type="int">
<summary>
The IPv6 config method(see IPConfig::Method) provided by the carrier.
</summary>
</metric>
<metric name="connect_result" type="int">
<summary>
The result of the connection. This uses the same values as the metric
Network.Shill.Cellular.ConnectResult.
</summary>
</metric>
<metric name="home_mccmnc" type="int">
<summary>
The MCCMNC of the home provider.
</summary>
</metric>
<metric name="serving_mccmnc" type="int">
<summary>
The MCCMNC of the serving provider.
</summary>
</metric>
<metric name="roaming_state" type="int">
<summary>
Indicates if the device is roaming.
</summary>
</metric>
<metric name="apn_types" type="int">
<summary>
Indicates the APN types supported by the current APN. This field will
represent the bitmask of combination of APN types. Below are the
supported values:
DEFAULT = 1
IA = 2
DUN = 4
</summary>
</metric>
<metric name="apn_source" type="int">
<summary>
Indicates the source of the APN. Options are: MODB == 0 , UI == 1,
MODEM == 2.
</summary>
</metric>
<metric name="tech_used" type="int">
<summary>
Indicates the technologies in use for the connect attempt.
Value is a bitmask, allowing multiple simultaneous technologies, for
instance for proper 5G-NSA reporting. Values are defined by the
MMModemAccessTechnology enum in ModemManager[1].
[1] freedesktop.org/software/ModemManager/api/latest/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology
</summary>
</metric>
<metric name="iccid_length" type="int">
<summary>
Indicates the length of ICCID used.
</summary>
</metric>
<metric name="sim_type" type="int">
<summary>
Indicates the type of SIM used. pSIM or eSIM.
Options are Unknown == 0 , pSIM == 1 , eSIM == 2.
</summary>
</metric>
<metric name="modem_state" type="int">
<summary>
Indicates the modem state at the time of connection.
Options are: Failed == -1 , Unknown == 0 ,
Initializing == 1 , Locked == 2 , Disabled == 3 ,
Disabling == 4 , Enabling == 5 , Enabled == 6 ,
Searching == 7 , Registered == 8 , Disconnecting == 9 ,
Connecting == 10 , Connected == 11.
</summary>
</metric>
<metric name="connect_time" type="int">
<summary>
Indicates the time in milliseconds, it took to connect to
the cellular network.
</summary>
</metric>
<metric name="scan_connect_time" type="int">
<summary>
Indicates the time in milliseconds, it took to scan and
connect to the cellular network.
</summary>
</metric>
<metric name="detailed_error" type="int">
<summary>
Indicates more granular and precise error, reported by
modem manager, libmbim, libqmi etc.
</summary>
</metric>
<metric name="gid1" type="int">
<summary>
The contents of the GID1 file in the SIM card, limited to the
first 8 bytes.
</summary>
</metric>
<metric name="use_apn_revamp_ui" type="int">
<summary>
Indicates if the new APN revamp UI is being used.
</summary>
</metric>
<metric name="connection_attempt_type" type="int">
<summary>
Indicates the way the connection attempt was triggered.
Options are Unknown == 0 , UserConnect == 1 , AutoConnect == 2.
</summary>
</metric>
<metric name="subscription_error_seen" type="int">
<summary>
Indicates if modem has earlier reported subscription error for
this card.
</summary>
</metric>
</event>
<event name="ModemFwdFwInstallResult">
<summary>
Records information about the firmware installation
operation performed by modemfwd. This includes details
of firmware types which were installed by the modemfwd
and information about the result of the firmware install operation.
In case fimmware install operation fails and modem helpers are
able to provide detailed error codes about reason of failure, they
will also be included as part of this event.
</summary>
<metric name="firmware_types" type="int">
<summary>
Indicates the set of firmware types modemfwd was trying to
install. Modemfwd could install multiple types of firmware
together based on the current status of the modem. This field
will represent the bitmask of combination of firmware types
being installed.Check ModemFirmwareType in modemfwd/metrics.h
for possible firmware types.
</summary>
</metric>
<metric name="fw_install_result" type="int">
<summary>
Indicates the result of firmware install operation.
Check FwInstallResult in modemfwd/metrics.h for list
of possible values.
</summary>
</metric>
</event>
<event name="HermesOp">
<summary>
Records information about eSIM operations
</summary>
<metric name="Operation" type="int">
<summary>
Indicates the eSIM operation being performed.
</summary>
</metric>
<metric name="Result" type="int">
<summary>
Indicates the result of the eSIM operation. See
hermes/lpa_util.cc for list of values.
</summary>
</metric>
<metric name="home_mccmnc" type="int">
<summary>
Indicates the mccmnc of the profile on which the eSIM operation was
performed.
</summary>
</metric>
</event>
</project>
<project name="rmad">
<owner>genechang@google.com</owner>
<id>per-project</id>
<summary>
Project for rmad to record Shimless RMA metrics. The metrics of the whole
RMA procedure are only recorded once after it is completed or aborted.
Note: this project skips the platform2-side UMA consent check for technical
reasons, and relies on the chromium-side consent check instead.
</summary>
<event name="ShimlessRmaReport">
<summary>
Record a shimless rma report once it is completed or aborted.
</summary>
<metric name="OverallTime" type="double">
<summary>Overall time spent to complete the whole process in seconds.</summary>
</metric>
<metric name="RunningTime" type="double">
<summary>Time spent with RMA daemon running in seconds.</summary>
</metric>
<metric name="IsComplete" type="int">
<summary>
Invocation of Shimless RMA:
1: RMA is complete, 0: RMA is aborted.
</summary>
</metric>
<metric name="RoVerificationStatus" type="int">
<summary>
RO verification of Shimless RMA:
0: Shimless RMA runs with unknown RO verification status.
1: Shimless RMA runs with RO verification successful.
2: Shimless RMA runs with RO verification unsupported. This should
not happen because it's already deprecated.
3: RO verification is not triggered. This should not happen because
Shimless RMA would not run.
4: RO verification fails. This should not happen because the DUT
would not boot.
5: RO verification is unsupported and not triggered. This should not
happen because Shimless RMA would not run.
6: Shimless RMA runs with RO verification unsupported but triggered.
</summary>
</metric>
<metric name="ReturningOwner" type="int">
<summary>
Destination of Shimless RMA:
0: Shimless RMA haven't known the returning owner yet
1: Shimless RMA run with the device returning to the same owner
2: Shimless RMA run with the device returning to a different owner
</summary>
</metric>
<metric name="MainboardReplacement" type="int">
<summary>
Replacement MLB of Shimless RMA:
0: Shimless RMA haven't known the mainboard replacement status
1: Shimless RMA run with a replaced MLB
2: Shimless RMA run with the original MLB
</summary>
</metric>
<metric name="WriteProtectDisableMethod" type="int">
<summary>
Write protection disable status of Shimless RMA:
0: Shimless RMA haven't known the write-protect status
1: Shimless RMA skip disabling write-protect
2: Shimless RMA run with write-protect being disabled via RSU
3: Shimless RMA run with write-protect being manually disabled with
immediate re-enablement
4: Shimless RMA run with write-protect being manually disabled and
keep the device open
</summary>
</metric>
</event>
<event name="ReplacedComponent">
<summary>
Record a component replaced in Shimless RMA. The event will be sent
several times per run, depending on how many components are replaced.
</summary>
<metric name="ComponentCategory" type="int">
<summary>
The category of the recorded component.
Enum for components defined in rmad.proto.
</summary>
</metric>
</event>
<event name="OccurredError">
<summary>Shimless RMA run with triggering of Error XYZ.</summary>
<metric name="ErrorType" type="int">
<summary>
The type of the recorded error.
Enum for errors defined in rmad.proto.
</summary>
</metric>
</event>
<event name="AdditionalActivity">
<summary>
Shimless RMA completed and an additional activity undertaken.
</summary>
<metric name="ActivityType" type="int">
<summary>
1: shutdown
2: reboot
3: battery cutoff
4: diagnostics
</summary>
</metric>
</event>
<event name="ShimlessRmaStateReport">
<summary>
For each state. record a shimless rma state report once whole
process is completed or aborted.
</summary>
<metric name="StateCase" type="int">
<summary>
Please refer to the RmadState of rmad.proto for more info.
</summary>
</metric>
<metric name="IsAborted" type="int">
<summary>
0: Abort is not called in the state.
1: Abort is called in the state.
</summary>
</metric>
<metric name="OverallTime" type="double">
<summary>Overall time spent to complete the state in seconds.</summary>
</metric>
<metric name="TransitionCount" type="int">
<summary>How many transitions were taken in the state.</summary>
</metric>
<metric name="GetLogCount" type="int">
<summary>How many get log were taken in the state.</summary>
</metric>
<metric name="SaveLogCount" type="int">
<summary>How many save log were taken in the state.</summary>
</metric>
</event>
</project>
<project name="UsbDevice">
<owner>wonchung@google.com</owner>
<owner>chromeos-usb@google.com</owner>
<id>none</id>
<summary>
Project for recording basic USB device information that meets privacy constraints.
</summary>
<event name="UsbDeviceInfo">
<summary>
Records the USB device info.
</summary>
<metric name="VendorId" type="int">
<summary>
The vendor id of the USB device.
</summary>
</metric>
<metric name="VendorName" type="raw-string">
<summary>
The vendor name of the USB device.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
The product id of the USB device.
</summary>
</metric>
<metric name="ProductName" type="raw-string">
<summary>
The product name of the USB device.
</summary>
</metric>
<metric name="DeviceClass" type="int">
<summary>
The device class of the USB device.
</summary>
</metric>
</event>
</project>
<project name="UsbError">
<owner>jthies@google.com</owner>
<owner>chromeos-usb@google.com</owner>
<id>none</id>
<summary>
Project to record metrics on errors returned by notable kernel driver
functions.
</summary>
<event name="HubError">
<summary>
Records error uevent sent by the Hub driver.
</summary>
<metric name="ErrorCode" type="int">
<summary>
Linux kernel error code returned by function which sent the uevent.
</summary>
</metric>
<metric name="DeviceClass" type="int">
<summary>
The device class of the USB device which sent the uevent.
</summary>
</metric>
<metric name="VendorId" type="int">
<summary>
The vendor ID of the USB device which sent the uevent. This is filtered
through an allow list to only record vendor ID for popular devices.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
The product ID of the USB device which sent the uevent. This is filtered
through an allow list to only record product ID for popular devices.
</summary>
</metric>
<metric name="DevicePath" type="raw-string">
<summary>
The device path of the usb device which sent the uevent, this value is
taken from the devpath file in the device's sysfs directory.
</summary>
</metric>
<metric name="ConnectedDuration" type="int">
<summary>
Time, in milliseconds, that the USB device has been connected.
</summary>
</metric>
</event>
<event name="XhciError">
<summary>
Records error uevent sent by the xHCI driver.
</summary>
<metric name="ErrorCode" type="int">
<summary>
Linux kernel error code returned by function which sent the uevent.
</summary>
</metric>
<metric name="DeviceClass" type="int">
<summary>
The device class of the kernel device which sent the error uevent.
</summary>
</metric>
</event>
</project>
<project name="WiFiChipset">
<owner>druth@google.com</owner>
<owner>matthewmwang@chromium.org</owner>
<owner>norvez@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<id>none</id>
<summary>
Information about the WiFi adapter present on the system. Different
project from the main "WiFi" project to meet privacy requirements.
</summary>
<event name="WiFiChipsetInfo">
<summary>
Records which chipset is installed on the system.
</summary>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="VendorId" type="int">
<summary>
Manufacturer ID of the WiFi adapter.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
Product ID of the WiFi adapter.
</summary>
</metric>
<metric name="SubsystemId" type="int">
<summary>
Subsystem ID of the WiFi adapter.
</summary>
</metric>
</event>
</project>
<project name="WiFiAP">
<owner>druth@google.com</owner>
<owner>matthewmwang@chromium.org</owner>
<owner>norvez@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<id>none</id>
<summary>
Information (e.g. OUI) about the AP we're connected to. Different project
from the main "WiFi" project to meet privacy requirements.
</summary>
<event name="WiFiAPInfo">
<summary>
Records information about the AP the device is attempting to connect to.
</summary>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="APOUI" type="int">
<summary>
OUI of the AP we're connecting to.
</summary>
</metric>
</event>
</project>
<project name="WiFi">
<owner>druth@google.com</owner>
<owner>matthewmwang@chromium.org</owner>
<owner>norvez@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<id>per-project</id>
<summary>
WiFi health metrics.
</summary>
<event name="WiFiAdapterStateChanged">
<summary>
Records when the adapter is enabled/disabled.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="AdapterState" type="int">
<summary>
The state of the WiFi adapter, 0 for disabled and 1 for enabled.
</summary>
</metric>
<metric name="VendorId" type="int">
<summary>
Manufacturer ID of the WiFi adapter.
</summary>
</metric>
<metric name="ProductId" type="int">
<summary>
Product ID of the WiFi adapter.
</summary>
</metric>
<metric name="SubsystemId" type="int">
<summary>
Subsystem ID of the WiFi adapter.
</summary>
</metric>
</event>
<event name="WiFiConnectionAttempt">
<summary>
Device starts to try to connect to a particular AP.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="SessionTag" type="int">
<summary>
A SessionTag links a WiFiConnectionAttempt, WiFiConnectionAttemptResult
and WiFiConnectionEnd that correspond to the same connection.
</summary>
</metric>
<metric name="AttemptType" type="int">
<summary>
Type of connection attempt (e.g. autoconnect, manual connect, ...)
</summary>
</metric>
<metric name="APPhyMode" type="int">
<summary>
Enum |WiFiNetworkPhyMode| reporting if we are connecting to 802.11n,
802.11ac, 802.11ax, etc.
</summary>
</metric>
<metric name="APSecurityMode" type="int">
<summary>
Enum |WiFiSecurity| reporting the security mode: Open? WEP? WPA? 802.1X?
</summary>
</metric>
<metric name="APSecurityEAPInnerProtocol" type="int">
<summary>
Enum |EapInnerProtocol| reporting the EAP inner protocol for 802.1X.
</summary>
</metric>
<metric name="APSecurityEAPOuterProtocol" type="int">
<summary>
Enum |EapOuterProtocol| reporting the EAP outer protocol for 802.1X.
</summary>
</metric>
<metric name="APBand" type="int">
<summary>
Enum |WiFiFrequencyRange| reporting the band we're connecting to:
2.4GHz, 5GHz, 6GHz.
</summary>
</metric>
<metric name="APChannel" type="int">
<summary>
Enum |WiFiChannel| describing the frequency of the channel we're
connecting on.
</summary>
</metric>
<metric name="RSSI" type="int">
<summary>
RSSI of the AP we're trying to connect to.
</summary>
</metric>
<metric name="SSID" type="hmac-string">
<summary>
Pseudonymized SSID that we're connecting to.
</summary>
</metric>
<metric name="SSIDProvisioningMode" type="int">
<summary>
Enum describing how the SSID was provisioned. Was it configured through
policy? Was it manually added? Was it synced?
</summary>
</metric>
<metric name="SSIDHidden" type="int">
<summary>
Set to 1 if we're connecting to a hidden SSID, 0 otherwise.
</summary>
</metric>
<metric name="BSSID" type="hmac-string">
<summary>
Pseudonymized BSSID that we're connecting to.
</summary>
</metric>
<metric name="APOUI" type="int">
<summary>
OUI of the AP. The 24 least significant bits contain the OUI.
</summary>
</metric>
<metric name="AP_80211krv_NLSSupport" type="int">
<summary>
Boolean indicating if the AP supports 802.11k/r/v neighbour lists or
not. Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_80211krv_OTA_FTSupport" type="int">
<summary>
Boolean indicating if the AP supports 802.11k/r/v Fast Transition
Over The Air or not. Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_80211krv_OTDS_FTSupport" type="int">
<summary>
Boolean indicating if the AP supports 802.11k/r/v Fast Transition
Over The DS or not. Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_80211krv_DMSSupport" type="int">
<summary>
Boolean indicating if the AP supports 802.11k/r/v DMS or not.
Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_80211krv_BSSMaxIdleSupport" type="int">
<summary>
Boolean indicating if the AP supports 802.11k/r/v BSS Max Idle period
feature or not. Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_80211krv_BSSTMSupport" type="int">
<summary>
Boolean indicating if the AP supports 802.11k/r/v BSS Transition
Management or not. Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_HS20Support" type="int">
<summary>
Boolean indicating if the AP supports Hotspot 2.0 (aka Passpoint) or
not. Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_HS20Version" type="int">
<summary>
Version of the Hotspot 2.0 (aka Passpoint) support.
Set to -1 if detection failed.
</summary>
</metric>
<metric name="AP_MBOSupport" type="int">
<summary>
Boolean indicating if the AP supports MBO or not.
Set to -1 if detection failed.
</summary>
</metric>
</event>
<event name="WiFiConnectionAttemptResult">
<summary>
Report if the connection attempt succeeded or not and the reason if not.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="SessionTag" type="int">
<summary>
A SessionTag links a WiFiConnectionAttempt, WiFiConnectionAttemptResult
and WiFiConnectionEnd that correspond to the same connection.
</summary>
</metric>
<metric name="ResultCode" type="int">
<summary>
Enum |NetworkServiceError| reporting the status of the connection
attempt.
Reports the error code (e.g. "too-many-stas") if the connection attempt
failed.
Reports 0 (NetworkServiceError::kNetworkServiceErrorNone) if the
connection attempt succeeded.
</summary>
</metric>
</event>
<event name="WiFiIPConnectivityStatus">
<summary>
WiFi link is up, report if the device is fully IP provisioned or if there
are still IP connectivity failures (e.g. failed to get an IP address).
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="IPConnectivityStatus" type="int">
<summary>
Enum reporting the connectivity status (Connection OK, DHCP issues, ...)
</summary>
</metric>
<metric name="IPConnectivityType" type="int">
<summary>
Enum |NetworkConnectionIPType| reporting the type of connectivity (IPv4
or IPv6).
</summary>
</metric>
</event>
<event name="WiFiPortalDetectionStatus">
<summary>
IP connectivity is up, report the state of captive portal detection.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="PortalDetectionStatus" type="int">
<summary>
Enum |PortalResult| reporting the status of the detection of the captive
portal.
</summary>
</metric>
</event>
<event name="WiFiConnectionEnd">
<summary>
Report when the device disconnects or is disconnected from the AP.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="SessionTag" type="int">
<summary>
A SessionTag links a WiFiConnectionAttempt, WiFiConnectionAttemptResult
and WiFiConnectionEnd that correspond to the same connection.
</summary>
</metric>
<metric name="DisconnectionType" type="int">
<summary>
Log what type of disconnection happened:
- expected because of suspend or poweroff
- expected because of roaming
- unexpected because the AP disconnected the device
- unexpected because the device no longer hears the AP
- etc
</summary>
</metric>
<metric name="DisconnectionReasonCode" type="int">
<summary>
Enum |WiFiReasonCode| to report the reason there was an unexpected
disconnection.
</summary>
</metric>
</event>
<event name="WiFiLinkQualityTrigger">
<summary>
Report when shill or wpa_supplicant requests a Link Quality Report from
the firmware/driver. It can happen when the kernel has notified userspace
that the wireless link may be having issues (e.g. low RSSI, beacon or
packet loss, IP-level failures...) or when userspace simply wants to
monitor the quality of the link periodically.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="SessionTag" type="int">
<summary>
A SessionTag links a WiFiConnectionAttempt, WiFiConnectionAttemptResult
and WiFiConnectionEnd that correspond to the same connection.
</summary>
</metric>
<metric name="Type" type="int">
<summary>
Enum |WiFiLinkQualityTrigger| to report what type of event triggered a
Link Quality Report:
- CQM event
- IP level failure
- Periodic polling
- ...
</summary>
</metric>
</event>
<event name="WiFiLinkQualityReport">
<summary>
Report statistics about the WiFi link (e.g. bitrate, TX retransmit rates)
that can be used to diagnose if the wireless link is “good” or “bad”.
Most metrics are defined in nl80211_sta_info and nl80211_rate_info,
or derived from some of those attributes.
</summary>
<metric name="BootId" type="hmac-string">
<summary>
Random ID generated at boot time to detect reboots.
</summary>
</metric>
<metric name="SystemTime" type="int">
<summary>
The time elapsed since boot, in microseconds.
</summary>
</metric>
<metric name="EventVersion" type="int">
<summary>
Integer version number that indicates the format of the event.
Used by the event processor to know which metric is available in a
particular event.
v0: unknown (should not happen)
v1: initial version
</summary>
</metric>
<metric name="SessionTag" type="int">
<summary>
A SessionTag links a WiFiConnectionAttempt, WiFiConnectionAttemptResult
and WiFiConnectionEnd that correspond to the same connection.
</summary>
</metric>
<metric name="RXPackets" type="int">
<summary>
Number of packets received (NL80211_STA_INFO_RX_PACKETS).
</summary>
</metric>
<metric name="RXBytes" type="int">
<summary>
Number of bytes received (NL80211_STA_INFO_RX_BYTES).
</summary>
</metric>
<metric name="TXPackets" type="int">
<summary>
Number of packets transmitted (NL80211_STA_INFO_TX_PACKETS).
</summary>
</metric>
<metric name="TXBytes" type="int">
<summary>
Number of bytes transmitted (NL80211_STA_INFO_TX_BYTES).
</summary>
</metric>
<metric name="TXRetries" type="int">
<summary>
Number of TX retransmissions (NL80211_STA_INFO_TX_RETRIES).
</summary>
</metric>
<metric name="TXFailures" type="int">
<summary>
Number of TX failures (NL80211_STA_INFO_TX_FAILED).
</summary>
</metric>
<metric name="RXDrops" type="int">
<summary>
Number of RX packets dropped (NL80211_STA_INFO_RX_DROP_MISC).
</summary>
</metric>
<metric name="Chain0Signal" type="int">
<summary>
Signal strength of chain 0 (NL80211_STA_INFO_CHAIN_SIGNAL).
</summary>
</metric>
<metric name="Chain0SignalAvg" type="int">
<summary>
Average signal strength (NL80211_STA_INFO_CHAIN_SIGNAL_AVG).
</summary>
</metric>
<metric name="Chain1Signal" type="int">
<summary>
Signal strength of chain 1 (NL80211_STA_INFO_CHAIN_SIGNAL).
</summary>
</metric>
<metric name="Chain1SignalAvg" type="int">
<summary>
Average signal strength (NL80211_STA_INFO_CHAIN_SIGNAL_AVG).
</summary>
</metric>
<metric name="BeaconSignalAvg" type="int">
<summary>
Average signal strength of beacons (NL80211_STA_INFO_BEACON_SIGNAL_AVG).
</summary>
</metric>
<metric name="BeaconsReceived" type="int">
<summary>
Number of beacons received (NL80211_STA_INFO_BEACON_RX).
</summary>
</metric>
<metric name="BeaconsLost" type="int">
<summary>
Number of beacons lost (NL80211_STA_INFO_BEACON_LOSS).
</summary>
</metric>
<metric name="ExpectedThroughput" type="int">
<summary>
Expected throughput (NL80211_STA_EXPECTED_THROUGHPUT).
</summary>
</metric>
<metric name="RXRate" type="int">
<summary>
RX bitrate in 100Kb/s units (NL80211_RATE_INFO_BITRATE32).
</summary>
</metric>
<metric name="RXMCS" type="int">
<summary>
RX MCS index.
nl80211: NL80211_RATE_INFO_MCS, NL80211_RATE_INFO_VHT_MCS,
NL80211_RATE_INFO_HE_MCS, NL80211_RATE_INFO_EHT_MCS
</summary>
</metric>
<metric name="RXChannelWidth" type="int">
<summary>
Bandwidth of the channel (20MHz, 40MHz, etc.)
nl80211: NL80211_ATTR_CHANNEL_WIDTH
shill: WiFiChannelWidth enum
</summary>
</metric>
<metric name="RXMode" type="int">
<summary>
Is the link in HT, VHT, HE, EHT mode?
nl80211: NL80211_RATE_INFO_VHT_*, NL80211_RATE_INFO_HE_*,
NL80211_RATE_INFO_EHT_*
shill: WiFiLinkStatsMode enum
</summary>
</metric>
<metric name="RXGuardInterval" type="int">
<summary>
Is the guard interval 400ns, 800ns, 1.6us or 3.2 us?
nl80211: NL80211_RATE_INFO_SHORT_GI, NL80211_RATE_INFO_HE_GI
shill: WiFiLinkStatsGI enum
</summary>
</metric>
<metric name="RXNSS" type="int">
<summary>
RX NSS, number of spatial streams.
nl80211: NL80211_RATE_INFO_VHT_NSS, NL80211_RATE_INFO_HE_NSS
</summary>
</metric>
<metric name="RXDCM" type="int">
<summary>
RX HE DCM, dual carrier modulation (NL80211_RATE_INFO_HE_DCM).
</summary>
</metric>
<metric name="TXRate" type="int">
<summary>
TX bitrate in 100Kb/s units (NL80211_RATE_INFO_BITRATE32).
</summary>
</metric>
<metric name="TXMCS" type="int">
<summary>
TX MCS index.
nl80211: NL80211_RATE_INFO_MCS, NL80211_RATE_INFO_VHT_MCS,
NL80211_RATE_INFO_HE_MCS, NL80211_RATE_INFO_EHT_MCS
</summary>
</metric>
<metric name="TXChannelWidth" type="int">
<summary>
Bandwidth of the channel (20MHz, 40MHz, etc.). Identical to
RXChannelWidth, kept for compatibility reasons.
nl80211: NL80211_ATTR_CHANNEL_WIDTH
shill: WiFiChannelWidth enum
TODO(b/261499918): when we uprev EventVersion, only keep one of the
redundant fields.
</summary>
</metric>
<metric name="TXMode" type="int">
<summary>
Is the link in HT, VHT, HE, EHT mode?
nl80211: NL80211_RATE_INFO_VHT_*, NL80211_RATE_INFO_HE_*,
NL80211_RATE_INFO_EHT_*
shill: WiFiLinkStatsMode enum
</summary>
</metric>
<metric name="TXGuardInterval" type="int">
<summary>
Is the guard interval 400ns, 800ns, 1.6us or 3.2 us?
nl80211: NL80211_RATE_INFO_SHORT_GI, NL80211_RATE_INFO_HE_GI
shill: WiFiLinkStatsGI enum
</summary>
</metric>
<metric name="TXNSS" type="int">
<summary>
TX NSS, number of spatial streams.
nl80211: NL80211_RATE_INFO_VHT_NSS, NL80211_RATE_INFO_HE_NSS
</summary>
</metric>
<metric name="TXDCM" type="int">
<summary>
TX HE DCM, dual carrier modulation (NL80211_RATE_INFO_HE_DCM).
</summary>
</metric>
<metric name="BTEnabled" type="int">
<summary>
Boolean. Is Bluetooth enabled?
</summary>
</metric>
<metric name="BTStack" type="int">
<summary>
Enum describing which BT stack (BlueZ, Floss, ...) is in use.
shill: Metrics::BTStack enum
</summary>
</metric>
<metric name="BTHFP" type="int">
<summary>
Boolean. Is Bluetooth performing HFP?
</summary>
</metric>
<metric name="BTA2DP" type="int">
<summary>
Boolean. Is Bluetooth performing A2DP?
</summary>
</metric>
<metric name="BTActivelyScanning" type="int">
<summary>
Boolean. Is Bluetooth scanning actively?
</summary>
</metric>
</event>
</project>
<project name="TestProjectOne">
<owner>tby@chromium.org</owner>
<id>none</id>
<summary>
Project for unit testing, do not use.
</summary>
<event name="TestEventOne">
<summary>
Event for unit testing, do not use.
</summary>
<metric name="TestMetricOne" type="hmac-string">
<summary>
A per-user keyed hashed value.
</summary>
</metric>
<metric name="TestMetricTwo" type="int">
<summary>
An unhashed value, recorded as-is.
</summary>
</metric>
<metric name="TestMetricThree" type="double">
<summary>
An unhashed double value, recorded as-is.
</summary>
</metric>
</event>
<event name="TestEventTwo">
<summary>
Event for unit testing, do not use.
</summary>
<metric name="TestMetricThree" type="int">
<summary>
A per-user keyed hashed value.
</summary>
</metric>
</event>
</project>
<project name="TestProjectTwo">
<owner>tby@chromium.org</owner>
<id>none</id>
<summary>
Project for unit testing, do not use.
</summary>
<event name="TestEventThree">
<summary>
Event for unit testing, do not use.
</summary>
<metric name="TestMetricFour" type="hmac-string">
<summary>
A per-user keyed hashed value.
</summary>
</metric>
</event>
</project>
</structured-metrics>