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

<!--
Copyright 2022 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 Kiosk 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="Kiosk.AppService.Launch.AppReadiness" enum="AppReadiness"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the readiness of the app while attempting to launch
    the Kiosk app via App Service.
  </summary>
</histogram>

<histogram name="Kiosk.AppService.WebApp.InstallResult"
    enum="WebAppInstallResultCode" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the install result code from Kiosk apps installed as
    externally managed apps in a web Kiosk.
  </summary>
</histogram>

<histogram name="Kiosk.AppService.WebApp.IsPlaceholder" enum="BooleanYesNo"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records whether the web app installed in web app platform is
    a placeholder, which happens when the app metadata cannot be fetched due to
    external authentication or network error while launching web Kiosk.
  </summary>
</histogram>

<histogram name="Kiosk.ChromeApp.ExtensionUpdateDuration.{Result}" units="ms"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the duration for checking updates of secondary apps
    and extensions for a Kiosk Chrome app while launching.
  </summary>
  <token key="Result">
    <variant name="HasUpdate" summary="found updates"/>
    <variant name="NoUpdate" summary="no update found"/>
  </token>
</histogram>

<histogram name="Kiosk.ChromeApp.ExtensionUpdateError"
    enum="ExtensionInstallationFailureReason" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the reason for failed secondary apps and extensions
    updates while a Kiosk Chrome app is launching.
  </summary>
</histogram>

<histogram name="Kiosk.ChromeApp.ExternalUpdateSuccess" enum="BooleanYesNo"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records whether Kiosk Chrome app update via external USB
    drive is successful.
  </summary>
</histogram>

<histogram name="Kiosk.ChromeApp.PrimaryAppInSessionUpdate" units="times"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records count of in-session updates of primary Kiosk Chrome
    app. A forced restart is scheduled in 24 hours.
  </summary>
</histogram>

<histogram name="Kiosk.ChromeApp.PrimaryAppInstallError"
    enum="KioskPrimaryAppDownloadResult" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records error for failed initial install of primary Chrome
    app in Kiosk.
  </summary>
</histogram>

<histogram name="Kiosk.ChromeApp.PrimaryAppUpdateResult"
    enum="KioskPrimaryAppDownloadResult" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the result for an update of primary Chrome app in
    Kiosk.
  </summary>
</histogram>

<histogram name="Kiosk.ChromeProcessCount" units="processes"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the number of processes on the machine that are
    running from chrome during Kiosk session. Recorded once per hour.
  </summary>
</histogram>

<histogram name="Kiosk.DeprecatedArcKioskUsers"
    enum="DeprecatedArcKioskUserStatus" expires_after="2025-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Reports &quot;hidden&quot; when the login screen hides a ARC kiosk user.
    Reports &quot;deleted&quot; when the login screen attempts to delete an ARC
    kiosk user. Recorded on startup.
  </summary>
</histogram>

<histogram name="Kiosk.DiskUsagePercentage" units="%"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the percentage of disk space in use during Kiosk
    session. Recorded once per hour.
  </summary>
</histogram>

<histogram name="Kiosk.Extensions.InstallDuration" units="ms"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the duration for Kiosk launcher to wait for forced extensions to
    install.
  </summary>
</histogram>

<histogram name="Kiosk.Extensions.InstallError.{InstallSource}"
    enum="ExtensionInstallationFailureReason" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reason for a Kiosk forced {InstallSource} extension install
    error. (Chrome OS only)
  </summary>
  <token key="InstallSource">
    <variant name="OffStore" summary="non-Web-Store"/>
    <variant name="WebStore" summary="Web Store"/>
  </token>
</histogram>

<histogram name="Kiosk.Extensions.InstallTimedOut" enum="BooleanYesNo"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether Kiosk launcher times out waiting for extensions to install.
    Only recorded if forced extensions starts installing while a Web Kiosk is
    launching.
  </summary>
</histogram>

<histogram name="Kiosk.Launch.CryptohomeFailure" enum="LoginFailureReason"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Tracks cryptohome failure during kiosk launch.</summary>
</histogram>

<histogram name="Kiosk.Launch.Error" enum="KioskLaunchError"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks Chrome OS Kiosk launch errors. Recorded when a Kiosk app fails to
    launch and returns to the login screen.
  </summary>
</histogram>

<histogram name="Kiosk.LaunchDuration.{KioskType}" units="ms"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the total duration it takes to launch a kiosk app.</summary>
  <token key="KioskType">
    <variant name="ChromeApp"/>
    <variant name="Web"/>
  </token>
</histogram>

<histogram name="Kiosk.LaunchType" enum="KioskLaunchType"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records kiosk launches, whether it is an enterprise or consumer kiosk and
    whether it is an auto launch or manual launch.
  </summary>
</histogram>

<histogram name="Kiosk.NewBrowserWindow" enum="KioskBrowserWindowType"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records a new browser window type once a new browser window
    is attempted to be shown in a kiosk session. Distinguishes settings page,
    closed regular browser, opened regular browser, troubleshooting tools and
    system web app.
  </summary>
</histogram>

<histogram name="Kiosk.RamUsagePercentage" units="%" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the percentage of RAM in use during Kiosk session. Is
    recorded once per hour.
  </summary>
</histogram>

<histogram name="Kiosk.SecondaryApps.InstallSuccessful" enum="BooleanYesNo"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether secondary apps are installed successfully in a Chrome App
    Kiosk. Only recorded once per Kiosk session which has secondary apps.
  </summary>
</histogram>

<histogram name="Kiosk.Session.CountPerDay" units="sessions"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Count of Kiosk sessions in the last 24h. Logged each time a
    kiosk session is started.
  </summary>
</histogram>

<histogram name="Kiosk.Session.LowDiskHighestSeverity"
    enum="KioskLowDiskSeverity" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the highest severity of low disk notification of a
    kiosk session. Logged on every kiosk session start, even if there was no
    notification during the last session.
  </summary>
</histogram>

<histogram name="Kiosk.Session.LowDiskSeverity" enum="KioskLowDiskSeverity"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records low disk notifications being issued. Logged once a
    low disk notification is supposed to be shown.
  </summary>
</histogram>

<histogram name="Kiosk.Session.NetworkDrops" units="network drops"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Number of network drops during a kiosk session. Logged on the
    next kiosk session start.
  </summary>
</histogram>

<histogram name="Kiosk.SessionDuration.Crashed" units="ms"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Duration of a kiosk session that ended with a crash. Metrics
    in this histogram are capped to 1 day (24 hours) to measure the number of
    long sessions compared to short ones. See also
    Kiosk.SessionDurationInDays.Crashed.

    Note: Duration may be longer than actual session duration, because some
    crashes can be detected only on the next session start up. In those cases a
    duration effectively is a time between crashed session start and the
    following kiosk session start.
  </summary>
</histogram>

<histogram name="Kiosk.SessionDuration.Normal" units="ms"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Duration of a kiosk session that ended successfully. Metrics
    in this histogram are capped to 1 day (24 hours) to measure the number of
    long sessions compared to short ones. See also
    Kiosk.SessionDurationInDays.Normal.
  </summary>
</histogram>

<histogram name="Kiosk.SessionDurationInDays.Crashed" units="days"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Duration in days of a kiosk session that ended with a crash.
    This metric only tracks kiosk sessions that last longer than 1 day.

    Note: Duration may be longer than actual session duration, because some
    crashes can be detected only on the next session start up. In those cases a
    duration effectively is a time between crashed session start and the
    following kiosk session start.
  </summary>
</histogram>

<histogram name="Kiosk.SessionDurationInDays.Normal" units="days"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Duration in days of a kiosk session that ended successfully.
    This metric only tracks kiosk sessions that last longer than 1 day.
  </summary>
</histogram>

<histogram name="Kiosk.SessionRestart.InternetAccess"
    enum="KioskInternetAccessInfo" expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the Internet access info of the previous kiosk
    session during the session restart. The Internet access info is saved to the
    local state every hour. The Internet access info contains information
    whether device is offline and kiosk session supports offline mode.
  </summary>
</histogram>

<histogram name="Kiosk.SessionRestart.Reason" enum="KioskSessionRestartReason"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the reason of a kiosk session restart. This metric is
    recorded when a new kiosk session started. It is based on the previous kiosk
    session end reason.
  </summary>
</histogram>

<histogram name="Kiosk.SessionRestart.UserActivity" enum="KioskUserActivity"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the last saved user activity of the previous kiosk
    session. The user activity is saved to the local state every hour. It
    contains information whether the user was actively using the device or the
    device was idle during the last check-in.
  </summary>
</histogram>

<histogram name="Kiosk.SessionState" enum="KioskSessionState"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records kiosk session states, whether it is started, closed,
    crashed, etc. Emitted when the kiosk session state changes. Crashed kiosk
    sessions can be detected on the following kiosk start.
  </summary>
</histogram>

<histogram name="Kiosk.SwapUsagePercentage" units="%"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS only. Records the percentage of swap memory in use during Kiosk
    session. Recorded once per hour.
  </summary>
</histogram>

<histogram name="Kiosk.WebApp.InstallError" enum="WebAppInstallResultCode"
    expires_after="2025-06-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reason for Web App install error in a Web Kiosk.
  </summary>
</histogram>

</histograms>

</histogram-configuration>