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 Installer 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>
<histogram name="Installer.Postinstall.BiosType" enum="ChromeOSBiosType"
expires_after="2026-05-24">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
The firmware+bootloader type targeted when installing/updating.
The main intent is to see distribution of EFI/Legacy on boards where those
types are both supported.
This is reported early in postinstall, only on ChromeOS, and only when
USE=postinst_metrics. There's also an increased risk of losing metrics
recorded in postinstall, see:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/installer/docs/postinst_metrics.md
</summary>
</histogram>
<histogram name="Installer.Postinstall.EfiBootEntryCount" units="entries"
expires_after="2026-05-24">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
Total number of EFI Boot* entries seen during postinstall, before making any
modifications.
Growth in higher buckets across releases warrants additional investigation:
are we accidentally creating excess entries?
This is reported during postinstall, only on ChromeOS, and only when
USE=postinst_metrics. There's also an increased risk of losing metrics
recorded in postinstall, see:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/installer/docs/postinst_metrics.md
</summary>
</histogram>
<histogram name="Installer.Postinstall.EfiBootEntryFailedLoad" units="entries"
expires_after="2026-05-24">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
The number of EFI Boot* entries that we couldn't load.
We have seen bugs result in failure to read entries.
This is reported during postinstall, only on ChromeOS, and only when
USE=postinst_metrics. There's also an increased risk of losing metrics
recorded in postinstall, see:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/installer/docs/postinst_metrics.md
</summary>
</histogram>
<histogram name="Installer.Postinstall.EfiManagementEvent"
enum="ChromeOSEfiManagementEvent" expires_after="2026-03-29">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
Event of interest from EFI boot entry management. Intended mainly to asses
the frequency of various expected-to-be-rare errors or uncommon occurrances.
This is reported in multiple, potentially-overlapping places, so the total
number of events is not necessarily meaningful. Instead look at the count of
individual buckets over time.
This is reported during postinstall, only on ChromeOS, and only when
USE=postinst_metrics. There's also an increased risk of losing metrics
recorded in postinstall, see:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/installer/docs/postinst_metrics.md
</summary>
</histogram>
<histogram name="Installer.Postinstall.ESPMountRetries" units="retries"
expires_after="2026-05-24">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
How many retries were necessary when attempting to mount the boot Partition
after partition updates. Reported once during postinstall. ChromeOS only.
</summary>
</histogram>
<histogram name="Installer.Postinstall.ManagedEfiBootEntryCount"
units="entries" expires_after="2026-05-24">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
Number of EFI Boot* entries seen during postinstall that match our
label/description.
Any values greater than 1 are potentially concerning, as we try to enforce
just one.
This is only reported if all entries load successfully, because otherwise
our count may be invalid.
This is reported during postinstall, only on ChromeOS, and only when
USE=postinst_metrics. There's also an increased risk of losing metrics
recorded in postinstall, see:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/installer/docs/postinst_metrics.md
</summary>
</histogram>
<histogram name="Installer.Postinstall.NonChromebookBiosSuccess.{BiosType}"
enum="BooleanSuccess" expires_after="2026-05-24">
<owner>tbrandston@google.com</owner>
<owner>chromeos-flex-eng@google.com</owner>
<summary>
Success or Failure of special handling for BiosType: {BiosType}.
This doesn't indicate overall success or failure of postinstall on these
systems.
This is reported after making changes to the EFI System Partition, only on
ChromeOS, and only when USE=postinst_metrics. There's also an increased risk
of losing metrics recorded in postinstall, see:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/installer/docs/postinst_metrics.md
</summary>
<token key="BiosType">
<variant name="EFI" summary=""/>
<variant name="Legacy" summary=""/>
<variant name="Secure" summary=""/>
<variant name="UBoot" summary=""/>
<variant name="Unknown" summary=""/>
</token>
</histogram>
<histogram name="Installer.PowerwashCount" units="powerwashes"
expires_after="2026-05-24">
<owner>kimjae@chromium.org</owner>
<owner>chromeos-core-services@chromium.org</owner>
<summary>
The number of times a Chrome OS device has been powerwashed (factory reset)
without subsequently going through recovery and/or changing the dev mode
switch. Reported once after each powerwash.
</summary>
</histogram>
<histogram name="Installer.PowerwashDays" units="powerwashdays"
expires_after="2026-03-29">
<owner>qianwan@google.com</owner>
<owner>chromeos-data@google.com</owner>
<summary>
How many calendar(UTC) days that powerwash occurred before the date that the
metric is recorded. The histogram is recorded on the next restart after
powerwash. The purpose of this metric is to get the date when the powerwash
happened. This histogram is 1 based instead of 0 based and 1 means the
device was restarted immediately after powerwash completed. The value for
marjority cases is 1, but some edge cases may greater than 1 which means the
device was shutdown immediately (by user manually) after the powerwash
completed and then restarted more than 1 days later. The powerwash date and
the metric recorded date are all get from client device.
</summary>
</histogram>
<histogram name="Installer.Recovery.NbrDurationMinutes" units="minutes"
expires_after="2026-03-11">
<owner>kimjae@chromium.org</owner>
<owner>chromeos-core-services@google.com</owner>
<summary>
The duration in minutes for the network based recovery to complete.
This is reported on reboot after a successful recovery.
This metric is specific to Chrome OS.
</summary>
</histogram>
<histogram name="Installer.Recovery.Reason" enum="ChromeOSRecoveryReason"
expires_after="2026-05-24">
<owner>kimjae@chromium.org</owner>
<owner>chromeos-core-services@google.com</owner>
<summary>
The reason for entering recovery mode immediately prior to a recovery.
This is reported on reboot after a successful recovery.
This metric is specific to Chrome OS.
</summary>
</histogram>
<histogram name="Setup.Install.LzmaUnPackStatus_{UnPackConsumer}"
enum="UnPackStatus" expires_after="never">
<owner>waffles@chromium.org</owner>
<owner>grt@chromium.org</owner>
<summary>
Record the status of unpacking the contents of a 7z file. {UnPackConsumer}
</summary>
<token key="UnPackConsumer">
<variant name="CompressedChromeArchive"
summary="compressed archive: chrome.packed.7z holding chrome.7z
(big)."/>
<variant name="UncompressedChromeArchive"
summary="uncompressed archive: chrome.7z holding install dir (big)."/>
</token>
</histogram>
<histogram name="Setup.Install.PeakPagefileUsage" units="KB"
expires_after="never">
<owner>huangs@chromium.org</owner>
<summary>
The peak page file usage by setup.exe in KB during install or uninstall
attempt.
</summary>
</histogram>
<histogram name="Setup.Install.PeakWorkingSetSize" units="KB"
expires_after="never">
<owner>huangs@chromium.org</owner>
<summary>
The peak working set size of setup.exe in KB during install or uninstall
attempt.
</summary>
</histogram>
<histogram name="Setup.Install.Result" enum="SetupInstallResult"
expires_after="never">
<owner>grt@chromium.org</owner>
<owner>ydago@chromium.org</owner>
<summary>
The final exit-result of the entire run of setup.exe on Windows.
</summary>
</histogram>
<histogram name="Setup.Install.SCM.{Operation}.Result" enum="WinGetLastError"
expires_after="2026-10-30">
<owner>grt@chromium.org</owner>
<owner>ganesh@chromium.org</owner>
<summary>
The Windows error code (or ERROR_SUCCESS) for a call to {Operation} when
interacting with the Service Control Manager to install or update a Windows
service. Recorded once per operation.
</summary>
<token key="Operation">
<variant name="ChangeServiceConfig"/>
<variant name="ChangeServiceConfig2"/>
<variant name="CreateService"/>
<variant name="DeleteService"/>
<variant name="OpenSCManager"/>
<variant name="OpenService"/>
<variant name="QueryServiceConfig"/>
<variant name="QueryServiceConfig2"/>
</token>
</histogram>
<histogram
name="Setup.Install.UnbufferedFileWriter.DeterminePhysicalSectorSizeResult"
enum="DeterminePhysicalSectorSizeResult" expires_after="2026-09-28">
<owner>grt@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The result of an attempt to determine the size of a physical sector of the
disk to which a file is to be written. Recorded once per process.
</summary>
</histogram>
<histogram name="Setup.Install.UnbufferedFileWriter.PhysicalSectorSize"
units="bytes" expires_after="2026-09-28">
<owner>grt@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The number of bytes per physical sector reported for the disk to which a
file is to be written. Recorded once per process.
</summary>
</histogram>
<histogram name="Setup.Install.UnbufferedFileWriter.{Operation}.Error"
enum="WinGetLastError" expires_after="2026-09-28">
<owner>grt@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The Windows error code for a failed {Operation} on an UnbufferedFileWriter.
Recorded once per operation that encounters an error.
</summary>
<token key="Operation">
<variant name="Allocate"/>
<variant name="ClearDelete"/>
<variant name="Create"/>
<variant name="SetInfo"/>
<variant name="Write"/>
</token>
</histogram>
</histograms>
</histogram-configuration>