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

<!--
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 Borealis 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="Borealis.Audio.UsedPath.{Direction}" enum="BorealisAudioPath"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    Record the usage of each audio path. The value will be incremented if the
    path is open during the check period, which is once every 5 minutes, when
    Borealis VM is running.
  </summary>
  <token key="Direction">
    <variant name="Input"/>
    <variant name="Output"/>
  </token>
</histogram>

<histogram name="Borealis.Audio.UsedSubdevices" units="count"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The number of audio subdevices that are used by games that are running on
    proton. This is recorded periodically when the game is running.
  </summary>
</histogram>

<histogram name="Borealis.Audio.Xrun.Alsa.Output" units="count"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The number of xrun occurences during playback with ALSA device. This is
    recorded periodically when the game is running.
  </summary>
</histogram>

<histogram name="Borealis.Disk.HighestDirtyPagesDaily" units="KiB"
    expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The highest dirty page value observed in Borealis that day (taken
    from`/proc/meminfo`). Reported daily.
  </summary>
</histogram>

<histogram name="Borealis.Disk.InodeRatioAtStartup" units="KiB"
    expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The amount of bytes used per an inode, on average, in Borealis. This is
    recorded once during each startup, when maitred emits disk related metrics.
  </summary>
</histogram>

<histogram name="Borealis.Disk.StatefulReadsDaily" units="KiB"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>Borealis stateful KiB read per day. Reported daily.</summary>
</histogram>

<histogram name="Borealis.Disk.StatefulWritesDaily" units="KiB"
    expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>Borealis stateful KiB written per day. Reported daily.</summary>
</histogram>

<histogram name="Borealis.Disk.SwapReadsDaily" units="KiB"
    expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>Borealis swap file KiB read per day. Reported daily.</summary>
</histogram>

<histogram name="Borealis.Disk.SwapWritesDaily" units="KiB"
    expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>Borealis swap file KiB written per day. Reported daily.</summary>
</histogram>

<histogram name="Borealis.Disk.VMUsageToTotalSpacePercentageAtStartup"
    units="%" expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The percent of space that the VM is using in comparison to the total size of
    the disk (i.e VM_usage/total_disk_size). This is recorded once during each
    startup, when maitred emits disk related metrics.
  </summary>
</histogram>

<histogram name="Borealis.Disk.VMUsageToTotalUsagePercentageAtStartup"
    units="%" expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The percent of space that the VM is using in comparison to the total amount
    of space being used (i.e VM_usage/total_usage). This is recorded once during
    each startup, when maitred emits disk related metrics.
  </summary>
</histogram>

<histogram name="Borealis.EngagementTime.{Variant}" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    {Variant} Engagement time metrics, along with foreground and background
    time, are only collected on users with Borealis enabled. All four metrics
    are accumulated and recorded to UMA once a day.
  </summary>
  <token key="Variant">
    <variant name="Background"
        summary="Times when a user is engaged and Borealis apps are running
                 in the background, but the user isn't focusing on an
                 Borealis app window."/>
    <variant name="BorealisTotal"
        summary="Total of Borealis.EngagementTime.Background and .Foreground,
                 which is the time the user is engaged and Borealis is
                 running either in the foreground or background."/>
    <variant name="Foreground"
        summary="Times when a user is engaged and focuses on a Borealis GUI
                 window."/>
    <variant name="Total"
        summary="Total engagement time (including when Borealis isn't
                 running)."/>
  </token>
</histogram>

<histogram name="Borealis.Install.NumAttempts" enum="BooleanAttempted"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The number of Borealis installation attempts. This is recorded each time a
    user tries to install Borealis. Specifically, this metric is recorded when a
    user clicks on the install or retry button in the Borealis installer. It is
    intended that this metric is compared against the sum of
    Borealis.Install.Result as a way to measure silent failures.
  </summary>
</histogram>

<histogram name="Borealis.Install.OverallTime" units="ms"
    expires_after="2025-01-05">
<!-- NB: deprecated; remove instead of extending its expiry date -->

  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    Time taken for a successful installation. An install starts when the
    &quot;install&quot; or &quot;retry&quot; installer buttons are clicked and
    ends when the install completes successfully, at which point this metric is
    recorded. Note that retries are considered as their own individual
    installation attempts.

    Deprecated; prefer Borealis.Install.OverallTime2.
  </summary>
</histogram>

<histogram name="Borealis.Install.OverallTime2" units="ms"
    expires_after="2024-12-15">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <improvement direction="LOWER_IS_BETTER"/>
  <summary>
    Time taken for a successful installation. An install starts when the
    &quot;install&quot; or &quot;retry&quot; installer buttons are clicked and
    ends when the install completes successfully, at which point this metric is
    recorded. Note that retries are considered as their own individual
    installation attempts.

    (Same as Borealis.Install.OverallTime but with larger bucket sizes.)
  </summary>
</histogram>

<histogram name="Borealis.Install.Result" enum="BorealisInstallResult"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The installation result, for example, a successful install, a cancelled
    install, or an error. This is recorded after an installation attempt has
    ended.
  </summary>
</histogram>

<histogram name="Borealis.Install.Source" enum="BorealisLaunchSource"
    expires_after="2024-10-11">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The referring source for a Borealis installer launch, for example, a
    chromeos-steam://install link, the Steam installer app in the Launcher, or a
    Unified App Installer click. This is recorded at the start of an
    installation attempt.
  </summary>
</histogram>

<histogram name="Borealis.Launch.Source" enum="BorealisLaunchSource"
    expires_after="2024-10-11">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The referring source for a non-installer Borealis launch, for example, a
    chromeos-steam://install link, the Steam installer app in the Launcher, a
    Unified App Installer click, when uninstalling an app, launching an app by
    URL, retrying a previous launch, or the Open Steam button in the installer.
    This is recorded when starting to launch a Borealis app: a game, or the
    Steam client.
  </summary>
</histogram>

<histogram name="Borealis.Shutdown.Attempt" enum="BooleanAttempted"
    expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    Recording every attempt to exit Borealis given the that VM was launched.
    Recorded regardless of if the shutdown is successful.
  </summary>
</histogram>

<histogram name="Borealis.Stability" enum="GuestOsFailureClasses"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    A record of post-startup failures in Borealis components. Buckets are
    recorded to when we become aware that the corresponding component has
    failed.
  </summary>
</histogram>

<histogram name="Borealis.Startup.fsckResult" enum="FsckResult"
    expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    Return code from running fsck during VM startup. This is recorded once
    during each startup, when maitred emits disk related metrics.
  </summary>
</histogram>

<histogram name="Borealis.Startup.fsckTime" units="ms"
    expires_after="2024-11-14">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The time taken for fsck to complete during VM startup. This is recorded once
    during each startup, when maitred emits disk related metrics.
  </summary>
</histogram>

<histogram name="Borealis.Startup.NumAttempts" enum="BooleanAttempted"
    expires_after="2024-12-15">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>Recording every attempt to start Borealis (via the UI).</summary>
</histogram>

<histogram name="Borealis.Startup.OverallTime" units="ms"
    expires_after="2024-11-03">
<!-- NB: deprecated; remove instead of extending its expiry date -->

  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    Recording the time taken for each successful attempt to start Borealis (via
    the UI). Deprecated; prefer Borealis.Startup.OverallTime2.
  </summary>
</histogram>

<histogram name="Borealis.Startup.OverallTime2" units="ms"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <improvement direction="LOWER_IS_BETTER"/>
  <summary>
    Recording the time taken for each successful attempt to start the Borealis
    VM (via the UI), until the VM is responsive and able to launch the Steam
    client.

    (Same as Borealis.Startup.OverallTime but with larger bucket sizes.)
  </summary>
</histogram>

<histogram name="Borealis.Startup.Result" enum="BorealisStartupResult"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    Recording the result of each attempt to start Borealis, whether it was
    successful or the error that it faced.
  </summary>
</histogram>

<histogram name="Borealis.Startup.TimeToFirstWindow" units="ms"
    expires_after="2024-10-13">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <improvement direction="LOWER_IS_BETTER"/>
  <summary>
    Recording the time taken for each successful attempt to start Borealis (via
    the UI), from when the splash screen is shown to when the first window is
    shown (probably either an update dialog or a Steam client window).
  </summary>
</histogram>

<histogram name="Borealis.VMPerformance.Generic.SlowFrameRatio" units="%"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    The percentage of slow frames when a Borealis window is active and being
    rendered.It's collected periodically and emitted via Sommelier. Generic
    refers to Borealis as a platform. These measurements are for any Sommelier
    tracing period in which a Borealis (excluding the Steam client) window was
    active for the entirety of that period.
  </summary>
</histogram>

<histogram name="Borealis.VMPerformance.Generic.{Variant}" units="fps"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/ash/borealis/OWNERS</owner>
  <summary>
    These are FPS related performance metrics that are collected within the VM.
    They are collected periodically and emitted via Sommelier. Generic refers to
    Borealis as a platform. These measurements are for any Sommelier tracing
    period in which a Borealis (excluding the Steam client) window was active
    for the entirety of that period.
  </summary>
  <token key="Variant">
    <variant name="FPSLow"
        summary="Lowest 1% of FPS captured during the capture period. Rounded
                 to the nearest integer."/>
    <variant name="FPSMean"
        summary="Average FPS of the capture period. Rounded to the nearest
                 integer."/>
    <variant name="FPSVariance"
        summary="FPS variance, calculated with Welford's online algorithm, of
                 the capture period. Rounded to the nearest integer."/>
  </token>
</histogram>

</histograms>

</histogram-configuration>