blob: 671bc754953f938d45e4d06c544d642ac7e26fc3 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of Bluetooth histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="BluetoothPairedStates">
<variant name=".NotPaired"/>
<variant name=".Paired"/>
</variants>
<variants name="BluetoothTransportTypes">
<variant name=".BLE"/>
<variant name=".Classic"/>
<variant name=".Dual"/>
<variant name=".Invalid"/>
</variants>
<variants name="BlueZDBusMethodName">
<variant name="ConnectDevice"/>
<variant name="DisconnectProfile"/>
<variant name="GetServiceRecords"/>
<variant name="RegisterProfile"/>
<variant name="UnregisterProfile"/>
</variants>
<variants name="DeviceSelectionUISurfaces">
<variant name=".Settings"/>
<variant name=".SystemTray"/>
</variants>
<variants name="UserInitiatedReconnectionUISurfaces">
<variant name=".Settings"/>
<variant name=".SystemTray"/>
</variants>
<histogram name="Bluetooth.BlueZ.DBus.{MethodName}.Latency" units="ms"
expires_after="2023-08-08">
<owner>jonmann@chromium.org</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>Tracks the latency of the BlueZ {MethodName} DBus method.</summary>
<token key="MethodName" variants="BlueZDBusMethodName"/>
</histogram>
<histogram name="Bluetooth.BlueZ.DBus.{MethodName}.Result" enum="DBusResult"
expires_after="2023-08-08">
<owner>jonmann@chromium.org</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>Tracks the result for BlueZ {MethodName} DBus method calls.</summary>
<token key="MethodName" variants="BlueZDBusMethodName"/>
</histogram>
<histogram name="Bluetooth.ChromeOS.DeviceConnected.{ConnectionType}"
enum="BluetoothDeviceType" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records {ConnectionType}. Emitted when any succesful bluetooth device
connection occurs, or when a unique bluetooth device connection per session
is successful.
</summary>
<token key="ConnectionType">
<variant name="AllConnections" summary="all device connections"/>
<variant name="UniqueConnectionsInSession"
summary="unique device connections per session"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.DeviceDisconnect"
enum="BluetoothDeviceType" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>Emitted each time a Bluetooth device is disconnected.</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.DeviceSelectionDuration{DeviceSelectionUISurfaces}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records how long it takes for the user to select a device either after they
open the UI and Bluetooth is on, or after Bluetooth turns on while the UI is
open. {DeviceSelectionUISurfaces}
</summary>
<token key="DeviceSelectionUISurfaces" variants="DeviceSelectionUISurfaces">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.DeviceSelectionDuration{DeviceSelectionUISurfaces}.NotPaired{BluetoothTransportTypes}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records how long it takes for the user to select a device either after they
open the UI and Bluetooth is on, or after Bluetooth turns on while the UI is
open. {DeviceSelectionUISurfaces}{BluetoothTransportTypes}
</summary>
<token key="DeviceSelectionUISurfaces" variants="DeviceSelectionUISurfaces"/>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes"/>
</histogram>
<histogram
name="Bluetooth.ChromeOS.DeviceSelectionDuration{DeviceSelectionUISurfaces}{BluetoothPairedStates}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records how long it takes for the user to select a device either after they
open the UI and Bluetooth is on, or after Bluetooth turns on while the UI is
open. {DeviceSelectionUISurfaces}{BluetoothPairedStates}
</summary>
<token key="DeviceSelectionUISurfaces" variants="DeviceSelectionUISurfaces"/>
<token key="BluetoothPairedStates" variants="BluetoothPairedStates"/>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.AccountKey.Failure.{FastPairPairingProtocol}"
enum="FastPairAccountKeyFailure" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a account key write attempt to a device failed (see
'Bluetooth.ChromeOS.FastPair.AccountKey.Result'). Suffixed by FastPair
pairing protocol type. Emitted on the OnWriteAccountKey event in the Fast
Pair flow.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="RetroactivePairingProtocol"
summary="retroactive pairing protocol"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.AccountKey.Write.GattErrorReason"
enum="BluetoothDeviceConnectErrorCode" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a written attempt to the account-key GATT characteristic of
a device failed if it was a result of a GATT error. Emitted following a
OnWriteRequest error in the FastPairGattServiceClient.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.AccountKey.Write.Result.{FastPairPairingProtocol}"
enum="BooleanSuccess" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of writing an account key to a device. Emitted on
the OnPairFailure event and the OnDevicePaired event in the Fast Pair flow.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="RetroactivePairingProtocol"
summary="retroactive pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.AccountKey.Write.Result.{FastPairPairingProtocol}.{FastPairTrackedModelID}"
enum="BooleanSuccess" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of writing an account key to a device, split per
protocol and per Model ID. Emitted on the OnPairFailure event and the
OnDevicePaired event in the Fast Pair flow.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="RetroactivePairingProtocol"
summary="retroactive pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
<token key="FastPairTrackedModelID">
<variant name="BoatRockerz255Pro"/>
<variant name="BoseQuietComfort35II"/>
<variant name="BoseQuietComfort35II_1"/>
<variant name="JBLLIVE300TWS"/>
<variant name="JBLLIVE300TWS_1"/>
<variant name="JBLLIVE300TWS_2"/>
<variant name="JBLLIVE400BT"/>
<variant name="JBLLIVE400BT_1"/>
<variant name="JBLLIVE400BT_2"/>
<variant name="JBLLIVE400BT_3"/>
<variant name="JBLLIVE400BT_4"/>
<variant name="JBLLIVEPROTWS"/>
<variant name="JBLLIVEPROTWS_1"/>
<variant name="JBLLIVEPROTWS_2"/>
<variant name="JBLLIVEPROTWS_3"/>
<variant name="JBLLIVEPROTWS_4"/>
<variant name="JBLLIVEPROTWS_5"/>
<variant name="JBLLIVEPROTWS_6"/>
<variant name="JBLTUNE125TWS"/>
<variant name="JBLTUNE125TWS_1"/>
<variant name="JBLTUNE125TWS_2"/>
<variant name="JBLTUNE125TWS_3"/>
<variant name="JBLTUNE125TWS_4"/>
<variant name="JBLTUNE125TWS_5"/>
<variant name="JBLTUNE130NCTWS"/>
<variant name="JBLTUNE130NCTWS_1"/>
<variant name="JBLTUNE130NCTWS_2"/>
<variant name="JBLTUNE130NCTWS_3"/>
<variant name="JBLTUNE225TWS"/>
<variant name="JBLTUNE225TWS_1"/>
<variant name="JBLTUNE225TWS_2"/>
<variant name="JBLTUNE225TWS_3"/>
<variant name="JBLTUNE225TWS_4"/>
<variant name="JBLTUNE225TWS_5"/>
<variant name="JBLTUNE230NCTWS_1"/>
<variant name="JBLTUNE230NCTWS_2"/>
<variant name="JBLTUNE230NCTWS_3"/>
<variant name="JBLTUNE230NCTWS_4"/>
<variant name="NothingEar1"/>
<variant name="NothingEar1_2"/>
<variant name="OnePlusBuds"/>
<variant name="OnePlusBuds_1"/>
<variant name="OnePlusBuds_2"/>
<variant name="OnePlusBudsZ"/>
<variant name="OnePlusBudsZ_1"/>
<variant name="OnePlusBudsZ_2"/>
<variant name="Other"/>
<variant name="PixelBuds"/>
<variant name="PixelBudsASeries"/>
<variant name="PixelBudsASeries_1"/>
<variant name="PixelBudsASeries_2"/>
<variant name="PixelBudsPro"/>
<variant name="PixelBudsPro_1"/>
<variant name="PixelBudsPro_2"/>
<variant name="PixelBudsPro_3"/>
<variant name="PixelBudsPro_4"/>
<variant name="RealMeBudsAir2"/>
<variant name="RealMeBudsAir2_1"/>
<variant name="RealMeBudsAir2Neo"/>
<variant name="RealMeBudsAirPro"/>
<variant name="RealMeBudsAirPro_1"/>
<variant name="RealMeBudsAirPro_2"/>
<variant name="RealMeBudsQ2TWS"/>
<variant name="RealMeTechLifeBudsT100"/>
<variant name="RealMeTechLifeBudsT100_1"/>
<variant name="RealMeTechLifeBudsT100_2"/>
<variant name="SonyWF1000XM3"/>
<variant name="SonyWF1000XM3_1"/>
<variant name="SonyWF1000XM3_2"/>
<variant name="SonyWF1000XM3_3"/>
<variant name="SonyWF1000XM3_4"/>
<variant name="SonyWF1000XM3_5"/>
<variant name="SonyWF1000XM3_6"/>
<variant name="SonyWF1000XM3_7"/>
<variant name="SonyWH1000XM3"/>
<variant name="SonyWH1000XM3_1"/>
<variant name="SRSXB13"/>
<variant name="SRSXB13_1"/>
<variant name="SRSXB13_2"/>
<variant name="SRSXB13_3"/>
<variant name="SRSXB13_4"/>
<variant name="SRSXB13_5"/>
<variant name="SRSXB23"/>
<variant name="SRSXB23_1"/>
<variant name="SRSXB23_2"/>
<variant name="SRSXB23_3"/>
<variant name="SRSXB23_4"/>
<variant name="SRSXB33"/>
<variant name="SRSXB33_1"/>
<variant name="SRSXB33_2"/>
<variant name="SRSXB33_3"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.AccountKey.Write.TotalTime"
units="ms" expires_after="2023-09-10">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to write the account key GATT characteristic
of a device. Time is calculated as the difference between when the write to
characteristic occurs and when the OnAccountKeyWrite event is fired in the
GattServiceClient during the pairing protocol. Emitted when the
OnAccountKeyWrite event fires. If the account key write fails, then no value
is logged to this metric.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.ConfirmPasskey.Latency" units="ms"
expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes after being asked to confirm a passkey from
the device for the Chromebook to confirm the passkey. Emitted on a
successful confirmation of the passkey. No metric is emitted on failure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.ConnectDevice.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of connecting to the device after a
successful key exchange. We use ConnectDevice to establish a connection to
the device when we have do not have a BluetoothDevice instance from the
adapter, and instead need to add ourselves as a PairingDelegate. Emitted
when we connect to the device to start the pairing procedure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.CreateScanFilter.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of creating a BLE scan filter, which we use
to scan for Fast Pair devices. Emitted when the scan filter is created.
Creating a scan filter can fail if the provided parameters are invalid.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.DeviceMetadataFetcher.Get.HttpResponseError"
enum="HttpResponseCode" expires_after="2023-09-24">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the HTTP response error code from a failed HTTP GET request. Emitted
when the HTTP call fails. No metric is emitted on success.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.DeviceMetadataFetcher.Get.NetError"
enum="NetErrorCodes" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the network error code from a failed HTTP GET request. Emitted when
the HTTP call fails. No metric is emitted on success.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.DeviceMetadataFetcher.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of fetching device metadata from the
repository. This metric is emitted when the metadata is fetched.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Discovered.Version"
enum="FastPairVersion" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the FastPair version of the discovered device. Emitted when showing
the discovery notification to the user for a device.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.EngagementFunnel.Steps.{FastPairPairingProtocol}"
enum="FastPairEngagementFlowEvent" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Fast Pair flow. Emitted when the discovery UI is
shown, the discovery UI is dismissed, pairing progress begins, pairing
fails, pairing succeeded, the error UI is dismissed, and/or when the setting
button on the error UI is pressed.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.EngagementFunnel.Steps.{FastPairPairingProtocol}.{FastPairDeviceType}.{FastPairNotificationType}"
enum="FastPairEngagementFlowEvent" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Fast Pair flow, split per protocol, per device
type, and per notification type of the device from its metadata. Emitted
when the discovery UI is shown, the discovery UI is dismissed, pairing
progress begins, pairing fails, pairing succeeded, the error UI is
dismissed, and/or when the setting button on the error UI is pressed.
TODO(b/262923607): Remove once structured metrics for Fast Pair are
implemented.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
<token key="FastPairDeviceType">
<variant name="HeadphonesDeviceType" summary="Device Type: Headphones"/>
<variant name="InputDeviceDeviceType" summary="Device Type: Input Device"/>
<variant name="SpeakerDeviceType" summary="Device Type: Speaker"/>
<variant name="TrueWirelessHeadphonesDeviceType"
summary="Device Type: True Wireless Headphones"/>
<variant name="UnspecifiedDeviceType" summary="Device Type: Unspecified"/>
</token>
<token key="FastPairNotificationType">
<variant name="FastPairNotificationType"
summary="Notification Type: Fast Pair. Notification launches the fast
pair intent."/>
<variant name="FastPairOneNotificationType"
summary="Notification Type: Fast Pair One. Notification launches the
fast pair intent, but doesn't include an anti-spoofing key."/>
<variant name="UnspecifiedNotificationType"
summary="Notification Type: Unspecified"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.EngagementFunnel.Steps.{FastPairPairingProtocol}.{FastPairTrackedModelID}"
enum="FastPairEngagementFlowEvent" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Fast Pair flow, split per protocol and per Model
ID. Emitted when the discovery UI is shown, the discovery UI is dismissed,
pairing progress begins, pairing fails, pairing succeeded, the error UI is
dismissed, and/or when the setting button on the error UI is pressed.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
<token key="FastPairTrackedModelID">
<variant name="BoatRockerz255Pro"/>
<variant name="BoseQuietComfort35II"/>
<variant name="BoseQuietComfort35II_1"/>
<variant name="JBLLIVE300TWS"/>
<variant name="JBLLIVE300TWS_1"/>
<variant name="JBLLIVE300TWS_2"/>
<variant name="JBLLIVE400BT"/>
<variant name="JBLLIVE400BT_1"/>
<variant name="JBLLIVE400BT_2"/>
<variant name="JBLLIVE400BT_3"/>
<variant name="JBLLIVE400BT_4"/>
<variant name="JBLLIVEPROTWS"/>
<variant name="JBLLIVEPROTWS_1"/>
<variant name="JBLLIVEPROTWS_2"/>
<variant name="JBLLIVEPROTWS_3"/>
<variant name="JBLLIVEPROTWS_4"/>
<variant name="JBLLIVEPROTWS_5"/>
<variant name="JBLLIVEPROTWS_6"/>
<variant name="JBLTUNE125TWS"/>
<variant name="JBLTUNE125TWS_1"/>
<variant name="JBLTUNE125TWS_2"/>
<variant name="JBLTUNE125TWS_3"/>
<variant name="JBLTUNE125TWS_4"/>
<variant name="JBLTUNE125TWS_5"/>
<variant name="JBLTUNE130NCTWS"/>
<variant name="JBLTUNE130NCTWS_1"/>
<variant name="JBLTUNE130NCTWS_2"/>
<variant name="JBLTUNE130NCTWS_3"/>
<variant name="JBLTUNE225TWS"/>
<variant name="JBLTUNE225TWS_1"/>
<variant name="JBLTUNE225TWS_2"/>
<variant name="JBLTUNE225TWS_3"/>
<variant name="JBLTUNE225TWS_4"/>
<variant name="JBLTUNE225TWS_5"/>
<variant name="JBLTUNE230NCTWS_1"/>
<variant name="JBLTUNE230NCTWS_2"/>
<variant name="JBLTUNE230NCTWS_3"/>
<variant name="JBLTUNE230NCTWS_4"/>
<variant name="NothingEar1"/>
<variant name="NothingEar1_2"/>
<variant name="OnePlusBuds"/>
<variant name="OnePlusBuds_1"/>
<variant name="OnePlusBuds_2"/>
<variant name="OnePlusBudsZ"/>
<variant name="OnePlusBudsZ_1"/>
<variant name="OnePlusBudsZ_2"/>
<variant name="Other"/>
<variant name="PixelBuds"/>
<variant name="PixelBudsASeries"/>
<variant name="PixelBudsASeries_1"/>
<variant name="PixelBudsASeries_2"/>
<variant name="PixelBudsPro"/>
<variant name="PixelBudsPro_1"/>
<variant name="PixelBudsPro_2"/>
<variant name="PixelBudsPro_3"/>
<variant name="PixelBudsPro_4"/>
<variant name="RealMeBudsAir2"/>
<variant name="RealMeBudsAir2_1"/>
<variant name="RealMeBudsAir2Neo"/>
<variant name="RealMeBudsAirPro"/>
<variant name="RealMeBudsAirPro_1"/>
<variant name="RealMeBudsAirPro_2"/>
<variant name="RealMeBudsQ2TWS"/>
<variant name="RealMeTechLifeBudsT100"/>
<variant name="RealMeTechLifeBudsT100_1"/>
<variant name="RealMeTechLifeBudsT100_2"/>
<variant name="SonyWF1000XM3"/>
<variant name="SonyWF1000XM3_1"/>
<variant name="SonyWF1000XM3_2"/>
<variant name="SonyWF1000XM3_3"/>
<variant name="SonyWF1000XM3_4"/>
<variant name="SonyWF1000XM3_5"/>
<variant name="SonyWF1000XM3_6"/>
<variant name="SonyWF1000XM3_7"/>
<variant name="SonyWH1000XM3"/>
<variant name="SonyWH1000XM3_1"/>
<variant name="SRSXB13"/>
<variant name="SRSXB13_1"/>
<variant name="SRSXB13_2"/>
<variant name="SRSXB13_3"/>
<variant name="SRSXB13_4"/>
<variant name="SRSXB13_5"/>
<variant name="SRSXB23"/>
<variant name="SRSXB23_1"/>
<variant name="SRSXB23_2"/>
<variant name="SRSXB23_3"/>
<variant name="SRSXB23_4"/>
<variant name="SRSXB33"/>
<variant name="SRSXB33_1"/>
<variant name="SRSXB33_2"/>
<variant name="SRSXB33_3"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.FastPairDataEncryptor.CreateResult"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of creating the FastPairDataEncryptor during the
Fast Pair handshake process: exchanging the secret key with the device for
subsequent encryption used to write to the device. The handshake occurs on
the device discovery, before the user elects to begin the pairing process.
Emitted in the FastPair handshake (key exchange with the device) following
the async call to create the data encryptor.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.FastPairDataEncryptor.CreateTime"
units="ms" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes for a successful async creation of a
FastPairDataEncryptor (see
'Bluetooth.ChromeOS.FastPair.FastPairDataEncryptor.CreateResult'). The time
is calculated as the difference between the start of the call to create the
data encryptor, and when the callback is invoked. If the creation is
unsuccessful, then no value is logged to this metric. Emitted in the
FastPairHandshake on the OnDataEncryptorCreateAsync callback call. This
metric helps us understand how much time in the flow is being sunk into the
creation of the data encryptor, who's construction is responsible for
creating the secret key using ECDH (see
'Bluetooth.ChromeOS.FastPair.KeyGenerationResult').
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.FastPairRepository.Cache.Result"
enum="Boolean" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records whether or not device metadata we retrieve is in the cache in the
repository. Records true when the metadata is in the cache, and false when
the metadata is not in the cache. Emitted in the FastPairRepository on a
GetDeviceMetadata request.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.FootprintsFetcher.Delete.Result"
enum="BooleanSuccess" expires_after="2023-09-10">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of a Delete request in the FootprintsFetcher.
A failure is considered no response from the server. A success is considered
a response that is able to be parsed. Emitted when the HTTP response is
received from the Footprints server.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.FootprintsFetcher.Get.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of a Get request in the FootprintsFetcher. A
failure is considered either no response, or a response that is unable to be
parsed. A success is considered a response that is able to be parsed.
Emitted when the HTTP response is received from the Footprints server.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.FootprintsFetcher.Post.Result"
enum="BooleanSuccess" expires_after="2023-09-10">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of a Post request in the FootprintsFetcher. A
failure is considered no response from the server. A success is considered a
response that is able to be parsed. Emitted when the HTTP response is
received from the Footprints server.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.FootprintsFetcher.{Method}.HttpResponseError"
enum="HttpResponseCode" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the HTTP response error from a failed HTTP call to the Footprints
server. Emitted when the HTTP {Method} request fails. No metric is emitted
on success.
</summary>
<token key="Method">
<variant name="Delete" summary="DELETE"/>
<variant name="Get" summary="GET"/>
<variant name="Post" summary="POST"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.FootprintsFetcher.{Method}.NetError"
enum="NetErrorCodes" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the network error code from a failed HTTP call to the Footprints
server. Emitted when the HTTP {Method} request fails. No metric is emitted
on success.
</summary>
<token key="Method">
<variant name="Delete" summary="DELETE"/>
<variant name="Get" summary="GET"/>
<variant name="Post" summary="POST"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.GattConnection.AttemptCount"
units="count" expires_after="2023-10-01">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the number of attempts needed for a successful GATT connection.
Currently the highest allowed attempt number is 3. Emitted following a
successful GATT connection. No metric is emitted on failure.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.GattConnection.EffectiveSuccessRate"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the effective success rate of creating a GATT connection during the
Fast Pair pairing protocol. Emitted following the attempted creation of the
GATT connection and all retries during the key based pairing exchange.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.GattConnection.ErrorReason"
enum="BluetoothDeviceConnectErrorCode" expires_after="2023-10-01">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the Connect error code from a failure to create a GATT connection
during the Fast Pair pairing protocol. Emitted following the attempted
creation of the GATT service client during the key based pairing exchange.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.GattConnection.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of creating a GATT connection during the Fast
Pair pairing protocol. Emitted following the attempted creation of the GATT
service client during the key based pairing exchange.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.GattConnection.RetryFailureReason"
enum="FastPairPairFailure" expires_after="2023-05-14">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the Fast Pair failure reason behind a GATT connection retry. Emitted
before we attempt to retry GATT connection. No metric is emitted on success,
or when it is the first time we attempt a GATT connection.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Handshake.FailureReason"
enum="FastPairHandshakeFailureReason" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records reason behind the failure of the big picture Fast Pair Handshake
with a device (see 'Bluetooth.ChromeOS.FastPair.Handshake.Result'). Emitted
on Handshake failure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Handshake.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of the big picture Fast Pair Handshake with a
device. Possible failures include: creating a GATT connection, creating the
data encryptor, writing to the device, parsing the response bytes from the
device. Success is considered when we receive a valid response from the
device. Emitted when the Handshake reaches a terminal point.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.Handshake.Steps.{FastPairPairingProtocol}"
enum="FastPairHandshakeSteps" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Fast Pair Handshake flow: emitted when we start the
Handshake procedure, when we have a successful GATT initialization, when we
receive bytes from the Key-based pairing characteristic, and when the
Handshake is completed successfully. Helps us identify drop-off points of
failures in our flow, and effective success metrics by comparing the
difference between starting the procedure and completing the procedure
successfully.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="RetroactivePairingProtocol"
summary="retroactive pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.KeyBasedPairing.DecryptResult"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of decrypting the response from the key based
pairing characteristic. Emitted in the handshake flow after the response
bytes have been attempted to be decrypted.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.KeyBasedPairing.DecryptTime"
units="ms" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to decrypt a successful response from the
key based pairing characteristic. Emitted in the handshake flow after the
response bytes have been attempted to be decrypted, only after a successful
decryption.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.KeyBasedPairing.NotifyTime"
units="ms" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to be notified of the Key-based pairing GATT
characteristic of the device changing during the handshake. The time is
calculated as the difference between when the WriteRequest is sent to the
device, and when we are notified of a response. If the write request attempt
fails or takes longer than 5 seconds, no value is logged to this metric.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.KeyBasedPairing.Write.GattErrorReason"
enum="BluetoothGattServiceGattErrorCode" expires_after="2023-06-04">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a written attempt to the Key-based pairing GATT
characteristic of a device failed if it was a result of a GATT error.
Emitted following a OnWriteRequest error in the FastPairGattServiceClient.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.KeyBasedPairing.Write.PairFailure"
enum="FastPairPairFailure" expires_after="2023-10-22">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a written attempt to the Key-based pairing GATT
characteristic of a device failed (see
'Bluetooth.ChromeOS.FastPair.WriteKeyBasedPairing.Result'). Emitted on the
OnWriteResponse event in the Fast Pair handshake.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.KeyBasedPairing.Write.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of writing to the key-based pairing GATT
characteristic of the device during the handshake. Emitted following the
writing request in FastPairHandshake.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.KeyGenerationResult"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of key pair generation during the Fast Pair
pairing encryption process. Emitted following the creation of the data
encryptor.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.MessageStream.ConnectToService.ErrorReason"
enum="BluetoothSocketErrorReason" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the error reason that caused the failure of creating a RFCOMM
channel (creating the MessageStream). This metric is emitted after the
channel is failed to be created in the MessageStreamLookup in the
OnConnectError callback.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.MessageStream.ConnectToService.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of attempted to create an RFCOMM channel to
the device (creating the MessageStream). The metric is emitted in the
success/failure callbacks.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.MessageStream.ConnectToService.TotalConnectTime"
units="ms" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to create a successful RFCOMM channel
connection to the device. This metric is emitted after the channel is
successfully created, and it is not emitted on failure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.MessageStream.Receive.ErrorReason"
enum="BluetoothConnectToServiceError" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the error reason that caused the failure of receiving data from a
socket in the Fast Pair MessageStream opened to the device. This metric is
emitted following an error to receive data from a socket, and no metric is
emitted on success.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.MessageStream.Receive.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of receiving data from a socket in the Fast
Pair MessageStream opened to the device. This metric is emitted after the
socket is attempted to be receive to in the MessageStream, either
ReceiveDataSuccess or ReceiveDataError callbacks.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.NavigateToSettings.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of navigating to Bluetooth settings from the
error notification. Emitted when the user clicks 'Settings' on the error
notification when there is a pair failure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.PairDevice.ErrorReason"
enum="BluetoothDeviceConnectErrorCode" expires_after="2023-10-22">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the reason for failure to connect to the device after a successful
key exchange. We use PairDevice to establish a connection to the device when
we have a BluetoothDevice instance from the adapter. Emitted when we fail to
connect to the device to start the pairing procedure, and no metric is
emitted on success.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.PairDevice.Result"
enum="BooleanSuccess" expires_after="2023-10-22">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of connecting to the device after a
successful key exchange. We use PairDevice to establish a connection to the
device when we have a BluetoothDevice instance from the adapter. Emitted
when we connect to the device to start the pairing procedure.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.PairFailure.{FastPairPairingProtocol}"
enum="FastPairPairFailure" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a pairing attempt to a device failed (see
'Bluetooth.ChromeOS.FastPair.Pairing.Result'). Suffixed by FastPair pairing
protocol type. Emitted on the OnPairFailure event in the Fast Pair flow.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="RetroactivePairingProtocol"
summary="retroactive pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.Pairing.Result.{FastPairPairingProtocol}"
enum="BooleanSuccess" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of a pairing attempt (initiated in the UI) to a
device after the user elects to begin the pairing process on the UI. Emitted
on the OnPairFailure event and the OnDevicePaired event in the Fast Pair
flow.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="RetroactivePairingProtocol"
summary="retroactive pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.PairingMethod"
enum="FastPairPairingMethod" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the count of eligible users who pair devices without Fast Pair and
with Fast Pair. This metric is emitted after a device pairing event to the
Bluetooth adapter, once verified that it is not a Fast Pair device pairing,
and that the pairing was to connect to the Bluetooth adapter, not to
disconnect from it. It is also emitted when the Fast Pair OnDevicePaired
event fires.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.PairRetry.Count" units="count"
expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the count of the number of retry attempts needed for a successful
Fast Pair pairing, which can be zero if no retry was needed. Emitted
following the successful pairing. There are only three retry attempts before
failure is declared. No metric is emitted on failure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Passkey.Decrypt.Result"
enum="BooleanSuccess" expires_after="2023-09-10">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of decrypting the response from the passkey
characteristic. Emitted in the pairing protocol flow after the response
bytes have been attempted to be decrypted.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Passkey.Decrypt.Time" units="ms"
expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to decrypt a successful response from the
passkey characteristic. Emitted in the pairing protocol flow after the
response bytes have been successfully decrypted.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Passkey.NotifyTime" units="ms"
expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to be notified of the Passkey GATT
characteristic of the device changing during the pairing protocol. The time
is calculated as the difference between when the WritePasskey is sent to the
device, and when we are notified of a response. If the write passkey attempt
fails or takes longer than 5 seconds, no value is logged to this metric.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Passkey.Write.GattErrorReason"
enum="GattErrorCode" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a written attempt to the Passkey GATT characteristic of a
device failed if it was a result of a GATT error. Emitted following a
OnPasskeyRequest error in the FastPairGattServiceClient.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Passkey.Write.PairFailure"
enum="FastPairPairFailure" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Breaks down why a written attempt to the Passkey GATT characteristic of a
device failed (see 'Bluetooth.ChromeOS.FastPair.Passkey.Result'). Emitted on
the OnWritePasskey event in the FastPairPairer.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Passkey.Write.Result"
enum="BooleanSuccess" expires_after="2023-09-10">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records success or failure of writing to the Passkey GATT characteristic of
the device during the pairing protocol. Emitted following the passkey
request in the FastPairPairer.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.RequestPasskey.Latency" units="ms"
expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes after connecting to the device following the
secret key exchange for the Chromebook to be asked by the device to confirm
the passkey. Emitted during the pairing protocol when the BluetoothDevice
pairing delegate is prompted to confirm the passkey. This metric is only
emitted to following a successful connection to the device, not emitted on
failure.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.RetroactiveEngagementFunnel.Steps"
enum="FastPairRetroactiveEngagementFlowEvent" expires_after="2023-10-01">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Fast Pair flow for the retroactive pairing
scenario. Emitted when the associate account UI is shown, the associate
account UI is dismissed, the save to account button is pressed on the
associate account UI, and when the learn more button is pressed on the
associate account UI.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.RetroactiveEngagementFunnel.Steps.{FastPairDeviceType}.{FastPairNotificationType}"
enum="FastPairRetroactiveEngagementFlowEvent" expires_after="2023-06-11">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Fast Pair flow for the retroactive pairing
scenario, per device type and per notification type from its metadata.
Emitted when the associate account UI is shown, the associate account UI is
dismissed, the save to account button is pressed on the associate account
UI, and when the learn more button is pressed on the associate account UI.
TODO(b/262923607): Remove once structured metrics for Fast Pair are
implemented.
</summary>
<token key="FastPairDeviceType">
<variant name="HeadphonesDeviceType" summary="Device Type: Headphones"/>
<variant name="InputDeviceDeviceType" summary="Device Type: Input Device"/>
<variant name="SpeakerDeviceType" summary="Device Type: Speaker"/>
<variant name="TrueWirelessHeadphonesDeviceType"
summary="Device Type: True Wireless Headphones"/>
<variant name="UnspecifiedDeviceType" summary="Device Type: Unspecified"/>
</token>
<token key="FastPairNotificationType">
<variant name="FastPairNotificationType"
summary="Notification Type: Fast Pair. Notification launches the fast
pair intent."/>
<variant name="FastPairOneNotificationType"
summary="Notification Type: Fast Pair One. Notification launches the
fast pair intent, but doesn't include an anti-spoofing key."/>
<variant name="UnspecifiedNotificationType"
summary="Notification Type: Unspecified"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.RetroactiveEngagementFunnel.Steps.{FastPairTrackedModelID}"
enum="FastPairRetroactiveEngagementFlowEvent" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records each step in the Retroactive Pair flow, split per Model ID. Emitted
when the associate account UI is shown, the associate account UI is
dismissed, the save to account button is pressed on the associate account
UI, and when the learn more button is pressed on the associate account UI.
</summary>
<token key="FastPairTrackedModelID">
<variant name="BoatRockerz255Pro"/>
<variant name="BoseQuietComfort35II"/>
<variant name="BoseQuietComfort35II_1"/>
<variant name="JBLLIVE300TWS"/>
<variant name="JBLLIVE300TWS_1"/>
<variant name="JBLLIVE300TWS_2"/>
<variant name="JBLLIVE400BT"/>
<variant name="JBLLIVE400BT_1"/>
<variant name="JBLLIVE400BT_2"/>
<variant name="JBLLIVE400BT_3"/>
<variant name="JBLLIVE400BT_4"/>
<variant name="JBLLIVEPROTWS"/>
<variant name="JBLLIVEPROTWS_1"/>
<variant name="JBLLIVEPROTWS_2"/>
<variant name="JBLLIVEPROTWS_3"/>
<variant name="JBLLIVEPROTWS_4"/>
<variant name="JBLLIVEPROTWS_5"/>
<variant name="JBLLIVEPROTWS_6"/>
<variant name="JBLTUNE125TWS"/>
<variant name="JBLTUNE125TWS_1"/>
<variant name="JBLTUNE125TWS_2"/>
<variant name="JBLTUNE125TWS_3"/>
<variant name="JBLTUNE125TWS_4"/>
<variant name="JBLTUNE125TWS_5"/>
<variant name="JBLTUNE130NCTWS"/>
<variant name="JBLTUNE130NCTWS_1"/>
<variant name="JBLTUNE130NCTWS_2"/>
<variant name="JBLTUNE130NCTWS_3"/>
<variant name="JBLTUNE225TWS"/>
<variant name="JBLTUNE225TWS_1"/>
<variant name="JBLTUNE225TWS_2"/>
<variant name="JBLTUNE225TWS_3"/>
<variant name="JBLTUNE225TWS_4"/>
<variant name="JBLTUNE225TWS_5"/>
<variant name="JBLTUNE230NCTWS_1"/>
<variant name="JBLTUNE230NCTWS_2"/>
<variant name="JBLTUNE230NCTWS_3"/>
<variant name="JBLTUNE230NCTWS_4"/>
<variant name="NothingEar1"/>
<variant name="NothingEar1_2"/>
<variant name="OnePlusBuds"/>
<variant name="OnePlusBuds_1"/>
<variant name="OnePlusBuds_2"/>
<variant name="OnePlusBudsZ"/>
<variant name="OnePlusBudsZ_1"/>
<variant name="OnePlusBudsZ_2"/>
<variant name="Other"/>
<variant name="PixelBuds"/>
<variant name="PixelBudsASeries"/>
<variant name="PixelBudsASeries_1"/>
<variant name="PixelBudsASeries_2"/>
<variant name="PixelBudsPro"/>
<variant name="PixelBudsPro_1"/>
<variant name="PixelBudsPro_2"/>
<variant name="PixelBudsPro_3"/>
<variant name="PixelBudsPro_4"/>
<variant name="RealMeBudsAir2"/>
<variant name="RealMeBudsAir2_1"/>
<variant name="RealMeBudsAir2Neo"/>
<variant name="RealMeBudsAirPro"/>
<variant name="RealMeBudsAirPro_1"/>
<variant name="RealMeBudsAirPro_2"/>
<variant name="RealMeBudsQ2TWS"/>
<variant name="RealMeTechLifeBudsT100"/>
<variant name="RealMeTechLifeBudsT100_1"/>
<variant name="RealMeTechLifeBudsT100_2"/>
<variant name="SonyWF1000XM3"/>
<variant name="SonyWF1000XM3_1"/>
<variant name="SonyWF1000XM3_2"/>
<variant name="SonyWF1000XM3_3"/>
<variant name="SonyWF1000XM3_4"/>
<variant name="SonyWF1000XM3_5"/>
<variant name="SonyWF1000XM3_6"/>
<variant name="SonyWF1000XM3_7"/>
<variant name="SonyWH1000XM3"/>
<variant name="SonyWH1000XM3_1"/>
<variant name="SRSXB13"/>
<variant name="SRSXB13_1"/>
<variant name="SRSXB13_2"/>
<variant name="SRSXB13_3"/>
<variant name="SRSXB13_4"/>
<variant name="SRSXB13_5"/>
<variant name="SRSXB23"/>
<variant name="SRSXB23_1"/>
<variant name="SRSXB23_2"/>
<variant name="SRSXB23_3"/>
<variant name="SRSXB23_4"/>
<variant name="SRSXB33"/>
<variant name="SRSXB33_1"/>
<variant name="SRSXB33_2"/>
<variant name="SRSXB33_3"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.RetroactivePairing.Result"
enum="BooleanSuccess" expires_after="2023-09-10">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of retroactive pairings. This metric is
emitted after the account key is attempted to be written to the device in
the retroactive pairing scenario.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.SavedDevices.DeviceCount"
units="devices" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the number of Fast Pair devices saved to a user's account. Emitted
following parsing the data fetched from the Footprints server to determine
the number of active devices, if any.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.SavedDevices.GetSavedDevices.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of fetching a user's list of Saved Devices
and opt-in status from the Footprints server. The fetching is initiated when
a user opens the Saved Device Bluetooth sub-age. This metric is emitted
following the fetching data attempt in the FastPairRepository.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.SavedDevices.Remove.Result"
enum="BooleanSuccess" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of removing a Fast Pair device from the
Footprints server. Emitted each time a remove attempt completes following
user action to &quot;remove&quot; in the Saved Devices Bluetooth Settings
sub-page.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.SavedDevices.TotalUxLoadTime"
units="ms" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the time necessary to load the Saved Devices Bluetooth Settings
sub-age to a terminal state with a list of devices, from the user's
perspective. Time is calculated as the difference between when the user
opens the Saved Devices sub-page and a load request is immediately sent to
the WebUI layer, and when the WebUI receives a response back from the server
with a list of devices (even if it is empty). The metric is emitted after
the response has been transformed into the appropriate data to be displayed
on the settings page, which involves decoding image URLs and parsing bytes
to transform them into string keys, and sent to the Settings UI layer for
immediate display.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.SavedDevices.UiEvent"
enum="FastPairSavedDevicesUiEvent" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records events that happen in the Fast Pair Saved Devices Settings UI, e.g.
when a surface is shown. This is emitted a single time for each event that
occurs.
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.SavedDevices.UpdateOptInStatus.Result.{FastPairPairingProtocol}"
enum="BooleanSuccess" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of updating a user's opt-in status to
STATUS_OPTED_IN. Emitted each time an update attempt completes following
user pairing via a Fast Pair protocol: initial, subsequent, or retroactive.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol"
summary="the first time a user pairs a device via Fast Pair, device
needs to be in pairing mode, account key written to the
device to save it to their account, discovered via BLE
scanning"/>
<variant name="RetroactivePairingProtocol"
summary="user elects to save a device paired via classic Bluetooth
settings to their Google account, account key written to
device"/>
<variant name="SubsequentPairingProtocol"
summary="device is already saved to the user's account and is
discovered via not-discoverable advertisement, which means
the device does not have to be in pairing mode, no account
key saved to device, discovered via BLE scanning"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.Scanner.StartSession.Result"
enum="BooleanSuccess" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the success or failure of starting a BluetoothLowEnergy scan session
in the Fast Pair scanner. Emitted on success or failure of starting the scan
session.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.FastPair.TotalGattConnectionTime"
units="ms" expires_after="2023-09-03">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the total time it takes to create a successful GATT connection to
the device. Time is calculated as the difference between when the GATT
connection is beginning to connect, and when it reaches the connection
state. If the connection attempt fails or takes longer than 5 seconds, no
value is logged to this metric,
</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.TotalUxPairTime.{FastPairPairingProtocol}"
units="ms" expires_after="2023-07-02">
<obsolete>
Deprecated April 2022. Use
Bluetooth.ChromeOS.FastPair.TotalUxPairTime.{FastPairPairingProtocol}2
instead.
</obsolete>
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the time necessary to reach a terminal Fast Pair pair state, either
success or failure, after pairing begins to a device, from the user's
perspective. Time is calculated as the difference between when the user
selects to pair a device via Fast Pair, and when it reaches a pair failure
or pair succeeded state. The metric is emitted after a final pairing state
has been reached.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.FastPair.TotalUxPairTime.{FastPairPairingProtocol}2"
units="ms" expires_after="2023-07-02">
<owner>jackshira@google.com</owner>
<owner>dclasson@google.com</owner>
<owner>brandosocarras@google.com</owner>
<owner>chromeos-cross-device-eng@google.com</owner>
<summary>
Records the time necessary to reach a terminal Fast Pair pair state, either
success or failure, after pairing begins to a device, from the user's
perspective. Time is calculated as the difference between when the user
selects to pair a device via Fast Pair, and when it reaches a pair failure
or pair succeeded state. The metric is emitted after a final pairing state
has been reached.
</summary>
<token key="FastPairPairingProtocol">
<variant name="InitialPairingProtocol" summary="initial pairing protocol"/>
<variant name="SubsequentPairingProtocol"
summary="subsequent pairing protocol"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.Forget.Result" enum="ForgetResult"
expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>Emitted each time a device forget attempt completes.</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.Pairing.Duration.Failure{BluetoothTransportTypes}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records how long it takes for a failed pairing attempt, initiated from
Bluetooth Settings or System Tray, to finish. If the user needed to go
through an auth process during pairing, the time the user took to confirm
that is not included. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.Pairing.Duration.Success{BluetoothTransportTypes}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records how long it takes for a successful pairing attempt, initiated from
Bluetooth Settings or System Tray, to finish. If the user needed to go
through an auth process during pairing, the time the user took to confirm
that is not included. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.Pairing.Result.FailureReason{BluetoothTransportTypes}"
enum="BluetoothConnectionFailureReason" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Breaks down why a pairing attempt to a peripheral failed (see
'Bluetooth.ChromeOS.Pairing.Result').
Suffixed by Bluetooth transport type. View the base histogram to see results
for all transport types aggregated together, and suffixed histograms for the
results of just that particular transport type. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.Pairing.Result.FilteredFailureReason{BluetoothTransportTypes}"
enum="BluetoothConnectionFailureReason" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Breaks down why a pairing attempt to a peripheral failed (see
'Bluetooth.ChromeOS.Pairing.Result'). Emits the result of pairing attempts
that have explicitly failed, filtering out results where the device was not
paired due to non-error reasons e.g. the user cancelled the pairing attempt.
Suffixed by Bluetooth transport type. View the base histogram to see results
for all transport types aggregated together, and suffixed histograms for the
results of just that particular transport type. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.Pairing.Result{BluetoothTransportTypes}"
enum="BooleanSuccess" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records success or failure of a pairing attempt (initiated in the UI) to a
peripheral after the user taps that device in the list of discovered
peripherals in Bluetooth Settings or System Tray.
Suffixed by Bluetooth transport type. View the base histogram to see results
for all transport types aggregated together, and suffixed histograms for the
results of just that particular transport type. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.Pairing.TransportType"
enum="BluetoothTransportType" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
An enumerated histogram which captures the transport type of devices which
are paired with. Reports of transport types other than classic, BLE, or dual
should be considered concerning and investigated.
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.PoweredState" enum="BooleanEnabled"
expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Metric emitted when the user logs in on a device which supports Bluetooth as
well as when the Bluetooth adapter powered state changes (i.e., from off to
on or vice versa).
</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.PoweredState.{Operation}.Result"
enum="BooleanSuccess" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>Record emitted when an {Operation}.</summary>
<token key="Operation">
<variant name="Disable"
summary="attempt to disable Bluetooth has completed"/>
<variant name="Enable" summary="attempt to enable Bluetooth has completed"/>
</token>
</histogram>
<histogram name="Bluetooth.ChromeOS.SetNickname.Result"
enum="SetNicknameResult" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>Emitted each time a nickname change attempt completes.</summary>
</histogram>
<histogram name="Bluetooth.ChromeOS.UiSurfaceDisplayed"
enum="BluetoothUiSurface" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>Metric emmitted each time a UI surface is shown.</summary>
</histogram>
<histogram
name="Bluetooth.ChromeOS.UserInitiatedDisconnect.Result{BluetoothTransportTypes}"
enum="DisconnectResult" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Emitted each time a user attempted disconnection completes.
{BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Duration.Failure{BluetoothTransportTypes}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Measures the amount of time taken to connect to a device when initiated via
user interaction with the UI. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Duration.Success{BluetoothTransportTypes}"
units="ms" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Measures the amount of time taken to connect to a device when initiated via
user interaction with the UI. {BluetoothTransportTypes}
</summary>
<token key="BluetoothTransportTypes" variants="BluetoothTransportTypes">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result.FailureReason{UserInitiatedReconnectionUISurfaces}"
enum="BluetoothConnectionFailureReason" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Breaks down why a user-initiated reconnection attempt to a peripheral failed
(see 'Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result').
Suffixed by Bluetooth UI surface. View the base histogram to see results for
all UI surfaces aggregated together, and suffixed histograms for the results
of just that particular UI surfaces. {UserInitiatedReconnectionUISurfaces}
</summary>
<token key="UserInitiatedReconnectionUISurfaces"
variants="UserInitiatedReconnectionUISurfaces">
<variant name=""/>
</token>
</histogram>
<histogram
name="Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result{UserInitiatedReconnectionUISurfaces}"
enum="BooleanSuccess" expires_after="2024-03-01">
<owner>khorimoto@chromium.org</owner>
<owner>cros-connectivity@google.com</owner>
<summary>
Records success or failure of a reconnection attempt to an already paired
peripheral after the user taps that device in the list of peripherals in
Bluetooth Settings or System Tray. Explicitly excludes automatic
reconnection attempts initiated by Chrome OS.
Suffixed by Bluetooth UI surface. View the base histogram to see results for
all UI surfaces aggregated together, and suffixed histograms for the results
of just that particular UI surfaces. {UserInitiatedReconnectionUISurfaces}
</summary>
<token key="UserInitiatedReconnectionUISurfaces"
variants="UserInitiatedReconnectionUISurfaces">
<variant name=""/>
</token>
</histogram>
<histogram name="Bluetooth.ConnectedDeviceCount" units="devices"
expires_after="2023-09-03">
<owner>adlr@chromium.org</owner>
<summary>
Counts the number of simulataneously connected Bluetooth devices. Used to
direct testing efforts, and by our UI team to determine appropriate UI
sizes.
</summary>
</histogram>
<histogram name="Bluetooth.DiscoverySession.Stop.Outcome"
enum="BluetoothDiscoveryOutcomes" expires_after="2021-03-01">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the outcome of calls to BluetoothDiscoverySession::Stop. Used to
prioritize efforts to fix failures of this function.
</summary>
</histogram>
<histogram name="Bluetooth.Linux.ConnectToService.Bonded.FailureReason"
enum="BluetoothDeviceConnectToServiceFailureReason"
expires_after="2023-07-02">
<owner>hansenmichael@google.com</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>
Records a specific scenario in which we fail to establish a Bluetooth
Classic connection with a remote device that is considered to be bonded.
Emitted when the function completes.
</summary>
</histogram>
<histogram name="Bluetooth.Linux.ConnectToService.FailureReason"
enum="BluetoothDeviceConnectToServiceFailureReason"
expires_after="2023-07-02">
<owner>hansenmichael@google.com</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>
Failure reason when attempting to initiate an outgoing Bluetooth Classic
connection. Emitted when function completes.
</summary>
</histogram>
<histogram name="Bluetooth.Linux.ConnectToServiceInsecurelyResult"
enum="BluetoothAdapterConnectToServiceInsecurelyResult"
expires_after="2023-09-03">
<owner>hansenmichael@google.com</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>
Result of attempting a call to mojom::Adapter::ConnectToServiceInsecurely().
Emitted when function completes.
</summary>
</histogram>
<histogram name="Bluetooth.Mojo.PendingConnectAtShutdown.DurationWaiting"
units="ms" expires_after="2023-08-08">
<owner>jonmann@chromium.org</owner>
<owner>cros-system-services-networking@google.com</owner>
<summary>
Records the number of milliseconds a pending connect request has been
waiting on/for the experimental bluetooth::mojom::Adapter implementation.
This metric is only recorded when the class is destroyed.
</summary>
</histogram>
<histogram
name="Bluetooth.Mojo.PendingConnectAtShutdown.NumberOfServiceDiscoveriesInProgress"
units="count" expires_after="2023-08-08">
<owner>jonmann@chromium.org</owner>
<owner>cros-system-services-networking@google.com</owner>
<summary>
This metric is emitted when the Mojo Adapter is destroyed, with the value of
how many outgoing connections were active because they were pending on
service discovery. Service discovery should not take so long as to still be
active when the Mojo Adapter is being torn down, so significant counts of
values other than 0 in this metric are a strong signal of incorrect behavior
and should be investigated.
</summary>
</histogram>
<histogram name="Bluetooth.StackName" enum="BluetoothStackName"
expires_after="2023-10-08">
<owner>michaelfsun@google.com</owner>
<owner>chromeos-bt-kpi@google.com</owner>
<summary>
Records the name of the Bluetooth stack when Ash starts up. The stack may be
different depending on build configurations and flags.
</summary>
</histogram>
<histogram name="Bluetooth.Web.Characteristic.ReadValue.Outcome"
enum="WebBluetoothGATTOperationOutcome" expires_after="2023-09-17">
<owner>cmumford@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the outcome of a call to characteristic.readValue(). Used to know
what types of errors users are seeing. The results will be used to determine
how common these errors are and if we need to provide better error messages
to the users.
</summary>
</histogram>
<histogram name="Bluetooth.Web.Characteristic.StartNotifications.Outcome"
enum="WebBluetoothGATTOperationOutcome" expires_after="2023-07-16">
<owner>cmumford@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the outcome of a call to characteristic.startNofications(). Used to
know what types of errors users are seeing. The results will be used to
determine how common these errors are and if we need to provide better error
messages to the users.
</summary>
</histogram>
<histogram name="Bluetooth.Web.Characteristic.WriteValue.Outcome"
enum="WebBluetoothGATTOperationOutcome" expires_after="2023-08-27">
<owner>cmumford@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the outcome of a call to characteristic.writeValue(). Used to know
what types of errors users are seeing. The results will be used to determine
how common these errors are and if we need to provide better error messages
to the users.
</summary>
</histogram>
<histogram name="Bluetooth.Web.ConnectGATT.Outcome"
enum="WebBluetoothConnectGATTOutcome" expires_after="2023-08-27">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the result of a device.gatt.connect() call. Used to understand what
errors developers are getting so we can target efforts toward the most
common ones.
</summary>
</histogram>
<histogram name="Bluetooth.Web.GetCharacteristic.Characteristic"
enum="GATTCharacteristicHash" expires_after="2023-08-27">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the UUIDs used when getting a characteristic. The recorded value is
a 31-bit hash of the UUID. Used to know what types of characteristics to
target when building libraries that use the Web Bluetooth API.
</summary>
</histogram>
<histogram name="Bluetooth.Web.GetCharacteristics.Characteristic"
enum="GATTCharacteristicHash" expires_after="2024-04-25">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records the UUIDs used when getting characteristics. The recorded value is a
31-bit hash of the UUID. Used to know what types of characteristics to
target when building libraries that use the Web Bluetooth API.
</summary>
</histogram>
<histogram name="Bluetooth.Web.GetPrimaryService.Services"
enum="GATTServiceHash" expires_after="2024-04-25">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records what GATT Services are used when connected. The record value is a
31-bit hash of the Service UUID. This will help us know if we should build
an API for specific services rather than a general Bluetooth API.
</summary>
</histogram>
<histogram name="Bluetooth.Web.GetPrimaryServices.Services"
enum="GATTServiceHash" expires_after="2024-04-25">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records what GATT Services are used when connected. The record value is a
31-bit hash of the Service UUID. This will help us know if we should build
an API for specific services rather than a general Bluetooth API.
</summary>
</histogram>
<histogram name="Bluetooth.Web.RequestDevice.RSSISignalStrength" units="dBm"
expires_after="2024-04-25">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Raw RSSI values provided to chooser, before processing them for display in
the Web Bluetooth chooser. This histogram is used to choose the 4 threshold
points used to display signal strength.
See //content/browser/bluetooth/bluetooth_device_chooser_controller.cc.
</summary>
</histogram>
<histogram name="Bluetooth.Web.RequestDevice.RSSISignalStrengthLevel"
enum="WebBluetoothRSSISignalStrengthLevel" expires_after="2024-04-25">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Displayed RSSI levels, after processing and as displayed to users in the Web
Bluetooth chooser.
</summary>
</histogram>
<histogram name="Bluetooth.Web.RequestDevice.UnionOfServices.Services"
enum="GATTServiceHash" expires_after="2023-08-27">
<owner>reillyg@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
Records what services are used from either required or optional sets. The
recorded value is a 31-bit hash of the Service UUID. These results will help
us better understand the uses of the API and make changes according to
developers' behavior.
</summary>
</histogram>
</histograms>
</histogram-configuration>