| <!-- |
| 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 Crostini 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="CrostiniState"> |
| <variant name="CreateContainer" summary="creating container"/> |
| <variant name="CreateDiskImage" summary="creating disk image"/> |
| <variant name="InstallImageLoader" summary="installing component or DLC"/> |
| <variant name="SetupContainer" summary="setting up container for use"/> |
| <variant name="Start" summary="initial"/> |
| <variant name="StartContainer" summary="starting container"/> |
| <variant name="StartLxd" summary="starting LXD"/> |
| <variant name="StartTerminaVm" summary="starting VM"/> |
| </variants> |
| |
| <histogram name="Crostini.AppLaunch" enum="CrostiniAppLaunchAppType" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time a Crostini app is launched, recording whether the app is |
| the built in terminal, a registered app, or an unknown app. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.AppLaunchResult" enum="CrostiniResult" |
| expires_after="2023-09-17"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of attempting to launch a Crostini app (including Terminal). |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.AppLaunchResult.{Variant}" enum="CrostiniResult" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>The result of attempting to launch {Variant}.</summary> |
| <token key="Variant"> |
| <variant name="Registered" summary="a registered GUI app"/> |
| <variant name="Terminal" summary="the Crostini Terminal"/> |
| <variant name="Unknown" summary="an unknown/unregistered app"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Crostini.AvailableDiskCancel" units="MiB" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The available disk space at the start of the crostini install flow, recorded |
| when installation was canceled. This is recorded any time the user cancels |
| the install before it finishes. This includes cases where e.g. they |
| previously tried installing and got an error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.AvailableDiskError" units="MiB" |
| expires_after="2023-08-13"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The available disk space at the start of the crostini install flow, recorded |
| when installation returned an error. This is recorded any time the user |
| tries to install install crostini and gets an error. This includes cases |
| where e.g. they previously tried installing and got an error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.AvailableDiskSuccess" units="MiB" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The available disk space at the start of the crostini install flow, recorded |
| when installation succeeded. This is recorded any time the user successfully |
| installs crostini. This includes cases where e.g. they previously tried |
| installing and got an error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Backup" enum="CrostiniExportContainerResult" |
| expires_after="2023-10-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Result of crostini backup.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.BackupCompressedSizeLog2" units="units" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| log base 2 of compressed container backup size in bytes, rounded to the |
| nearest integer. Value is between 0 and 50, to give good granularity for |
| common sizes, while maintaining a range that can support very large sizes. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.BackupContainerSizeLog2" units="units" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| log base 2 of uncompressed container image size in bytes, rounded to the |
| nearest integer. Value is between 0 and 50, to give good granularity for |
| common sizes, while maintaining a range that can support very large sizes. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.BackupSizeRatio" units="units" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| 100 * compressed size / container size. The conventional compression ratio |
| of input / output has not been used as the resulting value is unbounded. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.BackupTimeFailed" units="ms" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Time taken for failed backup.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.BackupTimeSuccess" units="ms" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Time taken for successful backup.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.CleanSession.RestarterResult" enum="CrostiniResult" |
| expires_after="2022-05-01"> |
| <obsolete> |
| Removed in M102 - no longer needed |
| </obsolete> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of a single run of CrostiniRestarter. This is the same as |
| Crostini.RestarterResult except only emitted in sessions that happen after a |
| clean start (e.g. after fresh login). Removed in Milestone 102. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.ContainerOsVersion" enum="CrostiniContainerOsVersion" |
| expires_after="2023-10-15"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time a Crostini container is launched, recording the OS |
| version running inside the container. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Disk.StatefulReadsDaily" units="KiB" |
| expires_after="2023-12-30"> |
| <owner>drmasquatch@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Crostini stateful KiB read per day. Reported daily.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.Disk.StatefulWritesDaily" units="KiB" |
| expires_after="2023-12-30"> |
| <owner>drmasquatch@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Crostini stateful KiB written per day. Reported daily.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.Disk.SwapReadsDaily" units="KiB" |
| expires_after="2023-12-30"> |
| <owner>drmasquatch@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Crostini swap file KiB read per day. Reported daily.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.Disk.SwapWritesDaily" units="KiB" |
| expires_after="2023-12-30"> |
| <owner>drmasquatch@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Crostini swap file KiB written per day. Reported daily.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.DiskResize.Result" enum="CrostiniDiskImageStatus" |
| expires_after="2023-10-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Records the result (e.g. succeeded) whenever an attempt to resize a Crostini |
| disk finishes. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.DiskResize.Started" enum="BooleanAttempted" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time a user tries resizing a Crostini disk to infer attempts |
| that started but never finished (e.g. code bug missing a timeout). This |
| won't exactly line up with the total of Crostini.DiskResizeResult due to how |
| metrics work (e.g. start one day and result the next) but should be close. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.DiskType" enum="CrostiniDiskImageType" |
| expires_after="2023-08-27"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Records the type (e.g. sparse qcow2) of the user's disk. Emitted often, you |
| probably want to look at the unique user numbers of this metric. Certain |
| disk types are vulnerable to disk corruption in certain scenarios so this |
| metric tracks our progress in moving people off them and tells us if we need |
| to do additional work to migrate users off. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.EngagementTime.{Variant}" units="ms" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| {Variant} Engagement time metrics, along with foreground and background |
| time, are only collected on users with Crostini 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 Crostini apps are running |
| in the background, but the user isn't focusing on an |
| Crostini app window."/> |
| <variant name="CrostiniTotal" |
| summary="Total of Crostini.EngagementTime.Background and .Foreground, |
| which is the time the user is engaged and Crostini is |
| running either in the foreground or background."/> |
| <variant name="Foreground" |
| summary="Times when a user is engaged and focuses on a Crostini GUI |
| window. As of 2020-12-15 this may count some |
| similar-but-not-quite-Crostini windows e.g. Bruschetta, see |
| crbug/1158644 for more details."/> |
| <variant name="Total" |
| summary="Total CrOS user session time (from login to logout) |
| excluding times when a user "disengages". A user |
| is disengaged when the screen is locked or dimmed due to |
| user inactivity. For Total Crostini engagement time, see |
| Crostini.EngagementTime.CrostiniTotal."/> |
| </token> |
| </histogram> |
| |
| <histogram name="Crostini.FilesystemCorruption" enum="CorruptionStates" |
| expires_after="2023-10-01"> |
| <owner>sidereal@google.com</owner> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Filesystem corruption events in the crostini VM, recorded every time |
| corruption is observed to affect the state of the system. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.InputMethodOnBlur" enum="InputMethodID2" |
| expires_after="2024-01-06"> |
| <owner>timloh@chromium.org</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Breakdown of active input method by input method IDs. Recorded when a |
| Crostini window loses focus, including switching between Crostini windows |
| and some actions like opening the launcher. See InputMethod.ID2 for details |
| on the enum format. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.InstallSource" enum="CrostiniInstallSource" |
| expires_after="2023-04-10"> |
| <obsolete> |
| Removed in M105 - no longer needed |
| </obsolete> |
| <owner>sidereal@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The source (component vs DLC) that was used to install termina. This is |
| recorded every time a CrostiniRestart succeeds at the termina install step |
| to measure the progress of the component->DLC migration. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.InvalidStateTransition" enum="CrostiniInstallerState" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Emitted when an invalid request to transition states during the Crostini |
| restarter flow is received. For example, when a container start signal is |
| received when the restarter is still waiting for the vm to finish launching. |
| The value is the state the restarter should have been in for the transition |
| to be legal (in this example StartContainer). |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.RecoverySource" enum="CrostiniUISurface" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time the CrostiniRecoveryView is show, on detecting that a VM |
| is still running after a Chrome crash. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Restarter.Started" enum="BooleanAttempted" |
| expires_after="2023-09-03"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Emitted whenever a run of CrostiniRestarter is triggered except during the |
| initial install. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.RestarterResult" enum="CrostiniResult" |
| expires_after="2023-09-03"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of a single run of CrostiniRestarter. This is recorded every time |
| the crostini restart flow is triggered except for the initial install and |
| (from M104) multi-container creation. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.RestarterResult.Installer" enum="CrostiniResult" |
| expires_after="2023-09-03"> |
| <owner>timloh@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of a single run of CrostiniRestarter. This is recorded once for |
| each restart triggered by the Crostini installer. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.RestarterResult.MultiContainerCreation" |
| enum="CrostiniResult" expires_after="2024-05-01"> |
| <owner>timloh@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of a single run of CrostiniRestarter. This is recorded once for |
| each restart triggered for multi-container creation. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.RestarterTimeInState2.{state}" units="ms" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Base histogram for measuring how much time the restarter flow spends in the |
| {state} state, used to set timeouts. Note that this since this is for any |
| restarter run (no-op relaunch, installation, success/failed) the results are |
| expected to be multi-modal. This is emitted by CrostiniRestarter every time |
| a state completes or restart completes, but not for a state that's been |
| aborted. |
| </summary> |
| <token key="state" variants="CrostiniState"/> |
| </histogram> |
| |
| <histogram name="Crostini.Restore" enum="CrostiniImportContainerResult" |
| expires_after="2023-10-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Result of crostini restore.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.RestoreTimeFailed" units="ms" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Time taken for failed restore.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.RestoreTimeSuccess" units="ms" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary>Time taken for successful restore.</summary> |
| </histogram> |
| |
| <histogram name="Crostini.SettingsEvent" enum="CrostiniSettingsEvent" |
| expires_after="2024-04-24"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <owner>victorhsieh@chromium.org</owner> |
| <summary>Record user's choice in Crostini Settings</summary> |
| </histogram> |
| |
| <histogram name="Crostini.Setup.Started" enum="BooleanAttempted" |
| expires_after="2023-09-10"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Emitted whenever a run of CrostiniRestarter is triggered during the initial |
| install. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.SetUpLxdContainerUser.UnknownResult" |
| enum="BooleanYesNo" expires_after="2024-05-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Yes if we got an unknown result for the SetUpLxdContainerUser step, No |
| otherwise. Recorded by CrostiniManager after getting the result for the the |
| SetUpLxdContainerUser step so we can check if our hypothesis to the root |
| cause of crbug/1216305 is correct, and to measure how widespread it is. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.SetupResult" enum="CrostiniSetupResult" |
| expires_after="2023-10-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time the user completes the Crostini setup UI, recording the |
| result of the setup. From M104, Crostini.RestartResult.Installer provides |
| more granular failures metrics. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.SetupSource" enum="CrostiniUISurface" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time the user initiates the Crostini setup UI, recording the |
| UI surface that invoked the setup. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Sshfs.Mount.Result.{Visibility}" |
| enum="CrostiniSshfsResult" expires_after="2023-08-14"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of mounting sshfs {Visibility}. Recorded when mounting a Crostini |
| directory using sshfs. |
| </summary> |
| <token key="Visibility"> |
| <variant name="Background" |
| summary="in the background, where failures aren't visible to users |
| (e.g. when premounting at launch to reduce latency if the |
| user accesses their Linux files)"/> |
| <variant name="UserVisible" |
| summary="where success is required to complete the user action e.g. |
| viewing Linux files"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Crostini.Sshfs.Mount.TimeTaken" units="ms" |
| expires_after="2023-10-15"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The time taken to mount sshfs (successfully or not, UserVisible or |
| Background). Recorded when mounting a Crostini directory using sshfs. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Sshfs.Unmount.Result" enum="BooleanSuccess" |
| expires_after="2023-08-14"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of unmounting sshfs. Recorded when removing a Crostini sshfs |
| mount. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Sshfs.Unmount.TimeTaken" units="ms" |
| expires_after="2023-08-14"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The time taken to unmount sshfs (either successfully or failing). Recorded |
| when removing a Crostini sshfs mount. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.Stability" enum="GuestOsFailureClasses" |
| expires_after="2023-10-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| A record of post-startup failures in crostini components. Buckets are |
| recorded to whenever we become aware that the corresponding component has |
| failed. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.TerminalSettingsChanged" |
| enum="CrostiniTerminalSetting" expires_after="2023-10-22"> |
| <owner>joelhockey@chromium.org</owner> |
| <owner>lxj@google.com</owner> |
| <summary> |
| Record which settings in terminal are changed by users. This is captured |
| each time terminal is launched and fetches the current settings, and not |
| just when settings are changed, in order to give the best information about |
| the current state of active users. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.TimeFromDeviceSetupToInstall" units="ms" |
| expires_after="2023-07-16"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The time from a user setting up their device, to the user enabling Crostini. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.TimeToInstallCancel" units="ms" |
| expires_after="2023-08-08"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The time taken for the crostini installer to be canceled by the user. This |
| is recorded any time the user cancels the install before it finishes. This |
| includes cases where e.g. they previously tried installing and got an error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.TimeToInstallError" units="ms" |
| expires_after="2023-07-30"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The time taken for the crostini installer to fail due to an error. This is |
| recorded any time the user tries to install install crostini and gets an |
| error. This includes cases where e.g. they previously tried installing and |
| got an error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.TimeToInstallSuccess" units="ms" |
| expires_after="2024-01-22"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The time taken for the crostini installer to finish successfully. This is |
| recorded any time the user successfully installs crostini. This includes |
| cases where e.g. they previously tried installing and got an error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.UncleanSession.RestarterResult" enum="CrostiniResult" |
| expires_after="2023-01-06"> |
| <obsolete> |
| Removed in M102 - no longer needed |
| </obsolete> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of a single run of CrostiniRestarter. This is the same as |
| Crostini.RestarterResult except only emitted in sessions that happen after |
| an unclean restart (e.g. after a Chrome crash). Removed in milestone 102. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.UninstallResult" enum="CrostiniUninstallResult" |
| expires_after="2023-10-01"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time the user completes the Crostini uninstall UI, recording |
| the result of the uninstall. Error cases are broken down more in |
| Crostini.UninstallResult.Reason. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.UninstallResult.Reason" enum="CrostiniResult" |
| expires_after="2024-05-01"> |
| <owner>timloh@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| The result of a completed Crostini uninstallation. This is recorded when an |
| uninstall completes either successfully or unsuccessfully, including both |
| those manually triggered via the Crostini uninstaller, and those triggered |
| internally by cancelling a Crostini installation. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Crostini.UnsupportedNotification.Reason" |
| enum="CrostiniUnsupportedNotificationReason" expires_after="2023-08-27"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time we display (or would display, see suffixes) a |
| notification that the user is trying to do something Crostini doesn't |
| support. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.UpgradeAvailable" |
| enum="CrostiniUpgradeAvailableNotificationClosed" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time the user sees the Crostini upgrade Notifiation, recording |
| the action that closed the notification. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.UpgradeDialogEvent" enum="CrostiniUpgradeDialogEvent" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| A collection of events that can occur while upgrading the crostini |
| container, recorded as they occur. |
| </summary> |
| </histogram> |
| |
| <histogram name="Crostini.UpgradeSource" enum="CrostiniUISurface" |
| expires_after="2024-01-06"> |
| <owner>davidmunro@google.com</owner> |
| <owner>clumptini@google.com</owner> |
| <summary> |
| Recorded each time the user sees the Crostini upgrade UI, recording the UI |
| surface that initiated the upgrade. |
| </summary> |
| </histogram> |
| |
| </histograms> |
| |
| </histogram-configuration> |