<!--
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
[email protected].
-->
<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
percent over the design capacity for a new battery and
gradually degrades to 80-90% over the course of 2-4 years."/>
<variant name="Design"
summary="design capacity of the battery pack from the manufacturer.
This is used to calculated the promised battery life claim
when a device is released."/>
</variants>
<variants name="BatterySaverMode">
<!--
Variants indicating if battery saver was enabled when the sample was recorded.
-->
<variant name=""
summary="all intervals no matter the battery saver mode state"/>
<variant name=".BatterySaverDisabled"
summary="intervals with battery saver mode disabled."/>
<variant name=".BatterySaverEnabled"
summary="intervals with battery saver mode enabled."/>
</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="ProcessName">
<variant name="BrowserProcess" summary=""/>
<variant name="GPUProcess" summary=""/>
<variant name="NetworkProcess" summary=""/>
<variant name="PluginProcess" summary=""/>
<variant name="PPAPIProcess" summary=""/>
<variant name="RendererExtensionEventProcess" summary=""/>
<variant name="RendererExtensionPersistentProcess" summary=""/>
<variant name="RendererProcess" summary=""/>
<!-- "Total" variant used to exist but was folded into the histogram names and could not be made obsolete. -->
<variant name="UtilityProcess" summary=""/>
<variant name="WorkerProcess" summary=""/>
</variants>
<variants name="UsageScenario">
<!--
Variants describing the usage scenario for a time interval. Consider updating
both "UsageScenario10Sec" in this file, and "UsageScenario" in
tools/metrics/histograms/metadata/browser/histograms.xml when updating this.
-->
<variant name="" summary="all intervals no matter the usage scenario"/>
<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="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.HasPreciseCPUUsage" enum="Boolean"
expires_after="2022-09-30">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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.UsageScenario.LongInterval"
enum="PerformanceMonitor.UsageScenario.LongInterval"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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
"UsageScenario" variants.
</summary>
</histogram>
<histogram
name="Power.AdaptiveChargingBatteryPercentageOnUnplug{AdaptiveChargingType}"
units="%" expires_after="2023-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Ambient Light Sensor reading sampled on resume from suspend. Only
applicable to Chrome OS.
</summary>
</histogram>
<histogram name="Power.AvgCpuLoad.{ProcessType}" units="%"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS {BatteryCapacityType} battery capacity in milliwatt-hours.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryChargeHealth" units="%"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS battery charge health percentage. Sampled once when device starts
charging.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeGranularityAvailable"
enum="BooleanAvailable" expires_after="2024-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</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.TenMinutes"
enum="BatteryDischargeMode" expires_after="2024-03-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Battery discharge mode describing whether
Power.BatteryDischargeRateMilliwatts6.TenMinutes could be reported, and why.
Windows only.
This is reported when a 1 minute periodic timer fires and at least 10
minutes have elapsed since the last report or startup.
</summary>
</histogram>
<histogram name="Power.BatteryDischargeMode5{UsageScenario}{IntervalType}"
enum="BatteryDischargeMode" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Battery discharge mode describing whether
Power.BatteryDischargeRateMilliwatts6 could be reported, and why.
On Windows and ChromeOS, this is reported when a 1 minute periodic timer
fires. On macOS, this is reported when an IOPMPowerSource state change
notification fires (typically every minute but may happen more frequently).
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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.TenMinutes"
units="milliwatts" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Battery discharge in milliwatts over a 10 minutes interval. Windows only.
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 10 minutes, reported value: 60 mW.
Reported when "discharging" is reported to
Power.BatteryDischargeMode5.TenMinutes.
</summary>
</histogram>
<histogram
name="Power.BatteryDischargeRateMilliwatts6{UsageScenario}{IntervalType}{BatterySaverMode}"
units="milliwatts" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Battery discharge in milliwatts over a 1 minute interval.
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 1 minute, reported value: 600 mW.
Reported when "discharging" is reported to
Power.BatteryDischargeMode5.
This is recorded for {UsageScenario}.
This contains {IntervalType}.
This is recorded for {BatterySaverMode}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
<token key="BatterySaverMode" variants="BatterySaverMode"/>
</histogram>
<histogram
name="Power.BatteryDischargeRatePreciseMilliwatts{UsageScenario}{IntervalType}{BatterySaverMode}"
units="milliwatts" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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 (>17 mWh) are
excluded.
This is recorded for {UsageScenario}.
This contains {IntervalType}.
This is recorded for {BatterySaverMode}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
<token key="BatterySaverMode" variants="BatterySaverMode"/>
</histogram>
<histogram
name="Power.BatteryDischargeRateRelative5{UsageScenario}{IntervalType}{BatterySaverMode}"
units="hundredth of percent" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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}.
This is recorded for {BatterySaverMode}.
</summary>
<token key="UsageScenario" variants="UsageScenario"/>
<token key="IntervalType" variants="IntervalType"/>
<token key="BatterySaverMode" variants="BatterySaverMode"/>
</histogram>
<histogram name="Power.BatteryDischargeRateWhileSuspended" units="mW"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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.BatteryLife.Detail.RollingAverage.{BatteryCapacityType}"
units="minute" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
ChromeOS rolling average of the battery life while in active state, measured
in minutes using the {BatteryCapacityType}.
This is calculated by taking the average of the last 10 samples of the
Power.BatteryLife.{BatteryCapacityType} metrics.
The detail version put the data outside of 5-13 hours in to the underflow
and overflow bucket to have more data resolution at the median range.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryLife.Detail.{BatteryCapacityType}" units="minute"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS battery life while in active state, measured in minutes using the
{BatteryCapacityType}.
This is calculated using size of the battery divided by the battery
discharge rate sampling, i.e., Power.BatteryDischargeRate. Note that the
size of the battery is derated by the low battery shutdown percent.
The detail version put the data outside of 5-13 hours in to the underflow
and overflow bucket to have more data resolution at the median range.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryLife.RollingAverage.{BatteryCapacityType}"
units="minute" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
ChromeOS rolling average of the battery life while in active state, measured
in minutes using the {BatteryCapacityType}.
This is calculated by taking the average of the last 10 samples of the
Power.BatteryLife.{BatteryCapacityType} metrics.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryLife.{BatteryCapacityType}" units="minute"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS battery life while in active state, measured in minutes using the
{BatteryCapacityType}.
This is calculated using size of the battery divided by the battery
discharge rate sampling, i.e., 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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS battery life while suspended, measured in hours using the
{BatteryCapacityType}.
This is calculated using size of the battery divided by the battery
discharge rate sampling, i.e., Power.BatteryDischargeRateWhileSuspended.
</summary>
<token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>
<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</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="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
sampled when charging starts.
Warning: this histogram was expired from 2022-05-01 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.BatterySaver.UserBrightenedSec" units="seconds"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
ChromeOS time from Battery Saver activation that it took the user to
increase the backlight brightness above what Battery Saver set.
</summary>
</histogram>
<histogram name="Power.BitfixChunks" units="units" expires_after="M77">
<owner>[email protected]</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>[email protected]</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="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2022-04-25 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.CpuTimeSecondsPerProcessType" enum="ProcessType2"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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 "Per-Client
Aggregation Mode".
</summary>
</histogram>
<histogram name="Power.CpuTimeSecondsPerProcessType.{Visibility}"
enum="ProcessType2" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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 "Per-Client
Aggregation Mode".
</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="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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 "UnattributedThread"
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 "Per-Client
Aggregation Mode".
</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>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark
resume.
Warning: this histogram was expired from M85 to 2024-04-12; data may be
missing.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.Other" units="ms"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2020-08-03 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Disconnect" units="ms"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time a system spent awake every time it woke up in dark resume
triggered by a WiFi disconnect.
Warning: this histogram was expired from M85 to 2024-04-12; data may be
missing.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Pattern" units="ms"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from M85 to 2024-04-12; data may be
missing.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.WiFi.SSID" units="ms"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from M85 to 2024-04-12; data may be
missing.
</summary>
</histogram>
<histogram name="Power.DarkResumeWakeupsPerHour" units="units"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2020-08-02 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.DimEvent{PowerSource}" enum="PowerDimEvent"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</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.DisplayAfterResumeDurationMs{PowerSource}" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time that the user process took to display UI on the Chrome OS device
from suspend-to-RAM and suspend-to-Disk state, which starts when user
processes are woken up by the kernel, and stops when SetIsProjecting signal
is caught by power_manager. This is recorded when resuming from suspend. 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.FirmwareResumeTimeOnAC" units="ms"
expires_after="2022-03-31">
<owner>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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
"foreground" 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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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
"foreground" 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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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
"foreground" 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.ForegroundThermalState.ChangeEvent.Android"
enum="DeviceThermalState" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.HasPreciseBatteryDischargeGranularity" enum="Boolean"
expires_after="2024-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</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.IdleTimeAfterDimOnAC" units="ms"
expires_after="2022-04-24">
<owner>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-03-17">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2024-05-26 to 2024-07-15; data may
be missing.
</summary>
</histogram>
<histogram name="Power.KernelSuspendTimeOnAC" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time that the kernel took to suspend-to-RAM the Chrome OS device when
running on AC.
Warning: this histogram was expired from 2020-01-26 to 2024-07-15; data may
be missing.
</summary>
</histogram>
<histogram name="Power.KernelSuspendTimeOnBattery" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time that the kernel took to suspend-to-RAM the Chrome OS device when
running on battery.
Warning: this histogram was expired from 2022-04-10 to 2024-07-15; data may
be missing.
</summary>
</histogram>
<histogram name="Power.KeyboardBacklightLevel" units="%"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<summary>
The level of the keyboard backlight as a percentage. Sampled every 30
seconds.
</summary>
</histogram>
<histogram name="Power.LockEvent{PowerSource}" enum="PowerLockEvent"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.ThermalState" enum="MacThermalState"
expires_after="2023-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</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.PC10inS0ixRuntimeResidencyRate" units="%"
expires_after="2024-09-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-09-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.PeripheralReadErrorLatencyMs" units="ms"
expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of wall time in milliseconds taken to fail a read of the battery
capacity of a peripheral.
</summary>
</histogram>
<histogram name="Power.PeripheralReadLatencyMs" units="ms"
expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of wall time in milliseconds taken to complete a read of the
battery capacity of a peripheral.
</summary>
</histogram>
<histogram name="Power.PowerButtonAcknowledgmentDelay" units="ms"
expires_after="M100">
<owner>[email protected]</owner>
<owner>[email protected]</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.PowerButtonMenuAction" enum="PowerButtonMenuActionType"
expires_after="2025-04-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Actions performed while the power button menu is open.</summary>
</histogram>
<histogram name="Power.PowerButtonPressed" units="units"
expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-04-30">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-04-30">
<owner>[email protected]</owner>
<owner>[email protected]</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.PowerSupplyMaxPower" units="W"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2022-04-18 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.PowerSupplyMaxVoltage" units="V"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2022-04-18 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.PowerSupplyType" enum="PowerSupplyType"
expires_after="2025-04-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Warning: this histogram was expired from 2022-04-11 to 2024-04-12; data may
be missing.
</summary>
</histogram>
<histogram name="Power.ShutdownReason" enum="ShutdownReason"
expires_after="2025-02-02">
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Type of messages that are reported by smart charging.</summary>
</histogram>
<histogram name="Power.SuspendAttempt" enum="SuspendAttempt"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</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="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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">
<expired_intentionally>
Kept because it's used in tast power.SmartDim.
</expired_intentionally>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of parsing the dim threshold parameter value. Only applicable to
Chrome OS.
</summary>
</histogram>
</histograms>
</histogram-configuration>