<!--
Copyright 2023 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 Quick Start 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
[email protected].
-->
<histogram-configuration>
<histograms>
<histogram name="QuickStart.AttestationCertificate.FailureReason"
enum="QuickStartAttestationCertificateFetchFailureReason"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Failure reason of attempted Remote Attestation certificate fetch. Recorded
when we receive a response from ChromeOS platform (e.g. when the device
itself cannot support attestation) or Google's Privacy CA.
</summary>
</histogram>
<histogram name="QuickStart.AttestationCertificate.FetchDuration" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed from attempting to fetch a Remote Attestation certificate to
receiving a certificate or an error. It is recorded when an attestation
certificate request finishes.
</summary>
</histogram>
<histogram name="QuickStart.AttestationCertificate.FetchResult"
enum="BooleanSuccess" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the overall success / failure result of fetching a Remote
Attestation certificate. Recorded when we receive a response from ChromeOS
platform (e.g. when the device itself cannot support attestation) or
Google's Privacy CA.
</summary>
</histogram>
<histogram name="QuickStart.AuthenticationMethod"
enum="QuickStartAuthenticationMethod" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The method used to authenticate connection with source device. Recorded when
the connection is marked authenticated.
</summary>
</histogram>
<histogram name="QuickStart.ChallengeBytes.FailureReason"
enum="GoogleServiceAuthError" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the (failure) reason of fetching challenge bytes from Gaia. Recorded
when we get a response from Gaia (or the request times out) - regardless of
the overall status of the response. Successful requests are logged in the
`NONE` enum bucket.
</summary>
</histogram>
<histogram name="QuickStart.ChallengeBytes.FetchDuration" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed from attempting to fetch challenge bytes (from Gaia) to
receiving challenge bytes or an error. It is recorded when the request for
challenge bytes finishes (or times out).
</summary>
</histogram>
<histogram name="QuickStart.ChallengeBytes.FetchResult" enum="BooleanSuccess"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the overall success / failure result of fetching challenge bytes
from Gaia. These challenge bytes are later used to generate a FIDO assertion
and a Remote Attestation certificate. Recorded when we get a response from
Gaia (or the request times out).
</summary>
</histogram>
<histogram name="QuickStart.ConsumerUpdateCancelled" enum="BooleanOccurred"
expires_after="2025-04-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total number of cancelled Consumer Updates during an ongoing
Quick Start session. Recorded when a user cancels after an update starts
downloading.
</summary>
</histogram>
<histogram name="QuickStart.ConsumerUpdateStarted" enum="BooleanOccurred"
expires_after="2025-04-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total number of Consumer Updates during an ongoing Quick Start
session. Recorded when the update starts downloading.
</summary>
</histogram>
<histogram name="QuickStart.EntryPoint" enum="QuickStartEntryPoint"
expires_after="2025-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The entry point from which the Quick Start flow is initiated. Recorded when
transitioning to the Quick Start screen at the beginning of a session.
</summary>
</histogram>
<histogram name="QuickStart.FastPairAdvertisementEnded.Duration" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed from attempting to start Fast Pair Advertising to it ending.
Recorded after unregistering the advertisement. It is not recorded when an
error occurs attempting to register/unregister the advertisement.
Note: buckets were resized during m126 to increase max duration.
</summary>
</histogram>
<histogram name="QuickStart.FastPairAdvertisementEnded.ErrorCode"
enum="QuickStartFastPairAdvertisingErrorCode" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reason a Fast Pair BLE advertisment failed to unregister. Recorded whenever
a Bluetooth Advertisement error occurs after attempting to unregister the
advertisement.
</summary>
</histogram>
<histogram name="QuickStart.FastPairAdvertisementEnded.Succeeded"
enum="BooleanSuccess" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether unregistering the Fast Pair advertisement was successful. Recorded
after unregistering the advertisement or when there's an error attempting to
unregister the advertisement.
</summary>
</histogram>
<histogram name="QuickStart.FastPairAdvertisementStarted.ErrorCode"
enum="QuickStartFastPairAdvertisingErrorCode" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reason a Fast Pair BLE advertisment failed to register. Recorded whenever a
Bluetooth Advertisement error occurs after attempting to register the
advertisement.
</summary>
</histogram>
<histogram name="QuickStart.FastPairAdvertisementStarted.Succeeded"
enum="BooleanSuccess" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether Fast Pair advertising is started successfully. Recorded after the
advertisement is succesfully registered or when there's an error attempting
to register the advertisement.
</summary>
</histogram>
<histogram name="QuickStart.FlowAborted.Reason"
enum="QuickStartAbortFlowReason" expires_after="2025-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason why the Quick Start flow is aborted. Recorded when flow aborts.
</summary>
</histogram>
<histogram name="QuickStart.ForcedUpdateStarted" enum="BooleanOccurred"
expires_after="2025-04-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total number of Forced Updates during an ongoing Quick Start
session. Recorded when the update starts downloading.
</summary>
</histogram>
<histogram name="QuickStart.GaiaAuthentication.Duration" units="ms"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed from attempting a Gaia authentication to receiving a response.
It is recorded when the `startsession` request finishes.
</summary>
</histogram>
<histogram name="QuickStart.GaiaAuthentication.Result"
enum="QuickStartGaiaAuthenticationResult" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of attempting a Gaia sign-in. Recorded when we try to
sign the user in by fetching an OAuth authorization code - in exchange for a
FIDO assertion and a Remote Attestation certificate.
</summary>
</histogram>
<histogram name="QuickStart.GaiaTransferResult" enum="BooleanSuccess"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether Gaia transfer was successful. Recorded after succesfully completing
account creation or when an error occurs during account transfer process.
</summary>
</histogram>
<histogram name="QuickStart.GaiaTransferResult.FailureReason"
enum="QuickStartGaiaTransferResultFailureReason" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason Gaia account transfer attempt failed. Recorded when an error
occurs receiving an assertion response.
</summary>
</histogram>
<histogram name="QuickStart.HandshakeResult.Duration" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration of handshake message sent till a response being verified. Recorded
when a response is received.
</summary>
</histogram>
<histogram name="QuickStart.HandshakeResult.ErrorCode"
enum="QuickStartHandshakeResultErrorCode" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The error code associated with failing to successfully verify the handshake
response. Recorded when a response is received.
</summary>
</histogram>
<histogram name="QuickStart.HandshakeResult.Succeeded" enum="BooleanSuccess"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether handshake response was parsed and verified. Recorded when receiving
a handshake response.
</summary>
</histogram>
<histogram name="QuickStart.HandshakeStarted" enum="BooleanAttempted"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether handshake was attempted to authenticate connection. Handshake is
attempted when an incoming connection is accepted and using QR code
authentication. Recorded when an incoming connection is accepted.
</summary>
</histogram>
<histogram name="QuickStart.MessageReceived.DesiredMessageType"
enum="QuickStartMessageType" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The message type that should be received from the remote device. Recorded
when the response is received or a timeout occurs waiting for it.
</summary>
</histogram>
<histogram name="QuickStart.MessageReceived.{MessageType}.ErrorCode"
enum="QuickStartMessageReceivedErrorCode" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of error that occured when receiving a message. Recorded when the
response is received or a timeout occurs waiting.
</summary>
<token key="MessageType">
<variant name="Assertion"/>
<variant name="BootstrapConfigurations"/>
<variant name="BootstrapStateCancel"/>
<variant name="BootstrapStateComplete"/>
<variant name="GetInfo"/>
<variant name="Handshake"/>
<variant name="NotifySourceOfUpdate"/>
<variant name="WifiCredentials"/>
</token>
</histogram>
<histogram name="QuickStart.MessageReceived.{MessageType}.ListenDuration"
units="ms" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The listen duration waiting for a response from the remote device. Recorded
when succesfully receiving a response or when a timeout occurs waiting for a
response.
</summary>
<token key="MessageType">
<variant name="Assertion"/>
<variant name="BootstrapConfigurations"/>
<variant name="BootstrapStateCancel"/>
<variant name="BootstrapStateComplete"/>
<variant name="GetInfo"/>
<variant name="Handshake"/>
<variant name="NotifySourceOfUpdate"/>
<variant name="WifiCredentials"/>
</token>
</histogram>
<histogram name="QuickStart.MessageReceived.{MessageType}.Succeeded"
enum="BooleanSuccess" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the target device received message from the remote device. Recorded
when a response is received or when a timeout occurs waiting for a response.
</summary>
<token key="MessageType">
<variant name="Assertion"/>
<variant name="BootstrapConfigurations"/>
<variant name="BootstrapStateCancel"/>
<variant name="BootstrapStateComplete"/>
<variant name="GetInfo"/>
<variant name="Handshake"/>
<variant name="NotifySourceOfUpdate"/>
<variant name="WifiCredentials"/>
</token>
</histogram>
<histogram name="QuickStart.MessageSent.MessageType"
enum="QuickStartMessageType" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The message type sent to the remote device. Recorded before writing stream
of bytes.
</summary>
</histogram>
<histogram name="QuickStart.NearbyConnectionsAdvertisementEnded.Duration"
units="ms" expires_after="2025-04-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed during Nearby Connections advertisement. Recorded after
successfully stopping the advertisement. It is not recorded when an error
occurs attempting to start/stop the advertisement.
Note: buckets were resized during m126 to increase max duration.
</summary>
</histogram>
<histogram name="QuickStart.NearbyConnectionsAdvertisementEnded.ErrorCode"
enum="QuickStartNearbyConnectionsAdvertisingErrorCode"
expires_after="2025-04-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reason a Nearby Connections advertisement failed to stop. Recorded whenever
a Nearby Connections error occurs after attempting to stop the
advertisement.
</summary>
</histogram>
<histogram name="QuickStart.NearbyConnectionsAdvertisementEnded.Succeeded"
enum="BooleanSuccess" expires_after="2025-04-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the Nearby Connections advertisement was successfully stopped.
Recorded after the advertisement succesfully stops or an error occurs after
attempting to stop the advertisement.
</summary>
</histogram>
<histogram name="QuickStart.NearbyConnectionsAdvertisementStarted.ErrorCode"
enum="QuickStartNearbyConnectionsAdvertisingErrorCode"
expires_after="2025-04-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reason a Nearby Connections advertisement failed to start. Recorded whenever
a Nearby Connections error occurs after attempting to start the
advertisement.
</summary>
</histogram>
<histogram name="QuickStart.NearbyConnectionsAdvertisementStarted.Succeeded"
enum="BooleanSuccess" expires_after="2025-04-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether Nearby Connections advertising is started successfully. Recorded
when advertising successfully starts or when an error occurs after
attempting to start.
</summary>
</histogram>
<histogram name="QuickStart.ScreenClosed.{ScreenName}.Reason"
enum="ScreenClosedReason" expires_after="2025-04-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason a screen is closed. This includes all major Quick Start screens
as well as all other OOBE screens that occur in the middle of the Quick
Start flow. Recorded when a screen is closed.
</summary>
<token key="ScreenName">
<variant name="AddChild"/>
<variant name="CheckingForUpdateAndDeterminingDeviceConfiguration"/>
<variant name="ChooseChromebookSetup"/>
<variant name="ConsumerUpdate"/>
<variant name="GaiaInfoScreen"/>
<variant name="GaiaScreen"/>
<variant name="NetworkScreen"/>
<variant name="None"/>
<variant name="Other"/>
<variant name="QSComplete"/>
<variant name="QSConnectingToWifi"/>
<variant name="QSCreatingAccount"/>
<variant name="QSFallbackURL"/>
<variant name="QSGettingGoogleAccountInfo"/>
<variant name="QSResumingConnectionAfterUpdate"/>
<variant name="QSSelectGoogleAccount"/>
<variant name="QSSetUpWithAndroidPhone"/>
<variant name="QSWifiCredentialsReceived"/>
<variant name="ReviewPrivacyAndTerms"/>
<variant name="SetupDevicePIN"/>
<variant name="UnifiedSetup"/>
<variant name="WelcomeScreen"/>
</token>
</histogram>
<histogram name="QuickStart.ScreenClosed.{ScreenName}.ViewDuration" units="ms"
expires_after="2025-04-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How long a user viewed a screen. This includes all major Quick Start screens
as well as all other OOBE screens that occur in the middle of the Quick
Start flow. Recorded when a screen is closed.
</summary>
<token key="ScreenName">
<variant name="AddChild"/>
<variant name="CheckingForUpdateAndDeterminingDeviceConfiguration"/>
<variant name="ChooseChromebookSetup"/>
<variant name="ConsumerUpdate"/>
<variant name="GaiaInfoScreen"/>
<variant name="GaiaScreen"/>
<variant name="NetworkScreen"/>
<variant name="None"/>
<variant name="Other"/>
<variant name="QSComplete"/>
<variant name="QSConnectingToWifi"/>
<variant name="QSCreatingAccount"/>
<variant name="QSFallbackURL"/>
<variant name="QSGettingGoogleAccountInfo"/>
<variant name="QSResumingConnectionAfterUpdate"/>
<variant name="QSSelectGoogleAccount"/>
<variant name="QSSetUpWithAndroidPhone"/>
<variant name="QSWifiCredentialsReceived"/>
<variant name="ReviewPrivacyAndTerms"/>
<variant name="SetupDevicePIN"/>
<variant name="UnifiedSetup"/>
<variant name="WelcomeScreen"/>
</token>
</histogram>
<histogram name="QuickStart.ScreenOpened" enum="QuickStartScreenName"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The screen a user views as they go through the Quick Start flow. This
includes all major Quick Start screens as well as all other OOBE screens
that occur in the middle of the Quick Start flow. Recorded when the screen
is shown.
</summary>
</histogram>
<histogram name="QuickStart.WelcomeScreen.QuickStartButtonVisible"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the Quick Start entry point button is visible on the Welcome Screen.
Emitted when the button visibility is determined. This metric is used for
understanding which users had Quick Start already enabled before an update
during finch experiment analysis.
</summary>
</histogram>
<histogram name="QuickStart.WifiTransferResult" enum="BooleanSuccess"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the Wifi credentials transfer was successful. Recorded when checking
if Wifi credentials was received from source device.
</summary>
</histogram>
<histogram name="QuickStart.WifiTransferResult.FailureReason"
enum="QuickStartWifiTransferResultFailureReason" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Failure reason of attempted Wifi credentials transfer. Recorded when
checking if Wifi credentials was received was source device.
</summary>
</histogram>
</histograms>
</histogram-configuration>