chromium/tools/metrics/histograms/metadata/quickstart/histograms.xml

<!--
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>