blob: 19f99a9f65276524f41af0f41be1d53bd8ca34f6 [file] [log] [blame]
<!--
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 Power 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="AdaptiveChargingType">
<!--
Variants describing the type of charging used to charge to full once the hold percent is reached in Adaptive Charging.
-->
<variant name=""
summary="This histogram holds historical data. More recent data can be
found in the histogram for the `NormalCharging` variant."/>
<variant name=".MixedCharging"/>
<variant name=".NormalCharging"/>
<variant name=".SlowCharging"/>
</variants>
<variants name="BatteryCapacityType">
<!--
Variants describing the type of battery capacity.
-->
<variant name="Actual"
summary="Actual capacity of the battery pack. This is usually a few
percentage over the design capacity for a new battery and
gradully degrade to 80-90% over the course of 2-4 years."/>
<variant name="Design"
summary="The design capacity of the battery pack from the manufacturer.
This is used to calculated promised battery life claim when
the device is released."/>
</variants>
<variants name="IntervalType">
<!--
Variants describing if the histogram contains all samples, only the first
sample, or only subsequent ones.
-->
<variant name="" summary="all recorded samples"/>
<variant name=".Initial"
summary="only the first sample recorded of the current Chrome
execution. The discharge potentially covers an interval of
time during which Chrome wasn't yet running"/>
<variant name=".Periodic"
summary="every sample recorded after the first one"/>
</variants>
<variants name="UsageScenario">
<!--
Variants describing the usage scenario for a time interval. Consider updating
UsageScenario10Sec when updating this.
-->
<variant name="" summary="all intervals no matter the usage scenario"/>
<variant name=".AllTabsHidden"
summary="intervals during which there were tabs, but none visible">
<obsolete>
01/2022: Replaced with AllTabsHidden_VideoCapture, AllTabsHidden_Audio and
AllTabsHidden_NoVideoCaptureOrAudio.
</obsolete>
</variant>
<variant name=".AllTabsHidden_Audio"
summary="intervals during which there was no visible tab and no video
capture, but there was audio"/>
<variant name=".AllTabsHidden_NoVideoCaptureOrAudio"
summary="intervals during which there was no visible tab, no video
capture and no audio"/>
<variant name=".AllTabsHidden_VideoCapture"
summary="intervals during which there was no visible tab, but there was
video capture"/>
<variant name=".Audio"
summary="intervals during which there was audio and at least 1 visible
tab, but there was no video playback or video capture"/>
<variant name=".EmbeddedVideo_NoNavigation"
summary="intervals during which a video played in a visible tab and
there was no navigation and no video capture"/>
<variant name=".EmbeddedVideo_WithNavigation"
summary="intervals during which a video played in a visible tab and
there was a navigation, but no video capture"/>
<variant name=".FullscreenVideo"
summary="intervals during which a video played in fullscreen and there
was no video capture"/>
<variant name=".Interaction"
summary="intervals during which there was at least 1 visible tab and a
user interaction, but no navigation, audio, video playback or
video capture"/>
<variant name=".Navigation"
summary="intervals during which there was at least 1 visible tab and a
navigation, but no audio, video playback or video capture"/>
<variant name=".Passive"
summary="intervals during which there was at least 1 visible tab, but
no user interaction, navigation, audio, video playback or
video capture"/>
<variant name=".VideoCapture"
summary="intervals during which there was at least 1 visible tab and
video capture"/>
<variant name=".ZeroWindow"
summary="intervals during which there was no window"/>
</variants>
<variants name="UsageScenario10sec">
<!--
Variants describing the usage scenario for a 10 seconds intervals. Contains
more variants than "UsageScenario".
-->
<variant name="" summary="10 seconds runtime intervals"/>
<variant name=".AllTabsHidden_Audio"
summary="10 seconds runtime intervals during which there was no visible
tab and no video capture, but there was audio"/>
<variant name=".AllTabsHidden_NoVideoCaptureOrAudio"
summary="10 seconds runtime intervals ending when there was no visible
tab, no video capture and no audio in the last 2 minutes"/>
<variant name=".AllTabsHidden_NoVideoCaptureOrAudio_Recent"
summary="10 seconds runtime intervals during which there was no visible
tab, no video capture and no audio, but there was one those in
the last 2 minutes"/>
<variant name=".AllTabsHidden_VideoCapture"
summary="10 seconds runtime intervals during which there was no visible
tab, but there was video capture"/>
<variant name=".Audio"
summary="10 seconds runtime intervals during which there was audio and
at least 1 visible tab, but there was no video playback or
video capture"/>
<variant name=".EmbeddedVideo_NoNavigation"
summary="10 seconds runtime intervals during which a video played in a
visible tab and there was no navigation and no video capture"/>
<variant name=".EmbeddedVideo_WithNavigation"
summary="10 seconds runtime intervals during which a video played in a
visible tab and there was a navigation, but no video capture"/>
<variant name=".FullscreenVideo"
summary="10 seconds runtime intervals during which a video played in
fullscreen and there was no video capture"/>
<variant name=".Interaction"
summary="10 seconds runtime intervals during which there was at least 1
visible tab and a user interaction, but no navigation, audio,
video playback or video capture"/>
<variant name=".Navigation"
summary="10 seconds runtime intervals during which there was at least 1
visible tab and a navigation, but no audio, video playback or
video capture"/>
<variant name=".Passive"
summary="10 seconds runtime intervals during which there was at least 1
visible tab, but no user interaction, navigation, audio, video
playback or video capture"/>
<variant name=".VideoCapture"
summary="10 seconds runtime intervals during which there was at least 1
visible tab and video capture"/>
<variant name=".ZeroWindow"
summary="10 seconds runtime intervals ending when there was no window
in the last 2 minutes"/>
<variant name=".ZeroWindow_Recent"
summary="10 seconds runtime intervals during which there was no window,
but there was in the last 2 minutes"/>
</variants>
<histogram name="PerformanceMonitor.AverageCPU8.Total{UsageScenario}"
units="1/100 %" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
See definition of PerformanceClass.AverageCPU8.ProcessName. This is recorded
every 2 minutes for {UsageScenario} (see go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.AverageCPU8.{ProcessName}" units="1/100 %"
expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Sum of the average CPU utilization of each process of the type
{ProcessName}, read out at each two-minute interval. The utilization is in
the 0-100% range per CPU, which is then summed up and multiplied by 100. The
histogram is capped at 20000 (equivalent to 2 cores fully loaded). I.e. 4
cores busy at 25% each will read as 25 * 4 * 100 = 10000. If no process of
type {ProcessName} existed during the interval, a sample of zero is still
emitted.
Not recorded on Android.
NOTE: On Windows, this is not recorded on CPUs that do not support constant
rate TSC.
</summary>
<token key="ProcessName" variants="ProcessName"/>
</histogram>
<histogram name="PerformanceMonitor.EnergyImpact2.Total{UsageScenario}"
units="ScaledUnits" expires_after="2024-03-31">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
See definition of PerformanceMonitor.EnergyImpact2.ProcessName. This is
recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.EnergyImpact2.{ProcessName}"
units="ScaledUnits" expires_after="2024-03-31">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
(Mac only) The sum of the Energy Impact of each process of the type
{ProcessName}. Energy Impact is a synthetic power use estimate, as displayed
in macOS Activity Monitor and the battery menu. This incorporates CPU
utilization, idle wakeups, IO, and task QoS level using per-machine-model
weights. Divide by 100 to match Activity Monitor's scale. Recorded every two
minutes.
NOTE: This metric has one signigicant limitation, it doesn't report the CPU
usage of processes that terminate before the end of the interval. This means
that short lived processes will rarely be included in the data. Furthermore,
we know that short-lived processes are very common (see
Renderer.ProcessLifetime). A future version of this metric will address this
limitation.
</summary>
<token key="ProcessName" variants="ProcessName"/>
</histogram>
<histogram name="PerformanceMonitor.HasPreciseCPUUsage" enum="Boolean"
expires_after="2022-09-30">
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Records whether or not the CPU supports constant rate TSC, which allows a
more precise calculation of the CPU usage of a process. Recorded during
startup when the ProcessMonitor is instantiated.
Only Recorded on Windows.
</summary>
</histogram>
<histogram name="PerformanceMonitor.IdleWakeups2.Total{UsageScenario}"
units="WakeupsPerSecond" expires_after="2024-03-31">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
See definition of PerformanceMonitor.IdleWakeups2.ProcessName. This is
recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.IdleWakeups2.{ProcessName}"
units="WakeupsPerSecond" expires_after="2024-03-31">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The sum of the average CPU idle wakeups per second of each process of the
type {ProcessName}, sampled every two minutes.
NOTE: This metric has one signigicant limitation, it doesn't report the CPU
usage of processes that terminate before the end of the interval. This means
that short lived processes will rarely be included in the data. Furthermore,
we know that short-lived processes are very common (see
Renderer.ProcessLifetime). A future version of this metric will address this
limitation.
</summary>
<token key="ProcessName" variants="ProcessName"/>
</histogram>
<histogram
name="PerformanceMonitor.PackageExitIdleWakeups2.Total{UsageScenario}"
units="WakeupsPerSecond" expires_after="2024-03-31">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.orgg</owner>
<summary>
See definition of PerformanceMonitor.PackageExitIdleWakeups2.ProcessName.
This is recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.PackageExitIdleWakeups2.{ProcessName}"
units="WakeupsPerSecond" expires_after="2024-03-31">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.orgg</owner>
<summary>
(Mac only) The sum of the average package exit idle wakeups per second of
each process of the type {ProcessName}, sampled every two minutes. This is a
subset of wakeups that indicate that the processor complex was taken out of
low-power state. For more info, see the powermetrics man page on macOS.
NOTE: This metric has one signigicant limitation, it doesn't report the CPU
usage of processes that terminate before the end of the interval. This means
that short lived processes will rarely be included in the data. Furthermore,
we know that short-lived processes are very common (see
Renderer.ProcessLifetime). A future version of this metric will address this
limitation.
</summary>
<token key="ProcessName" variants="ProcessName"/>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.Availability"
enum="CoalitionIDAvailability" expires_after="2023-09-17">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Details about whether or not it's possible to get coalition resource usage
data on the system. Only on macOS, recorded once at startup.
</summary>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.BytesReadPerSecond2{UsageScenario}"
units="BytesPerSecond" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The IO reads reported by the resource coalition mechanism on macOS. The data
is reported as the rate per second during this interval with a byte
granularity. This is recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.BytesWrittenPerSecond2{UsageScenario}"
units="BytesPerSecond" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The IO writes reported by the resource coalition mechanism on macOS. The
data is reported as the rate per second during this interval with a byte
granularity. This is recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.CPUTime"
units="hundredth of percent" expires_after="2024-03-31">
<obsolete>
Deprecated in 07/2021 because the computation was wrong. Replaced by
PerformanceMonitor.ResourceCoalition.CPUTime2.
</obsolete>
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Average CPU utilization reported by the resource coalition mechanism on
macOS. Read out at each two-minute interval. The utilization is in the
0-100% range per CPU, which is then summed up and multiplied by 100. The
histogram is capped at 20000 (equivalent to 2 cores fully loaded). I.e. 4
cores busy at 25% each will read as 25 * 4 * 100 = 10000.
</summary>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.CPUTime2_10sec{UsageScenario10sec}"
units="1/100 %" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Average CPU utilization reported by the resource coalition mechanism on
macOS. The utilization is in the 0-100% range per CPU, which is then summed
up and multiplied by 100. The histogram is capped at 20000 (equivalent to 2
cores fully loaded). I.e. 4 cores busy at 25% each will read as 25 * 4 * 100
= 10000. This is recorded for {UsageScenario10sec} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario10sec" variants="UsageScenario10sec"/>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.CPUTime2{UsageScenario}"
units="1/100 %" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Average CPU utilization reported by the resource coalition mechanism on
macOS. The utilization is in the 0-100% range per CPU, which is then summed
up and multiplied by 100. The histogram is capped at 20000 (equivalent to 2
cores fully loaded). I.e. 4 cores busy at 25% each will read as 25 * 4 * 100
= 10000. This is recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.Energy"
units="milliwatts" expires_after="2024-03-31">
<obsolete>
Deprecated in 07/2021 because the name of the metric was wrong. Replaced by
PerformanceMonitor.ResourceCoalition.Power.
</obsolete>
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The energy usage reported by the resource coalition mechanism on macOS.
Reported every 2 minutes. Only available on devices with an ARM CPU.
</summary>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.EnergyImpact{UsageScenario}"
units="centi-EnergyImpact" expires_after="2024-03-31">
<owner>siggi@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
(Mac only) A synthetic power use estimate, as displayed in macOS Activity
Monitor and the battery menu. This incorporates CPU utilization, idle
wakeups, IO, and task QoS level using per-machine-model weights. Divide by
100 to match Activity Monitor's scale. Only available on macs with an Intel
CPU.
This EnergyImpact score is computed from the usage reported by the resource
coalition mechanism on macOS. It accounts for the resource usage of all
Chrome processes no matter how short-lived, as well as XPC services running
on Chrome's behalf.
This is recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.GPUTime"
units="hundredth of percent" expires_after="2024-03-31">
<obsolete>
Deprecated in 07/2021 because the computation was wrong. Replaced by
PerformanceMonitor.ResourceCoalition.GPUTime2.
</obsolete>
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Average GPU utilization reported by the resource coalition mechanism on
macOS. Read out at each two-minute interval. The utilization is in the
0-100% range and is multiplied by 100. The histogram is capped at 10000
(equivalent to the GPU being used 100% of the time).
</summary>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.GPUTime2{UsageScenario}"
units="1/100 %" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Average GPU utilization reported by the resource coalition mechanism on
macOS. The utilization is in the 0-100% range and is multiplied by 100. The
histogram is capped at 10000 (equivalent to the GPU being used 100% of the
time). This is recorded every 2 minutes for {UsageScenario} (see
go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.InterruptWakeupsPerSecond{UsageScenario}"
units="milliWakeupsPerSecond" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The interrupt wakeup rate reported by the resource coalition mechanism on
macOS. The data is reported as the rate per second during this interval with
a milliwakeup granularity. This is recorded every 2 minutes for
{UsageScenario} (see go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.PlatformIdleWakeupsPerSecond{UsageScenario}"
units="milliWakeupsPerSecond" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The platform idle wakeup rate reported by the resource coalition mechanism
on macOS. The data is reported as the rate per second during this interval
with a milliwakeup granularity. This is recorded every 2 minutes for
{UsageScenario} (see go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.ResourceCoalition.Power2{UsageScenario}"
units="milliwatts" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The power usage reported by the resource coalition mechanism on macOS. Only
reported on devices with an ARM CPU. This is recorded every 2 minutes for
{UsageScenario} (see go/chrome_power_use_per_scenario).
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram
name="PerformanceMonitor.ResourceCoalition.QoSLevel.{QoSLevel}{UsageScenario}"
units="1/100 %" expires_after="2024-03-31">
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Average CPU time spent in a given QoS level, as reported by the resource
coalition mechanism on macOS. The utilization is in the 0-100% range and is
multiplied by 100. The histogram is capped at 10000 (equivalent to the GPU
being used 100% of the time). This is recorded every 2 minutes for
{UsageScenario} (see go/chrome_power_use_per_scenario).
</summary>
<token key="QoSLevel">
<variant name="Background"/>
<variant name="Default"/>
<variant name="Legacy"/>
<variant name="Maintenance"/>
<variant name="UserInitiated"/>
<variant name="UserInteractive"/>
<variant name="Utility"/>
</token>
<token key="UsageScenario" variants="UsageScenario"/>
</histogram>
<histogram name="PerformanceMonitor.UsageScenario.LongInterval"
enum="PerformanceMonitor.UsageScenario.LongInterval"
expires_after="2023-10-22">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Record the usage scenario that applies to the last 2 mins of Chrome use.
Recorded every two minutes on a timer. For more information on user
scenarios see go/chrome_power_use_per_scenario.
Values in the enum match the variants present in the
&quot;UsageScenario&quot; variants.
</summary>
</histogram>
<histogram name="PerformanceMonitor.UsageScenario.ShortInterval"
enum="PerformanceMonitor.UsageScenario.ShortInterval"
expires_after="2023-10-22">
<owner>olivierli@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Record the usage scenario that applies to the last 10 seconds of Chrome use.
Recorded every two minutes on a timer. For more information on user
scenarios see go/chrome_power_use_per_scenario.
Values in the enum match the variants present in the
&quot;UsageScenario10Sec&quot; variants.
</summary>
</histogram>
<histogram
name="Power.AdaptiveChargingBatteryPercentageOnUnplug{AdaptiveChargingType}"
units="%" expires_after="2023-07-30">
<owner>dbasehore@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The battery percentage of the system when the AC charger is unplugged. This
metric is recorded upon unplug of an AC charger, unless the system is
shutdown. Since this metric is only reported when the battery percentage has
reached the hold percent (the battery charge % that charging is delayed at,
which is 80%) for Adaptive Charging, most values should be high.
We record this under several variants, which split this result by the type
of charging that is used to charge to full once the hold percent is reached.
Normal charging uses the default rate of charging, slow charging uses a
battery charge current limit of 0.1C (10% of battery design capacity) and
mixed charging is a combination of both normal and slow charging which can
occur when the unplug time prediction moves sooner, resulting in the switch
from slow charging to normal charging in order to finish charging by the
unplug time predicted.
{AdaptiveChargingType}
</summary>
<token key="AdaptiveChargingType" variants="AdaptiveChargingType"/>
</histogram>
<histogram
name="Power.AdaptiveChargingDelayDelta.{AdaptiveChargingState}.{OnTimeStatus}"
units="minutes" expires_after="2023-10-26">
<owner>dbasehore@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The difference between the correct delay time and the actual delay time for
Adaptive Charging, as computed by (correct delay - actual delay) in minutes.
Adaptive Charging delays charging from a hold charge percentage, 80%, to
full if it predicts the charger will be unplugged more than 3 hours in the
future. The correct delay time ends exactly 3 hours before the user unplugs
the charger, or 2 hours before the user unplugs if the available time is
less than 3 hours. This metric is recorded upon unplug of an AC charger, if
the hold percent was reached.
We record this under several variants, which split this result by whether
Adaptive Charging is enabled and active, a heuristic disabled the feature,
the user canceled the feature for this use, the user disabled the feature,
or the feature is not supported on the hardware class. We still record the
metric if the feature is not supported, since we may backport support to
older systems, and we'd like to know how well the ML model does before
enabling support.
Since metrics don't work with negative values, this is additionally split
across Late and Early variants. The absolute values of negatives are
reported under the Late variant. Positive and 0 values are reported under
the Early variant.
</summary>
<token key="AdaptiveChargingState">
<variant name="Active"/>
<variant name="HeuristicDisabled"/>
<variant name="NotSupported"/>
<variant name="UserCanceled"/>
<variant name="UserDisabled"/>
</token>
<token key="OnTimeStatus">
<variant name="Early"/>
<variant name="Late"/>
</token>
</histogram>
<histogram name="Power.AdaptiveChargingMinutes.{ReportType}" units="minutes"
expires_after="2024-03-23">
<owner>dbasehore@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Total time, in minutes, for Adaptive Charging. This metric is recorded upon
unplug unplug of an AC charger, if the hold percent (the battery charge %
that charging is delayed at, which is 80%) for Adaptive Charging was
reached. This is split by two variants, Available and Delay, which report
the available time for Adaptive Charging and the delay time for Adaptive
Charging.
</summary>
<token key="ReportType">
<variant name="Available"/>
<variant name="Delay"/>
</token>
</histogram>
<histogram
name="Power.AdaptiveChargingMinutesDelta.{AdaptiveChargingState}.{OnTimeStatus}"
units="minutes" expires_after="2023-06-13">
<owner>dbasehore@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The difference, in minutes, between when the AC charger is unplugged and
when it was predicted to be unplugged by the Adaptive Charging feature.
Computed as (actual - predicted). This metric is recorded upon unplug of an
AC charger, if the hold percent (the battery charge % that charging is
delayed at, which is 80%) for Adaptive Charging was reached.
We record this under several variants, which split this result by whether
Adaptive Charging is enabled and active, a heuristic disabled the feature,
the user canceled the feature for this use, the user disabled the feature,
or the feature is not supported on the hardware class. We still record the
metric if the feature is not supported, since we may backport support to
older systems, and we'd like to know how well the ML model does before
enabling support.
Since metrics don't work with negative values, this is additionally split
across Late and Early variants. The absolute values of negatives are
reported under the Late variant. Positive and 0 values are reported under
the Early variant.
</summary>
<token key="AdaptiveChargingState">
<variant name="Active"/>
<variant name="HeuristicDisabled"/>
<variant name="NotSupported"/>
<variant name="UserCanceled"/>
<variant name="UserDisabled"/>
</token>
<token key="OnTimeStatus">
<variant name="Early"/>
<variant name="Late"/>
</token>
</histogram>
<histogram name="Power.AdaptiveChargingMinutesFullOnAC.{AdaptiveChargingState}"
units="minutes" expires_after="2023-10-26">
<owner>dbasehore@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
This shows the time spent fully charged while on AC in minutes.
We record this under several variants, which split this result by whether
Adaptive Charging is enabled and active, a heuristic disabled the feature,
the user canceled the feature for this use, the user disabled the feature,
or the feature is not supported on the hardware class. We still record the
metric if the feature is not supported, since we may backport support to
older systems, and we'd like to know how well the ML model does before
enabling support.
</summary>
<token key="AdaptiveChargingState">
<variant name="Active"/>
<variant name="HeuristicDisabled"/>
<variant name="NotSupported"/>
<variant name="UserCanceled"/>
<variant name="UserDisabled"/>
</token>
</histogram>
<histogram name="Power.AdaptiveChargingMinutesToFull{AdaptiveChargingType}"
units="minutes" expires_after="2023-07-30">
<owner>dbasehore@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The time it takes to fully charge from the Adaptive Charging hold percent
(the battery charge % that we delay charging at). This is recorded to make
sure that we leave enough time for systems to fully charge to full from the
hold percent.
We record this under several variants, which split this result by the type
of charging that is used to charge to full once the hold percent is reached.
Normal charging uses the default rate of charging, slow charging uses a
battery charge current limit of 0.1C (10% of battery design capacity) and
mixed charging is a combination of both normal and slow charging which can
occur when the unplug time prediction moves sooner, resulting in the switch
from slow charging to normal charging in order to finish charging by the
unplug time predicted.
{AdaptiveChargingType}
</summary>
<token key="AdaptiveChargingType" variants="AdaptiveChargingType"/>
</histogram>
<histogram name="Power.AmbientLightOnResume" units="lux"
expires_after="2023-08-27">
<owner>bkersten@chromium.org</owner>
<owner>slangley@chromium.org</owner>
<summary>
The Ambient Light Sensor reading sampled on resume from suspend. Only
applicable to Chrome OS.
</summary>
</histogram>
<histogram name="Power.ApproxCpuTimeSecondsPerCoreTypeAndFrequency"
units="50 MHz" expires_after="2022-08-28">
<obsolete>
Removed in March 2022 without replacement.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Total seconds of CPU time consumed by Chrome, split by process type as well
as core type and core frequency. Currently only implemented on Android. For
every second of CPU time consumed by a process on a specific CPU core type
and at a specific frequency, a sample is recorded into the bucket for the
frequency range. Samples are recorded periodically depending on the task
load of each process's main thread. The histogram thus shows the total sum
of CPU time seconds spent for a specific process and core type across all
users.
Compared with Power.CpuTimeSecondsPerCoreTypeAndFrequency, the values in
this histogram are approximated from more widely supported global
per-CPU-core time_in_state stats, while
Power.CpuTimeSecondsPerCoreTypeAndFrequency reads per-thread time_in_state
stats that are only supported on newer Pixel devices (as of mid-2020).
For a histogram of daily per-user values, select &quot;Per-Client
Aggregation Mode&quot;.
</summary>
</histogram>
<histogram name="Power.AvgCpuLoad.{ProcessType}" units="%"
expires_after="2023-07-31">
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Records the average CPU load caused by the corresponding process over the
last 30 (or more) seconds. Emitted at the end of each such period, so not
more often that once in 30 sec. Note that CPU load can be greater than 100%
on milti-core systems.
</summary>
<token key="ProcessType">
<variant name="Browser"/>
<variant name="GPU"/>
<variant name="Other"/>
<variant name="Renderer"/>
</token>
</histogram>
<histogram name="Power.BacklightLevel{PrivacyScreenState}{PowerSource}"
units="%" expires_after="2023-05-12">
<owner>puthik@chromium.org</owner>
<owner>mqg@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The level of the backlight as a percentage when the privacy screen is in
{PrivacyScreenState} state and the device is powered by {PowerSource}.
Sampled every 30 seconds. Chrome OS only.
</summary>
<token key="PrivacyScreenState">
<variant name=""
summary="All Chrome OS, irrespective of whether privacy screens are
present, or privacy screen state."/>
<variant name="PrivacyScreenDisabled"
summary="Chrome OS with privacy screens only."/>
<variant name="PrivacyScreenEnabled"
summary="Chrome OS with privacy screens only."/>
</token>
<token key="PowerSource">
<variant name="OnAC"/>
<variant name="OnBattery"/>
</token>
</histogram>
<histogram name="Power.BatteryCapacity.{BatteryCapacityType}" units="mWh"
expires_after="2023-05-12">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS {BatteryCapacityType} battery capacity in milliwatt-hours.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryChargeHealth" units="%"
expires_after="2023-09-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS battery charge health percentage. Sampled once when device starts
charging.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeGranularityAvailable"
enum="BooleanAvailable" expires_after="2023-10-08">
<owner>pmonette@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
The availability of the battery discharge granularity. If true,
Power.BatteryDischargeGranularity is reported for this client.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
Reported only on Windows, when a single battery is installed and the
operating system says that the unit is mWh.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeGranularityIsOrdered"
enum="BooleanOrdered" expires_after="2023-10-08">
<owner>pmonette@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
Reports if the battery discharge granularities are ordered according to the
MSDN documentation.
The documentation states that the most coarse granularity is the first
element among all reporting scales.
Reported only on Windows, every time the battery state is queried.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeGranularityMilliwattHours2"
units="milliwatt-hours" expires_after="2023-10-08">
<owner>pmonette@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
The granularity of the battery discharge rate value as reported by the
operating system, if available. Always the most coarse granularity among all
the reporting scales of the battery, regardless of the current capacity.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
Reported only on Windows, when a single battery is installed and the
operating system says that the unit is mWh.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeGranularityRelative2"
units="hundredth of a percent" expires_after="2023-10-08">
<owner>pmonette@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
The granularity of the battery discharge rate value as reported by the
operating system, if available. Always the most coarse granularity among all
the reporting scales of the battery, regardless of the current capacity.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
Reported only on Windows, when a single battery is installed and the
operating system says that the unit is mWh.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeMode5{UsageScenario}{IntervalType}"
enum="BatteryDischargeMode" expires_after="2024-03-31">
<owner>etiennep@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<summary>
Battery discharge mode describing whether BatteryDischargeRateMilliwatts5
could be reported or not, and why.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
This is recorded for {UsageScenario}.
This contains {IntervalType}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
</histogram>
<histogram name="Power.BatteryDischargeRate" units="mW"
expires_after="2023-10-15">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS battery discharge rate in mW sampled every 30 seconds while the
device runs on battery.
</summary>
</histogram>
<histogram
name="Power.BatteryDischargeRateMilliwatts6{UsageScenario}{IntervalType}"
units="milliwatts" expires_after="2024-03-31">
<owner>etiennep@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<owner>lgrey@chromium.org</owner>
<summary>
Battery discharge in milliwatts, example: - Used capacity at the beginning
of the interval: 1000 mWh; - Used capacity at the end of the interval: 1010
mWh; - Discharge: (1010-1000) = 10 mWh per minute - Reported value: 600 mW.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
This is recorded for {UsageScenario}.
This contains {IntervalType}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
</histogram>
<histogram
name="Power.BatteryDischargeRatePreciseMilliwatts{UsageScenario}{IntervalType}"
units="milliwatts" expires_after="2024-03-31">
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Battery discharge in milliwatts, example: - Used capacity at the beginning
of the interval: 1000 mWh; - Used capacity at the end of the interval: 1010
mWh; - Discharge: (1010-1000) = 10 mWh per minute - Reported value: 600 mW.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
Clients with a coarse battery discharge granularity (&gt;17 mWh) are
excluded.
This is recorded for {UsageScenario}.
This contains {IntervalType}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
</histogram>
<histogram
name="Power.BatteryDischargeRateRelative5{UsageScenario}{IntervalType}"
units="hundredth of percent" expires_after="2024-03-31">
<owner>etiennep@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<owner>lgrey@chromium.org</owner>
<summary>
Battery discharge rate per minute, with 1/10000 of full charge resolution,
example: - Battery capacity = 4000 mAh; - Battery charge at the beginning of
the interval: 3900 mAh; - Battery charge at the end of the interval: 3700
mAh; - Discharge proportion: (3900-3700) / 4000 = 0.05 - Reported value:
500.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
This is recorded for {UsageScenario}.
This contains {IntervalType}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
</histogram>
<histogram name="Power.BatteryDischargeRateWhileHibernated" units="mW"
expires_after="2023-06-15">
<owner>puthik@chromium.org</owner>
<owner>evgreen@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS battery discharge rate in mW while the system was hibernated,
sampled at resume. Only reported if the system was on battery power both
before hibernating and after resuming, if the energy level didn't increase
while hibernated (which would indicate that an AC adapter was connected),
and if the system was hibernated for at least a minute.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeRateWhileSuspended" units="mW"
expires_after="2023-09-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS battery discharge rate in mW while the system was suspended,
sampled at resume. Only reported if the system was on battery power both
before suspending and after resuming, if the energy level didn't increase
while suspended (which would indicate that an AC adapter was connected), and
if the system was suspended for at least a minute.
</summary>
</histogram>
<histogram name="Power.BatteryInfoSample" enum="BatteryInfoSampleResult"
expires_after="2020-11-29">
<owner>tbroch@chromium.org</owner>
<summary>
Counts the number of times we have read the battery status from sysfs and if
it gave us sensible values. Chrome OS only.
</summary>
</histogram>
<histogram name="Power.BatteryLife.{BatteryCapacityType}" units="minute"
expires_after="2023-05-12">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS battery life while in active state, measured in minutes using
{BatteryCapacityType} full capacity of the battery pack.
This is calculated using size of the battery divide by battery discharge
rate sampling in Power.BatteryDischargeRate. Note that the size of the
battery is derated by the low battery shutdown percent.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryLifeWhileSuspended.{BatteryCapacityType}"
units="hour" expires_after="2023-05-12">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS battery life while suspended, measured in hours using
{BatteryCapacityType} full capacity of the battery pack.
This is calculated using size of the battery divide by battery discharge
rate sampling in Power.BatteryDischargeRateWhileSuspended.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2023-08-27">
<owner>ryansturm@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
The drop in battery since the last operating system battery update as a
percent of total device battery. If the drop is not a round percentage
point, the unreported amount will be carried over until the battery level
drops by a full percentage point. Recorded when the battery level drops by
more than a percentage point. If the user charges the device, the battery
tracking is reset (the amount carried over is reset). This histograms sum is
most likely the most useful figure when comparing experiments. Recorded even
when Chrome is in the background.
</summary>
</histogram>
<histogram name="Power.BatteryRemainingAtEndOfSessionOnAC" units="%"
expires_after="M85">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
sampled at the end of a user session when the device is on AC.
</summary>
</histogram>
<histogram name="Power.BatteryRemainingAtEndOfSessionOnBattery" units="%"
expires_after="2022-05-01">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
sampled at the end of a user session when the device is on battery.
</summary>
</histogram>
<histogram name="Power.BatteryRemainingAtStartOfSessionOnAC" units="%"
expires_after="2022-04-10">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
sampled at the start of a user session when the device is on AC.
</summary>
</histogram>
<histogram name="Power.BatteryRemainingAtStartOfSessionOnBattery" units="%"
expires_after="2021-03-15">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
sampled at the start of a user session when the device is on battery.
</summary>
</histogram>
<histogram name="Power.BatteryRemainingWhenChargeStarts" units="%"
expires_after="2022-05-01">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
sampled when charging starts.
</summary>
</histogram>
<histogram name="Power.BitfixChunks" units="units" expires_after="M77">
<owner>dianders@chromium.org</owner>
<summary>
Chrome OS (Snow RO firmware 2695.90.0 only) number of 8K chunks that were
fixed (memory corruption corrected) for each suspend/resume cycle. Expect 0
around 97% of the time and a non-zero value around 3% of the time.
</summary>
</histogram>
<histogram name="Power.BitfixFixes" units="units" expires_after="M77">
<owner>dianders@chromium.org</owner>
<summary>
Chrome OS (Snow RO firmware 2695.90.0 only) number of 4-byte words that were
fixed (memory corruption corrected) for each suspend/resume cycle. Expect 0
around 97% of the time and a non-zero value around 3% of the time. Would be
exactly equal to Power.BitfixChunks if there were only one corrupted word in
each chunk but is sometimes several times higher.
</summary>
</histogram>
<histogram name="Power.ConnectedChargingPorts"
enum="PowerConnectedChargingPorts" expires_after="2022-04-24">
<owner>bleung@chromium.org</owner>
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Connected charging ports on Chrome OS. A sample is reported every time that
the power manager polls sysfs (typically every 30 seconds). Ordinals are
assigned based on the lexicographical ordering of power supply names from
sysfs and have no implied correspondence with ports' physical locations. For
example, with ports 'CROS_USB_PD_CHARGER0' and 'CROS_USB_PD_CHARGER1',
'first' refers to the former and 'second' to the latter. To determine a
port's physical location, see the powerd charging_ports pref in the device's
overlay.
</summary>
</histogram>
<histogram name="Power.CpuAffinityExperiments.ProcessAffinityMode"
enum="CpuAffinityMode" expires_after="2022-10-04">
<obsolete>
Deprecated in 03/2022 because the Power Scheduler feature did not launch.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
For clients enrolled in CPU affinity restriction experiments (e.g.
restricting execution to little cores only), records the new CPU affinity
for a process every time it is changed, provided it was succcessfully set.
</summary>
</histogram>
<histogram name="Power.CpuAffinityExperiments.ProcessAffinityUpdateSuccess"
enum="BooleanSuccess" expires_after="2022-10-04">
<obsolete>
Deprecated in 03/2022 because the Power Scheduler feature did not launch.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
For clients enrolled in CPU affinity restriction experiments (e.g.
restricting execution to little cores only), records whether the CPU
affinity for a process could be succcessfully set.
</summary>
</histogram>
<histogram name="Power.CpuTimeSecondsPerCoreTypeAndFrequency" units="50 MHz"
expires_after="2022-07-11">
<obsolete>
Removed in March 2022 without replacement.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Total seconds of CPU time consumed by Chrome, split by process type as well
as core type and core frequency. Currently only implemented on Android. For
every second of CPU time consumed by a process on a specific CPU core type
and at a specific frequency, a sample is recorded into the bucket for the
frequency range. Samples are recorded periodically depending on the task
load of each process's main thread. The histogram thus shows the total sum
of CPU time seconds spent for a specific process and core type across all
users.
For a histogram of daily per-user values, select &quot;Per-Client
Aggregation Mode&quot;.
</summary>
</histogram>
<histogram name="Power.CpuTimeSecondsPerPowerMode.{ProcessType}"
enum="PowerMode" expires_after="2024-03-31">
<obsolete>
Deprecated in 11/2022 without replacement.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>oksamyt@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Total seconds of CPU time consumed by Chrome's {ProcessType} process, split
by power mode. Currently only implemented on Android. For every second of
CPU time consumed by the process, while a specific PowerMode was active, a
sample is recorded into the bucket for the PowerMode. Samples are recorded
periodically depending on the task load of each process's main thread. The
histogram thus shows the total sum of CPU time seconds spent per PowerMode
within all {ProcessType} processes across all users.
For a histogram of daily per-user values, select &quot;Per-Client
Aggregation Mode&quot;.
</summary>
<token key="ProcessType">
<variant name="Browser" summary="browser"/>
<variant name="GPU" summary="GPU"/>
<variant name="Other" summary="other type of"/>
<variant name="Renderer" summary="renderer"/>
</token>
</histogram>
<histogram name="Power.CpuTimeSecondsPerProcessType" enum="ProcessType2"
expires_after="2023-10-22">
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Total seconds of CPU time consumed by Chrome, split by process type.
Currently only implemented on Android. For every second of CPU time consumed
by one process, a sample is recorded into the bucket for the process's type.
Samples are recorded periodically depending on the task load of each
process's main thread. The histogram thus shows the total sum of CPU time
seconds spent per process type across all users.
For a histogram of daily per-user values, select &quot;Per-Client
Aggregation Mode&quot;.
</summary>
</histogram>
<histogram name="Power.CpuTimeSecondsPerProcessType.{Visibility}"
enum="ProcessType2" expires_after="2023-07-31">
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Total seconds of CPU time consumed by Chrome/WebView in the {Visibility}
state, split by process type. Currently only implemented on Android. For
every second of CPU time consumed by one process, a sample is recorded into
the bucket for the process's type. Samples are recorded periodically
depending on the task load of each process's main thread. The histogram thus
shows the total sum of CPU time seconds spent per process type across all
users.
For a histogram of daily per-user values, select &quot;Per-Client
Aggregation Mode&quot;.
</summary>
<token key="Visibility">
<variant name="Background" summary="backgrounded"/>
<variant name="Foreground" summary="foregrounded"/>
<variant name="Unattributed" summary="undetermined visibility"/>
</token>
</histogram>
<histogram name="Power.CpuTimeSecondsPerThreadType.{ProcessType}"
enum="CpuTimeMetricsThreadType" expires_after="2023-07-31">
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Total seconds of CPU time consumed by Chrome's {ProcessType} process, split
by thread type. Currently only implemented on Android. For every second of
CPU time consumed by one thread, a sample is recorded into the bucket for
the thread's type. CPU time consumed by a process that cannot be attributed
to a specific thread is recorded into the &quot;UnattributedThread&quot;
bucket. Samples are recorded periodically depending on the task load of each
process's main thread. The histogram thus shows the total sum of CPU time
seconds spent per thread type (within {ProcessType} processes) across all
users.
For a histogram of daily per-user values, select &quot;Per-Client
Aggregation Mode&quot;.
</summary>
<token key="ProcessType">
<variant name="Browser" summary="browser"/>
<variant name="GPU" summary="GPU"/>
<variant name="Other" summary="other type of"/>
<variant name="Renderer" summary="renderer"/>
</token>
</histogram>
<histogram
name="Power.DarkMode{prefers-color-scheme}.InferredDarkPageColorScheme"
enum="BooleanIsDarkColorScheme" expires_after="2023-09-24">
<owner>michaelbai@chromium.org</owner>
<owner>pdr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Whether the primary main document has an inferred dark color scheme. Emitted
each time WebContents infers a new non-empty color scheme.
</summary>
<token key="prefers-color-scheme">
<variant name=""/>
<variant name=".DarkColorScheme" summary="when the embedder prefers dark."/>
</token>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs" units="ms" expires_after="M85">
<owner>chirantan@chromium.org</owner>
<owner>abhishekbh@chromium.org</owner>
<owner>ravisadineni@chromium.org</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark
resume.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.Other" units="ms"
expires_after="2020-08-02">
<owner>chirantan@chromium.org</owner>
<owner>abhishekbh@chromium.org</owner>
<owner>ravisadineni@chromium.org</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark resume
triggered by an unknown or unsupported wake trigger.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Disconnect" units="ms"
expires_after="M85">
<owner>chirantan@chromium.org</owner>
<owner>abhishekbh@chromium.org</owner>
<owner>ravisadineni@chromium.org</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark resume
triggered by a WiFi disconnect.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Pattern" units="ms"
expires_after="M85">
<owner>chirantan@chromium.org</owner>
<owner>abhishekbh@chromium.org</owner>
<owner>ravisadineni@chromium.org</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark resume
triggered by a WiFi packet pattern match.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.WiFi.SSID" units="ms"
expires_after="M85">
<owner>chirantan@chromium.org</owner>
<owner>abhishekbh@chromium.org</owner>
<owner>ravisadineni@chromium.org</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark resume
triggered by a net detect SSID match.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeupsPerHour" units="units"
expires_after="2020-08-02">
<owner>chirantan@chromium.org</owner>
<summary>
The number of times a system woke up in dark resume in an hour. Note that
this value is scaled up or down to an hour based on the amount of time the
system spent in suspend. So if the system suspended for 20 minutes and woke
up 3 times, it would report a value of 9.
</summary>
</histogram>
<histogram name="Power.DimEvent{PowerSource}" enum="PowerDimEvent"
expires_after="2024-03-01">
<owner>mqg@chromium.org</owner>
<owner>charleszhao@chromium.org</owner>
<summary>
The dimming events inside power_manager.metrics.DimEvent, recorded when a
quick-dim/standard-dim starts or ends. The device is on {PowerSource} when
the metrics is recorded.
</summary>
<token key="PowerSource">
<variant name="OnAC" summary="charging"/>
<variant name="OnBattery" summary="battery"/>
</token>
</histogram>
<histogram name="Power.ExternalBrightnessReadResult"
enum="ExternalDisplayReceiveResult" expires_after="2022-05-01">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The result of attempting to read an external display's brightness on Chrome
OS. A read attempt is made after successfully requesting the brightness (see
Power.ExternalBrightnessRequestResult).
</summary>
</histogram>
<histogram name="Power.ExternalBrightnessRequestResult"
enum="ExternalDisplaySendResult" expires_after="M100">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The result of requesting an external display's brightness on Chrome OS. A
request is sent when the user presses a brightness key and the current
brightness is not already cached. A successful request is followed shortly
thereafter by a read attempt (see Power.ExternalBrightnessReadResult).
</summary>
</histogram>
<histogram name="Power.ExternalBrightnessWriteResult"
enum="ExternalDisplaySendResult" expires_after="M100">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The result of attempting to change an external display's brightness on
Chrome OS. A request is sent when the user presses a brightness key and the
current brightness is either already cached or successfully loaded.
</summary>
</histogram>
<histogram name="Power.ExternalDisplayOpenResult"
enum="ExternalDisplayOpenResult" expires_after="2021-08-01">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The result of attempting to open an I2C device to control an external
display's brightness on Chrome OS. An attempt is made when a display is
connected to a device that lacks an internal display.
</summary>
</histogram>
<histogram name="Power.FirmwareResumeTimeOnAC" units="ms"
expires_after="2022-03-31">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The time that the firmware took to resume the Chrome OS device from
suspend-to-RAM state when running on AC at pre-suspend time.
</summary>
</histogram>
<histogram name="Power.FirmwareResumeTimeOnBattery" units="ms"
expires_after="2022-03-31">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The time that the firmware took to resume the Chrome OS device from
suspend-to-RAM state when running on battery at pre-suspend time.
</summary>
</histogram>
<histogram
name="Power.ForegroundBatteryDrain.30SecondsAvg2{Exclusive}{DarkeningType}"
units="uAh" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<owner>chrome-analysis-team@google.com</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
Periodically samples the battery capacity drained while Chrome is a
foreground app and the device is on battery power {DarkeningType}. Sampled
every 30 seconds while foregrounded. Also sampled when Chrome is
backgrounded or the device connects to a charger. {Exclusive}
Sample values are reported in microampere-hours and averaged over successive
sampling points without a change in capacity counter values. Since the
capacity counter resolution differs between device models, averaging the
values allows us to make comparisons between frequent small capacity drops
and infrequent large drops. For example, a 20,000 uAh drop over two
successive periods of 30 seconds will be reported as two samples of 10,000
uAh.
For more details, see http://bit.ly/chrome-android-foreground-battery-drain.
Only supported on Android. For WebView, the metric considers the time during
in which at least one WebView is visible on the screen as
&quot;foreground&quot; time. For Chrome, it considers any time the Chrome
app is visible, including when in multi-window mode.
Note that the capacity counter can be implemented in different ways by
different devices/OEMs and its accuracy can vary (across devices and at
different times on the same device, also due to environmental factors like
device temperature or charge level).
We've found looking at the 99%ile-trimmed mean more useful than looking at
specific percentiles, especially when filtering for specific device models.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
<token key="Exclusive">
<variant name="" summary=""/>
<variant name=".Exclusive"
summary="However, only battery drain that can be attributed
exclusively to the time Chrome/WebView was visible is
reported: The first drain after becoming foregrounded is not
reported. As a result, this metric typically doesn't include
drain related to app startup. Similarly, no values are
reported for the time after the last capacity drop in a
session, since these would likely under-account the actual
battery drain in that time. Note that other apps can still
contribute to the power consumed/tracked, e.g. due to using
resources while they are backgrounded or in a multi-window
context."/>
</token>
<token key="DarkeningType">
<variant name="" summary=""/>
<variant name=".DarkMode"
summary="and the browser has dark theme preferred (web page darkening
only) for all WebContents"/>
<variant name=".ForcedDarkMode"
summary="and the browser has forced dark mode (user-agent darkening)
enabled for all WebContents"/>
<variant name=".LightMode"
summary="and the browser has forced dark mode disabled and light
theme preferred for all WebContents"/>
<variant name=".MixedMode"
summary="and there is a mix of WebContents that have forced dark mode
enabled, dark theme preferred, or light theme preferred"/>
</token>
</histogram>
<histogram name="Power.ForegroundBatteryDrain.30Seconds{Exclusive}" units="uAh"
expires_after="2023-11-07">
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Periodically samples the battery capacity drained while Chrome is a
foreground app and the device is on battery power. Sampled every 30 seconds
while foregrounded. Also sampled when Chrome is backgrounded or the device
connects to a charger. {Exclusive}
Sample values are reported as provided by the battery capacity counter (in
microampere-hours). Because the resolution of this counter is rather coarse
(usually between 500 and 50,000 uAh), the uAh value may have been drained
over a longer time period than 30 seconds. See also
Power.ForegroundBatteryDrain.30SecondsAvg, which averages the values over
successive sampling points without change in counter values.
Only supported on Android. For WebView, the metric considers the time during
in which at least one WebView is visible on the screen as
&quot;foreground&quot; time. For Chrome, it considers any time the Chrome
app is visible, including when in multi-window mode.
Note that the capacity counter can be implemented in different ways by
different devices/OEMs and its accuracy can vary (across devices and at
different times on the same device, also due to environmental factors like
device temperature or charge level).
</summary>
<token key="Exclusive">
<variant name="" summary=""/>
<variant name=".Exclusive"
summary="However, only battery drain that can be attributed
exclusively to the time Chrome/WebView was visible is
reported: The first drain after becoming foregrounded is not
reported. As a result, this metric typically doesn't include
drain related to app startup. Note that other apps can still
contribute to the power consumed/tracked, e.g. due to using
resources while they are backgrounded or in a multi-window
context."/>
</token>
</histogram>
<histogram name="Power.ForegroundBatteryDrain{Exclusive}" units="0.1 mAh"
expires_after="2023-11-07">
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Records a sample for every 0.1 milliampere-hours of battery capacity that
are drained while Chrome is a foreground app and the device is on battery
power. The battery counter is inspected every 30 seconds while foregrounded.
It is also inspected when Chrome is backgrounded or the device connects to a
charger. The histogram thus shows the total sum of battery capacity consumed
across all users. {Exclusive}
Only supported on Android. For WebView, the metric considers the time during
in which at least one WebView is visible on the screen as
&quot;foreground&quot; time. For Chrome, it considers any time the Chrome
app is visible, including when in multi-window mode.
Note that the capacity counter can be implemented in different ways by
different devices/OEMs and its accuracy can vary (across devices and at
different times on the same device, also due to environmental factors like
device temperature or charge level).
For a histogram of daily per-user values, see the computed histogram
Power.DailyForegroundBatteryDrain.
</summary>
<token key="Exclusive">
<variant name="" summary=""/>
<variant name=".Exclusive"
summary="However, only battery drain that can be attributed
exclusively to the time Chrome/WebView was visible is
reported: The first drain after becoming foregrounded is not
reported. As a result, this metric typically doesn't include
drain related to app startup. Note that other apps can still
contribute to the power consumed/tracked, e.g. due to using
resources while they are backgrounded or in a multi-window
context."/>
</token>
</histogram>
<histogram name="Power.ForegroundRadio.SignalLevel.{NetworkType}"
enum="RadioSignalLevel" expires_after="2023-06-28">
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@google.com</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Periodically samples the radio (cellular/wifi) signal strength level while
Chrome is a foreground app and the device is on battery power. Sampled every
30 seconds and when Chrome is backgrounded or the device connects to a
charger.
Only supported on Android.
</summary>
<token key="NetworkType">
<variant name="Cell"/>
<variant name="Wifi"/>
</token>
</histogram>
<histogram name="Power.ForegroundRadio.Wakeups.Cell.30Seconds"
enum="RadioSignalLevel" expires_after="2023-08-27">
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@google.com</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Counts the number of radio wakeups while Chrome is a foreground app, the
device is on battery power and connection type is cellular. Values are
distributed across buckets according to the radio signal quality.
Caveat: signal quality is measured at the end of 30-sec period, so it might
not reflect the quality during the entire period.
Only supported on Android. Disabled by default. Please supply the
ForegroundRadioStateCountWakeups feature flag to turn this metric on.
</summary>
</histogram>
<histogram name="Power.ForegroundRadio.{Direction}KiB.{NetworkType}.30Seconds"
enum="RadioSignalLevel" expires_after="2023-06-28">
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@google.com</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Periodically samples the number of kibibytes received over network while
Chrome is a foreground app and the device is on battery power. Sampled every
30 seconds and when Chrome is backgrounded or the device connects to a
charger. Values are distributed across buckets according to the radio signal
quality.
Caveat: signal quality is measured at the end of 30-sec period, so it might
not reflect the quality during the entire period.
Only supported on Android.
</summary>
<token key="Direction">
<variant name="Received"/>
<variant name="Sent"/>
</token>
<token key="NetworkType">
<variant name="Cell"/>
<variant name="Wifi"/>
</token>
</histogram>
<histogram name="Power.ForegroundThermalState.ChangeEvent.Android"
enum="DeviceThermalState" expires_after="2023-10-15">
<owner>carlscab@google.com</owner>
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@google.com</owner>
<owner>woa-performance@google.com</owner>
<summary>
Recorded every time the device thermal state changes while Chrome is a
foreground app.
Only supported on Android.
</summary>
</histogram>
<histogram name="Power.FrameDamageAreaInDip.{ProcessType}" units="dip"
expires_after="2023-06-28">
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@google.com</owner>
<owner>woa-performance@google.com</owner>
<summary>
Damaged area of a LayerTree's CompositorFrame in device-independent pixels.
Recorded every time a new frame is produced.
</summary>
<token key="ProcessType">
<variant name="Browser"/>
<variant name="Renderer"/>
</token>
</histogram>
<histogram name="Power.FrameDamageDiagonalInDip.{ProcessType}" units="dip"
expires_after="2023-06-28">
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@google.com</owner>
<owner>woa-performance@google.com</owner>
<summary>
Diagonal length of the damaged area of a LayerTree's CompositorFrame in
device-independent pixels. Recorded every time a new frame is produced.
</summary>
<token key="ProcessType">
<variant name="Browser"/>
<variant name="Renderer"/>
</token>
</histogram>
<histogram name="Power.HasPreciseBatteryDischargeGranularity" enum="Boolean"
expires_after="2023-10-08">
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Records whether or not the reporting client has a battery discharge
granularity less or equal to 17 mWh, which is the threshold to report the
Power.BatteryDischargeRatePreciseMilliwatts histogram.
This is reported at the end of every valid 1 minute interval. An invalid
interval is one that deviate too much from 1 minute, which can be caused by
the computer going to sleep, or the OS sending multiple notifications in a
row.
Only Recorded on Windows.
</summary>
</histogram>
<histogram name="Power.HibernateAttemptsBeforeCancel" units="units"
expires_after="2023-06-15">
<owner>puthik@chromium.org</owner>
<owner>evgreen@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The number of hibernate attempts performed for a single hibernate request
(e.g. triggered by transition from suspend to hibernation) that was
eventually canceled on Chrome OS. This also includes requests that were
canceled due to the system eventually shutting down due to repeated
hibernation failures. This is recorded just after the SuspendDone signal is
emitted, while cleaning up from the canceled attempt.
</summary>
</histogram>
<histogram name="Power.HibernateAttemptsBeforeSuccess" units="units"
expires_after="2023-06-15">
<owner>puthik@chromium.org</owner>
<owner>evgreen@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The number of hibernation attempts performed for a single hibernation
request (e.g. triggered by transition from suspend to hibernation) that
eventually succeeded on Chrome OS. This includes the successful attempt.
This is recorded after the system resumes, just after the SuspendDone signal
is emitted, while unwinding the suspend preparations.
</summary>
</histogram>
<histogram name="Power.IdleCpuLoad.{ProcessType}" units="%"
expires_after="2023-07-31">
<obsolete>
Deprecated in 11/2022 without replacement.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>khokhlov@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Records the average CPU load caused by the corresponding process over the
last 5 sec (or more) of Idle power mode. Emitted at the end of each such
period, so not more often that once in 5 sec. Note that CPU load can be
greater than 100% on milti-core systems.
</summary>
<token key="ProcessType">
<variant name="Browser"/>
<variant name="GPU"/>
<variant name="Other"/>
<variant name="Renderer"/>
</token>
</histogram>
<histogram name="Power.IdleScreenDimCountDaily" units="count"
expires_after="2022-04-17">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Number of times that that the screen has been dimmed in response to user
inactivity, reported daily. The count is accumulated through the day,
spanning reboots, and sent once the system clock indicates that a full day
or more has passed since the last report. If the system is suspended or off
for more than a day, the current count will be reported immediately the next
time the system boots, but the skipped days will not be reported. Chrome OS
only.
</summary>
</histogram>
<histogram name="Power.IdleScreenOffCountDaily" units="count"
expires_after="2022-05-01">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Number of times that that the screen has been turned off in response to user
inactivity, reported daily. The count is accumulated through the day,
spanning reboots, and sent once the system clock indicates that a full day
or more has passed since the last report. If the system is suspended or off
for more than a day, the current count will be reported immediately the next
time the system boots, but the skipped days will not be reported. Chrome OS
only.
</summary>
</histogram>
<histogram name="Power.IdleSuspendCountDaily" units="count"
expires_after="2022-05-01">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Number of times that that the system has suspended in response to user
inactivity, reported daily. The count is accumulated through the day,
spanning reboots, and sent once the system clock indicates that a full day
or more has passed since the last report. If the system is suspended or off
for more than a day, the current count will be reported immediately the next
time the system boots, but the skipped days will not be reported. Chrome OS
only.
</summary>
</histogram>
<histogram name="Power.IdleTimeAfterDimOnAC" units="ms"
expires_after="2022-04-24">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Chrome OS user idle time since the screen dimmed sampled when the user
becomes active again if the device runs on AC.
</summary>
</histogram>
<histogram name="Power.IdleTimeAfterDimOnBattery" units="ms"
expires_after="2022-04-17">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Chrome OS user idle time since the screen dimmed sampled when the user
becomes active again if the device runs on battery.
</summary>
</histogram>
<histogram name="Power.IdleTimeAfterScreenOffOnAC" units="ms"
expires_after="2022-05-01">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Chrome OS user idle time since the screen turned off sampled when the user
becomes active again if the device runs on AC.
</summary>
</histogram>
<histogram name="Power.IdleTimeAfterScreenOffOnBattery" units="ms"
expires_after="2022-04-17">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Chrome OS user idle time since the screen turned off sampled when the user
becomes active again if the device runs on battery.
</summary>
</histogram>
<histogram name="Power.IdleTimeOnAC" units="ms" expires_after="2022-04-24">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Chrome OS user idle time sampled when the user becomes active again if the
device runs on AC.
</summary>
</histogram>
<histogram name="Power.IdleTimeOnBattery" units="ms" expires_after="2021-10-17">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Chrome OS user idle time sampled when the user becomes active again if the
device runs on battery.
</summary>
</histogram>
<histogram name="Power.IOPMPowerSource.SamplingEventDelta" units="ms"
expires_after="2023-10-08">
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Records the time between each IOPMPowerSource event. The recorded value is
clamped between 55 seconds and 65 seconds for maximum precision around the
expected value. Only recorded on MacOS.
</summary>
</histogram>
<histogram name="Power.IOPMPowerSource.SamplingEventDelta.MediumTimes"
units="ms" expires_after="2023-08-08">
<owner>pmonette@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Records the time between each IOPMPowerSource event. The recorded value is
not clamped and covers the range from zero seconds to 3 minutes. Only
recorded on MacOS.
</summary>
</histogram>
<histogram name="Power.KernelResumeTimeOnAC" units="ms"
expires_after="2023-09-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The time that the kernel took to resume the Chrome OS device from
suspend-to-RAM state when running on AC at pre-suspend time.
</summary>
</histogram>
<histogram name="Power.KernelResumeTimeOnBattery" units="ms"
expires_after="M85">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the kernel took to resume the Chrome OS device from
suspend-to-RAM state when running on battery at pre-suspend time.
</summary>
</histogram>
<histogram name="Power.KernelSuspendTimeOnAC" units="ms"
expires_after="2020-01-26">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the kernel took to suspend-to-RAM the Chrome OS device when
running on AC.
</summary>
</histogram>
<histogram name="Power.KernelSuspendTimeOnBattery" units="ms"
expires_after="2022-04-10">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The time that the kernel took to suspend-to-RAM the Chrome OS device when
running on battery.
</summary>
</histogram>
<histogram name="Power.KeyboardBacklightLevel" units="%"
expires_after="2023-09-17">
<owner>tbroch@chromium.org</owner>
<summary>
The level of the keyboard backlight as a percentage. Sampled every 30
seconds.
</summary>
</histogram>
<histogram name="Power.LengthOfSession" units="seconds"
expires_after="2021-10-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The length of time, in seconds, that a user spent in a single session.
Values for this metric are clamped to 12 hours, so the last bucket should be
considered to be including all metrics above 12 hours.
</summary>
</histogram>
<histogram name="Power.LidClosedSuspendCountDaily" units="count"
expires_after="2021-10-10">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Number of times that that the system has suspended in response to its lid
being closed, reported daily. The count is accumulated through the day,
spanning reboots, and sent once the system clock indicates that a full day
or more has passed since the last report. If the system is suspended or off
for more than a day, the current count will be reported immediately the next
time the system boots, but the skipped days will not be reported. Chrome OS
only.
</summary>
</histogram>
<histogram name="Power.LockEvent{PowerSource}" enum="PowerLockEvent"
expires_after="2024-03-01">
<owner>mqg@chromium.org</owner>
<owner>charleszhao@chromium.org</owner>
<summary>
The lock events inside power_manager.metrics.LockEvent, recorded when a
quick-lock/standard-lock starts. The device is on {PowerSource} when the
metrics is recorded.
</summary>
<token key="PowerSource">
<variant name="OnAC" summary="charging"/>
<variant name="OnBattery" summary="battery"/>
</token>
</histogram>
<histogram base="true" name="Power.Mac" units="mW" expires_after="2023-10-01">
<owner>olivierli@chromium.org</owner>
<owner>markchang@chromium.org</owner>
<summary>
Instantaneous power consution in milliwatts, for the system as a whole and
broken down by component. Only recorded on macOS. Only valid on Intel based
systems. NB: The collection method was changed in May 2019, which may look
like a regression in timeline view.
</summary>
</histogram>
<histogram name="Power.Mac.IsOnBattery2" enum="BooleanOnBattery"
expires_after="2023-10-22">
<owner>avi@chromium.org</owner>
<owner>lgrey@chromium.org</owner>
<summary>
Whether the user's machine is on battery power. Sampled once per minute.
Unlike Power.Mac.IsOnBattery, this correctly logs desktop Macs as not being
on battery.
</summary>
</histogram>
<histogram name="Power.Mac.ThermalState" enum="MacThermalState"
expires_after="2023-11-30">
<owner>lgrey@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<summary>
Thermal state of the user's machine as reported by macOS's [NSProcessInfo
thermalState]. Sampled once per minute.
</summary>
</histogram>
<histogram name="Power.MetricsDailyEventInterval" enum="DailyEventIntervalType"
expires_after="M100">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Reasons why power-management-related daily metrics were reported. Chrome OS
only.
</summary>
</histogram>
<histogram name="Power.NumberOfAlsAdjustmentsPerSession" units="units"
expires_after="2022-05-01">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
The number of times that the Automatic Light Sensor (ALS) adjusted the
brightness during a session. Values for this metric are clamped to 10k
count, so the last bucket should be considered to be including all metrics
above 10k.
</summary>
</histogram>
<histogram name="Power.NumberOfSessionsPerCharge" units="units"
expires_after="2022-03-31">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The number of user sessions that occured since the last time that the device
was charged. Values for this metric are clamped at 10k, so the last bucket
should be considered to include all metrics about 10k.
</summary>
</histogram>
<histogram name="Power.PC10inS0ixRuntimeResidencyRate" units="%"
expires_after="2023-09-03">
<owner>skardach@google.com</owner>
<owner>svenva@google.com</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Reports the time a Chrome OS device spends in the S0ix idle state while not
suspended (that is between system resume and suspend events) as a percentage
of the time spent in the Package C10 (PC10) idle state. Reported only if at
the time of measurement the time spent in PC10 is non-zero.
Data points for this metric are recorded on every resume and suspend event
and therefore the metric itself is reported on every suspend attempt,
starting from the second one.
Only available on Chrome OS devices with Intel CPU.
</summary>
</histogram>
<histogram name="Power.PC10RuntimeResidencyRate" units="%"
expires_after="2023-09-03">
<owner>skardach@google.com</owner>
<owner>svenva@google.com</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
Reports the time a Chrome OS device spends in the Package C10 (PC10) idle
state as a percentage of the time device is not suspended (that is between
system resume and suspend events). Reported even if the value is zero.
Data points for this metric are recorded on every resume and suspend event
and therefore the metric itself is reported on every suspend attempt,
starting from the second one.
Only available on Chrome OS devices with Intel CPU.
</summary>
</histogram>
<histogram name="Power.PowerButtonAcknowledgmentDelay" units="ms"
expires_after="M100">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The amount of time between the user pressing the power button and Chrome
acknowledging the button-down event on Chrome OS. Values for this metric are
capped to two seconds.
</summary>
</histogram>
<histogram name="Power.PowerButtonDownTime" units="ms"
expires_after="2022-04-24">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The amount of time between the user pressing the power button and releasing
it on Chrome OS.
</summary>
</histogram>
<histogram name="Power.PowerButtonMenuAction" enum="PowerButtonMenuActionType"
expires_after="2024-05-01">
<owner>minch@chromium.org</owner>
<owner>xdai@chromium.org</owner>
<summary>Actions performed while the power button menu is open.</summary>
</histogram>
<histogram name="Power.PowerButtonPressed" units="units"
expires_after="2023-10-22">
<owner>emaamari@google.com</owner>
<owner>chromeos-commercial-identity@google.com</owner>
<summary>
Indicates a press of the power button, recorded when PowerManagerClient
receives a signal that the power button was pressed and notifies
FingerprintPowerButtonRaceDetector.
</summary>
</histogram>
<histogram name="Power.PowerButtonPressInLaptopMode"
enum="PowerButtonPressType" expires_after="2024-05-01">
<owner>minch@chromium.org</owner>
<owner>xdai@chromium.org</owner>
<summary>
Press power button in laptop mode will result in different scenarios
according to the power button up state. Counts the different power button
press scenarios in laptop mode.
</summary>
</histogram>
<histogram name="Power.PowerButtonPressInTabletMode"
enum="PowerButtonPressType" expires_after="2024-05-01">
<owner>minch@chromium.org</owner>
<owner>xdai@chromium.org</owner>
<summary>
Press power button in tablet mode will result in different scenarios
according to the power button up state. Counts the different power button
press scenarios in tablet mode.
</summary>
</histogram>
<histogram name="Power.PowerScheduler.ProcessPowerModeChange.{ProcessType}"
enum="PowerMode" expires_after="2024-03-31">
<obsolete>
Deprecated in 11/2022 without replacement.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Records the new value of the {ProcessType} process power mode every time a
change is detected (happens on the order of once per second).
</summary>
<token key="ProcessType">
<variant name="Browser" summary="browser"/>
<variant name="GPU" summary="GPU"/>
<variant name="Other" summary="other type of"/>
<variant name="Renderer" summary="renderer"/>
</token>
</histogram>
<histogram name="Power.PowerScheduler.ThrottlingDuration" units="ms"
expires_after="2022-10-04">
<obsolete>
Deprecated in 03/2022 because the Power Scheduler feature did not launch.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Duration during which CPU throttling was active. Only recorded when a CPU
throttling policy is active (e.g. throttle while idle). A sample is recorded
every time throttling stops (e.g. when exiting idle state).
</summary>
</histogram>
<histogram name="Power.PowerScheduler.ThrottlingDurationPerCpuAffinityMode"
enum="CpuAffinityMode" expires_after="2022-10-04">
<obsolete>
Deprecated in 03/2022 because the Power Scheduler feature did not launch.
</obsolete>
<owner>eseckler@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<owner>woa-performance@google.com</owner>
<summary>
Duration in milliseconds during which CPU throttling was active, split by
the CPU affinity for that duration. Only recorded when a CPU throttling
policy is active (e.g. throttle while idle). A sample is recorded every time
throttling stops (e.g. when exiting idle state), on the order of once per
second.
</summary>
</histogram>
<histogram name="Power.PowerSupplyMaxPower" units="W"
expires_after="2022-04-17">
<owner>bleung@chromium.org</owner>
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The maximum power supported by the connected power supply on Chrome OS. A
sample is reported every time that the power manager polls sysfs (typically
every 30 seconds) and sees a connected supply.
</summary>
</histogram>
<histogram name="Power.PowerSupplyMaxVoltage" units="V"
expires_after="2022-04-17">
<owner>bleung@chromium.org</owner>
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The maximum voltage supported by the connected power supply on Chrome OS. A
sample is reported every time that the power manager polls sysfs (typically
every 30 seconds) and sees a connected supply.
</summary>
</histogram>
<histogram name="Power.PowerSupplyType" enum="PowerSupplyType"
expires_after="2022-04-10">
<owner>bleung@chromium.org</owner>
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The type of the connected power supply on Chrome OS. A sample is reported
every time that the power manager polls sysfs (typically every 30 seconds)
and sees a connected supply.
</summary>
</histogram>
<histogram name="Power.ShutdownReason" enum="ShutdownReason"
expires_after="2024-03-23">
<owner>tbroch@chromium.org</owner>
<summary>
The reason for the Chrome OS power manager shutting down or rebooting the
system.
</summary>
</histogram>
<histogram name="Power.SmartCharging.Messages" enum="SmartChargingMessages"
expires_after="2023-06-01">
<owner>thanhdng@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>Type of messages that are reported by smart charging.</summary>
</histogram>
<histogram name="Power.SuspendAttempt" enum="SuspendAttempt"
expires_after="2023-09-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The number of suspend attempts on Chrome OS. Samples are reported before
each attempt, so this histogram may include cases where the system crashed
instead of suspending.
</summary>
</histogram>
<histogram name="Power.SuspendAttemptsBeforeCancel" units="units"
expires_after="2023-10-01">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The number of suspend attempts performed for a single suspend request (e.g.
triggered by the lid being closed) that was eventually canceled on Chrome
OS. This also includes requests that were canceled due to the system
eventually shutting down due to repeated suspend failures. This is recorded
just after the SuspendDone signal is emitted, while cleaning up from the
canceled attempt.
</summary>
</histogram>
<histogram name="Power.SuspendAttemptsBeforeSuccess" units="units"
expires_after="2023-09-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The number of suspend attempts performed for a single suspend request (e.g.
triggered by the lid being closed) that eventually succeeded on Chrome OS.
This includes the successful attempt. This is recorded after the system
resumes, just after the SuspendDone signal is emitted, while unwinding the
suspend preparations.
</summary>
</histogram>
<histogram name="Power.SuspendDelay" units="seconds" expires_after="2023-12-31">
<owner>niwa@chromium.org</owner>
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The amount of time powerd waited until all clients (e.g. Bluetooth Manager)
to be ready to suspend after receiving a suspend request. The maximum
recorded value is 60 seconds.
</summary>
</histogram>
<histogram name="Power.SuspendResult" enum="SuspendResult"
expires_after="2023-09-17">
<owner>puthik@chromium.org</owner>
<owner>chromeos-platform-power@google.com</owner>
<summary>
The results of suspend attempts on Chrome OS. Samples are reported after
each attempt.
</summary>
</histogram>
<histogram name="Power.TimeInSuspendAtBoot" units="minutes"
expires_after="2024-03-23">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS time in minutes spent in suspend-to-RAM mode sampled at boot
(i.e., the device most likely ran out of battery while in suspend).
</summary>
</histogram>
<histogram name="Power.TimeInSuspendAtResume" units="minutes"
expires_after="2024-03-23">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS time in minutes spent in suspend-to-RAM mode sampled at resume.
</summary>
</histogram>
<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnAC" units="units"
expires_after="2024-03-23">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
The number of times that the user adjusted the brightness during a session
when on AC. Values for this metric are clamped to 10k count, so the last
bucket should be considered to be including all metrics above 10k.
</summary>
</histogram>
<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnBattery"
units="units" expires_after="2024-03-23">
<owner>tbroch@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
The number of times that the user adjusted the brightness during a session
when on battery. Values for this metric are clamped to 10k count, so the
last bucket should be considered to be including all metrics above 10k.
</summary>
</histogram>
<histogram name="Power.{HpsEvent}.DurationSeconds" units="seconds"
expires_after="2024-03-01">
<owner>mqg@chromium.org</owner>
<owner>charleszhao@chromium.org</owner>
<summary>
The duration of a {HpsEvent}, recorded on undimming/deferring.
</summary>
<token key="HpsEvent">
<variant name="QuickDimRevertedByHps"
summary="quick dimming undimmed by hps"/>
<variant name="QuickDimRevertedByUser"
summary="quick dimming undimmed by user"/>
<variant name="StandardDimDeferredByHps"
summary="standard dimming deferred by hps"/>
<variant name="StandardDimRevertedByUser"
summary="standard dimming undimmed by user"/>
</token>
</histogram>
<histogram name="PowerML.DimImminent.Action" enum="PowerMLDimImminentAction"
expires_after="2023-09-03">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
What happens when UserActivityManager receives a screen dim imminent
notification. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.ModelDim.Result" enum="PowerMLFinalResult"
expires_after="2023-09-03">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
What happens after screen is dimmed following model instruction. Only
applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.ModelNoDim.Result" enum="PowerMLFinalResult"
expires_after="2023-09-03">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
What happens after screen dim is deferred following model instruction. Only
applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.NonModelDim.Result" enum="PowerMLFinalResult"
expires_after="2023-10-01">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
What happens after screen is dimmed by powerd by ignoring the model
instruction. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.PreviousEventLogging.Result"
enum="PowerMLPreviousEventLoggingResult" expires_after="2020-12-13">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
Status of logging previous idle event after a screen dim imminent signal is
received. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.SmartDimComponent.LoadComponentEvent"
enum="PowerMLSmartDimComponentLoadComponentEvent"
expires_after="2023-06-04">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Records the event (various failures or success) of loading smart dim
component. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.SmartDimComponent.VersionType"
enum="PowerMLSmartDimComponentVersionType" expires_after="2023-06-04">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Records the type of expected version (default, experimental or empty) used
by smart dim component installer. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.SmartDimComponent.WorkerType"
enum="PowerMLSmartDimComponentWorkerType" expires_after="2023-10-08">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
Records the worker type that is used by smart dim ml agent to make a
decision. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.SmartDimFeature.WebPageInfoSource"
enum="PowerMLSmartDimWebPageInfoSource" expires_after="2022-11-01">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
The source of web page info in smart dim features, emitted everytime smart
dim is requested.
</summary>
</histogram>
<histogram name="PowerML.SmartDimModel.RequestCanceledDuration" units="ms"
expires_after="2023-09-10">
<owner>amoylan@chromium.org</owner>
<owner>napper@chromium.org</owner>
<owner>napper@chromium.org</owner>
<owner>pmalani@chromium.org</owner>
<summary>
The time elapsed between a Smart Dim Inference Request being sent to the ML
model, and the request being canceled before the result is returned.
</summary>
</histogram>
<histogram name="PowerML.SmartDimModel.RequestCompleteDuration" units="ms"
expires_after="2023-09-10">
<owner>amoylan@chromium.org</owner>
<owner>napper@chromium.org</owner>
<owner>napper@chromium.org</owner>
<owner>pmalani@chromium.org</owner>
<summary>
The time elapsed between a Smart Dim Inference Request being sent to the ML
model and a result being returned.
</summary>
</histogram>
<histogram name="PowerML.SmartDimModel.Result"
enum="PowerMLSmartDimModelResult" expires_after="2023-09-20">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
This is the status code returned by the model when calculating a user
inactivity score. If it is any value other than 0 (success), then some issue
has occurred in the score calculation, either because preprocess was not
loaded or parsed correctly, or the preprocessor failed to process a
RankerExample. Only applicable to Chrome OS.
</summary>
</histogram>
<histogram name="PowerML.SmartDimParameter.Result"
enum="PowerMLSmartDimParameterResult" expires_after="2023-09-20">
<owner>napper@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<summary>
The result of parsing the dim threshold parameter value. Only applicable to
Chrome OS.
</summary>
</histogram>
</histograms>
</histogram-configuration>