blob: c81ebf2fa9659832aa66a271af6d8dee2798dad7 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
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 Variations 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 send CLs to chromium-metrics-reviews@google.com rather than to specific
individuals. These CLs will be automatically reassigned to a reviewer within
about 5 minutes. This approach helps the metrics team to load-balance incoming
reviews. Googlers can read more about this at go/gwsq-gerrit.
-->
<histogram-configuration>
<histograms>
<histogram name="Variations.AppSeedFreshness" units="minutes"
expires_after="2021-12-05">
<owner>rmcelrath@chromium.org</owner>
<owner>ntfschr@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
The time interval between when a WebView-using app's copy of the variations
seed was written to its local app storage and when it was loaded for use.
This is different from Variations.SeedFreshness because it measures
freshness from when the app received its copy of the seed, not when the seed
was originally downloaded. Written every time the browser process
initializes, but not if there was an error reading the seed, or no seed
existed.
</summary>
</histogram>
<histogram name="Variations.AppSeedRequestState" enum="AppSeedRequestState"
expires_after="2020-11-01">
<obsolete>
Removed from code October 2020.
</obsolete>
<owner>rmcelrath@chromium.org</owner>
<owner>ntfschr@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
The result of checking if a WebView-using app's copy of the variations seed
is still fresh, or if a new seed should be requested.
</summary>
</histogram>
<histogram name="Variations.CreateTrials.SeedExpiry"
enum="VariationsSeedExpiry" expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of verifying if the variations seed is expired, recorded before
trials are created from the seed. Expired seeds are treated as not existing.
</summary>
</histogram>
<histogram name="Variations.ExtendedSafeMode.WritePrefsTime"
units="microseconds" expires_after="2021-11-22">
<owner>caitlinfischer@google.com</owner>
<owner>src/base/metrics/OWNERS</owner>
<component>Internals&gt;Metrics&gt;Variations</component>
<summary>
The time it takes to write prefs to disk. The time is capped at 1s. The
metric is emitted before field trials are set up. Only clients on canary or
dev channels in the ExtendedVariationsSafeMode experiment's WritePrefs and
SignalEarlyAndWritePrefs groups emit the metric.
Note that clients without high-resolution clocks will report 0 for very
short times.
</summary>
</histogram>
<histogram name="Variations.FirstRun.SeedConnectTime" units="ms"
expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The latency of connection to the variations server when fetching an initial
variations seed during Android Chrome first run. This is included in the
Variations.FirstRun.SeedFetchTime measurement. Only considers cases where an
HTTP 200 result was received.
</summary>
</histogram>
<histogram name="Variations.FirstRun.SeedFetchResult"
enum="VariationsSeedFetchResult" expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of attempting to fetch an initial variations seed during Android
Chrome first run. Records both the HTTP code and various error values in one
enumeration.
</summary>
</histogram>
<histogram name="Variations.FirstRun.SeedFetchTime" units="ms"
expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The latency of fetching an initial variations seed during Android Chrome
first run. Only considers cases where an HTTP 200 result was received.
</summary>
</histogram>
<histogram name="Variations.FirstRunPrefsDebug"
enum="VariationsFirstRunPrefEvents" expires_after="2021-08-29">
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Logs each event related to Android Chrome variations first run prefs to
debug crbug.com/1090968.
</summary>
</histogram>
<histogram name="Variations.FirstRunResult" enum="VariationsFirstRunResult"
expires_after="2021-10-25">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of attempting to import an initial variations seed during Android
Chrome first run. Logged from VariationsSeedStore::LoadSeed when seed prefs
do not exist.
</summary>
</histogram>
<histogram name="Variations.Headers.DomainOwner" enum="VariationsHeadersOwner"
expires_after="2021-11-08">
<owner>caitlinfischer@google.com</owner>
<owner>src/base/metrics/OWNERS</owner>
<component>Internals&gt;Metrics</component>
<summary>
The owner of the top-level domain from which certain subframe-initiated HTTP
requests are made. It's logged after determining that (i) the request should
include variations headers, (ii) the request is from a subframe, and (iii)
TrustedParams are not present. It's logged before adding headers. It allows
us to verify whether non-render-thread-initiated requests, if any, lack
TrustedParams.
</summary>
</histogram>
<histogram name="Variations.Headers.ExperimentCount" units="units"
expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records number of experiment ids in the X-Client-Data header at the time the
header is constructed.
</summary>
</histogram>
<histogram name="Variations.Headers.RequestContextCategory"
enum="VariationsHeadersRequestContextCategory" expires_after="2021-11-08">
<owner>asvitkine@chromium.org</owner>
<owner>jwd@chromium.org</owner>
<owner>caitlinfischer@google.com</owner>
<owner>src/base/metrics/OWNERS</owner>
<component>Internals&gt;Metrics</component>
<summary>
Details about the request context in which an HTTP request is made. Logged
after determining that the request should include variations headers but
before adding the headers.
</summary>
</histogram>
<histogram
name="Variations.Headers.URLValidationResult{VariationsHeadersURLValidationResult}"
enum="VariationsHeadersURLValidationResult" expires_after="2022-03-15">
<owner>asvitkine@chromium.org</owner>
<owner>jwd@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of whether to append Variations headers to a request. Logged when
when determining (i) whether the URL to which the request is being sent
should have a variations header and (ii) whether--after a redirect--the
request to which a variations header was added should have the variations
header removed. {VariationsHeadersURLValidationResult}
</summary>
<token key="VariationsHeadersURLValidationResult">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
<variant name=".Append"
summary="Result when checking whether to append a header."/>
<variant name=".Remove"
summary="Result when checking whether to remove a header."/>
</token>
</histogram>
<histogram name="Variations.LoadPermanentConsistencyCountryResult"
enum="VariationsPermanentConsistencyCountryResult"
expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records how the country code saved in prefs used for filtering permanent
consistency studies compares to the country code in the variations seed.
This is recorded each time the saved country code is loaded from the pref.
</summary>
</histogram>
<histogram name="Variations.LoadSeedSignature" enum="VariationSeedSignature"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of verifying the latest variations seed's signature, recorded
when the seed is loaded from Local State. Not recorded when running in safe
mode.
</summary>
</histogram>
<histogram name="Variations.PolicyRestriction"
enum="VariationsRestrictionPolicyValues" expires_after="2022-04-30">
<owner>pastarmovj@chromium.org</owner>
<owner>ydago@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the restrictions on how experiment variations are applied on the
client. This is recorded at start up.
</summary>
</histogram>
<histogram name="Variations.RequestCount" units="units"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Number of previous requests to the variations server in the same session,
logged each time a new request is attempted to the variations server. For
example, the value of the 0th bucket indicates the number of initial
requests to the server that took place.
</summary>
</histogram>
<histogram name="Variations.ResourceRequestsAllowed"
enum="VariationsResourceRequestsAllowedState" expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Counts the number of times the VariationsService is allowed or not allowed
to make a request due to the ResourceRequestAllowedNotifier. Useful for
debugging cases where variations seeds may not be getting fetched.
</summary>
</histogram>
<histogram name="Variations.SafeMode.FellBackToSafeMode2"
enum="BooleanSafeMode" expires_after="2021-12-07">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Whether or not the VariationsService fell back to safe mode due to too many
crashes or failed seed fetches. Recorded during Chrome startup immediately
before field trials are created. Only recorded if either a recent seed or a
safe seed was loaded successfully.
</summary>
</histogram>
<histogram name="Variations.SafeMode.LoadSafeSeed.Result"
enum="VariationsSeedLoadResult" expires_after="2021-12-07">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records whether the safe variations seed was successfully read from disk on
startup. Records a detailed reason on read failure. Only recorded when
attempting to run in safe mode.
Expired after M77 and revived in M93.
</summary>
</histogram>
<histogram name="Variations.SafeMode.LoadSafeSeed.SignatureValidity"
enum="VariationSeedSignature" expires_after="2021-12-07">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of verifying the safe variations seed's signature. Recorded when
the seed is loaded from disk. Only recorded when attempting to run in safe
mode.
Expired after M77 and revived in M93.
</summary>
</histogram>
<histogram name="Variations.SafeMode.StoreSafeSeed.Result"
enum="VariationsSeedStoreResult" expires_after="2021-12-07">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the result of attempting to store a safe variations seed (and all
associated metadata) on disk.
Expired after M77 and revived in M93.
</summary>
</histogram>
<histogram name="Variations.SafeMode.StoreSafeSeed.SignatureValidity"
enum="VariationSeedSignature" expires_after="2021-12-07">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of verifying the safe variations seed's signature. Recorded when
attempting to store the safe seed on disk.
Expired after M77 and revived in M93.
</summary>
</histogram>
<histogram name="Variations.SafeMode.Streak.Crashes" units="crashes"
expires_after="2022-05-09">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The number of consecutive crashes observed by the VariationsService without
a single intervening successful seed fetch. Recorded during Chrome startup
when the MetricsStateManager's CleanExitBeacon is created.
Prior to M92, this was recorded when the SafeSeedManager was created.
</summary>
</histogram>
<histogram name="Variations.SafeMode.Streak.FetchFailures" units="failures"
expires_after="2022-05-09">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The number of consecutive failed attempts to fetch a new seed by the
VariationsService. Recorded during Chrome startup when the SafeSeedManager
is created.
</summary>
</histogram>
<histogram name="Variations.SafeModeCachedFlags.Streak.Crashes" units="crashes"
expires_after="2022-06-21">
<owner>hnakashima@chromium.org</owner>
<owner>src/chrome/browser/flags/OWNERS</owner>
<summary>
The number of consecutive crashes observed by Android's CachedFeatureFlags
without a single intervening successful flag cache from native. Recorded the
first time a cached flag is checked.
Android only.
</summary>
</histogram>
<histogram name="Variations.SafeModeCachedFlags.{Event}"
enum="VariationsSafeModeCachedFlagsBehavior" expires_after="2022-06-21">
<owner>hnakashima@chromium.org</owner>
<owner>src/chrome/browser/flags/OWNERS</owner>
<summary>
What behavior of Safe Mode for CachedFlags (including not engaging it) was
performed.
{Event}
The ratio &quot;Cached&quot; / (&quot;WillCache&quot; - &quot;Pause&quot;)
is the success rate for a given mode, and (100% - success rate) is the crash
rate.
Android only.
</summary>
<token key="Event">
<variant name="Cached"
summary="&quot;Cached&quot; is recorded at the point where flags were
cached from native to Shared Preferences."/>
<variant name="Engaged"
summary="&quot;Engaged&quot; is recorded at the point where whether
to engage safe mode is decided."/>
<variant name="Pause"
summary="&quot;Pause&quot; is recorded when the initialization flow
is aborted."/>
<variant name="WillCache"
summary="&quot;WillCache&quot; is recorded when the initialization
flow that should result in caching flags is entered."/>
</token>
</histogram>
<histogram name="Variations.SeedDateChange" enum="VariationsSeedDateChange"
expires_after="2021-12-26">
<owner>jwd@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Counts if a response from the variations server is the first response of the
day or not. This is counted when a new valid seed or a 304 is received. The
date line is computed in UTC and the times being compared are the server
time from the server response and the stored server time from the last
successful request.
</summary>
</histogram>
<histogram name="Variations.SeedFetchResponseOrErrorCode"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
HTTP response codes and network error encountered by VariationsService when
attempting to fetch a variations seed from the server over an HTTPS
connection.
</summary>
</histogram>
<histogram name="Variations.SeedFetchResponseOrErrorCode.HTTP"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-10-25">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
HTTP response codes and network error encountered by VariationsService when
attempting to fetch a variations seed from the server over an HTTP
connection.
</summary>
</histogram>
<histogram name="Variations.SeedFreshness" units="minutes"
expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The time interval between when the variations seed was downloaded and when
it was loaded for use. Not recorded for expired seeds, nor when the download
time is unknown (typically, for seeds imported via first run).
</summary>
</histogram>
<histogram name="Variations.SeedLoadBlockingTime" units="ms"
expires_after="2021-12-26">
<owner>changwan@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the time spent blocking WebView startup to wait for the variations
seed. This is less than the entire time needed to load the seed, since
startup is only blocked if loading is not complete by the time the seed is
needed. This would ideally have a maximum value equal to the timeout in
VariationsSeedLoader, but there is no actual limit on how late that timeout
could fire. This is logged once per WebView startup, whether or not loading
the seed was successful.
</summary>
</histogram>
<histogram name="Variations.SeedLoadResult" enum="VariationsSeedLoadResult"
expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records whether the latest variations seed was successfully read from local
state on startup. Records a detailed reason on read failure. Not recorded
when running in safe mode.
</summary>
</histogram>
<histogram name="Variations.SeedProcessingTime" units="ms"
expires_after="2021-12-26">
<owner>isherman@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records how long it takes to load and process variations seed. This metric
is recorded only when loading and processing of the seed is successful.
</summary>
</histogram>
<histogram name="Variations.SeedStoreResult" enum="VariationsSeedStoreResult"
expires_after="2021-10-25">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the result of storing the variations seed that was received from the
server. Also logs the types of data received (gzip, delta, etc).
</summary>
</histogram>
<histogram name="Variations.SimulateSeed.Duration" units="ms"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the time taken to perform variations seed simulation.
Recorded on every variation seed simulation, which follows a fetch.
</summary>
</histogram>
<histogram name="Variations.SimulateSeed.KillBestEffortChanges" units="units"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the result of variations seed simulation. Logs the number of
experiment groups in the &quot;kill best effort&quot; category that are
expected to change on a restart of the browser with the received seed.
Recorded on every variation seed simulation, which follows a fetch.
</summary>
</histogram>
<histogram name="Variations.SimulateSeed.KillCriticalChanges" units="units"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the result of variations seed simulation. Logs the number of
experiment groups in the &quot;kill critical&quot; category that are
expected to change on a restart of the browser with the received seed.
Recorded on every variation seed simulation, which follows a fetch.
</summary>
</histogram>
<histogram name="Variations.SimulateSeed.NormalChanges" units="units"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the result of variations seed simulation. Logs the number of
experiment groups in the &quot;normal&quot; category that are expected to
change on a restart of the browser with the received seed.
Recorded on every variation seed simulation, which follows a fetch.
</summary>
</histogram>
<histogram name="Variations.StoreSeed.DataSize" units="KiB"
expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The size of the variations seed data, which may be a partial (delta) or
compressed (gzip) payload, see Variations.SeedStoreResult.
</summary>
</histogram>
<histogram name="Variations.StoreSeedSignature" enum="VariationSeedSignature"
expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The result of verifying the variations seed signature, recorded when the
variations seed is stored to Local State after being retrieved from the
server.
</summary>
</histogram>
<histogram name="Variations.StringsOverridden" units="strings"
expires_after="2018-08-30">
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Records the number of UI strings overriden for each study that overrides
strings. Recorded at start up when each study is evaluated.
</summary>
</histogram>
<histogram name="Variations.TimeSinceLastFetchAttempt" units="minutes"
expires_after="2022-04-22">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
The time since the previous attempt to fetch the variations seed within the
same session, with 0 indicating that this is the first attempt. Recorded
when a variations seed fetch is attempted by the VariationsService.
</summary>
</histogram>
<histogram name="Variations.UserChannel" enum="UserChannels"
expires_after="2021-12-26">
<owner>asvitkine@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
Log the user channel assigned at browser startup used for evaluating the
variations seeds.
</summary>
</histogram>
<histogram name="Variations.WebViewDownloadJobFetchResult"
enum="VariationsSeedFetchResult" expires_after="2021-01-31">
<obsolete>
Removed from code January 2021.
</obsolete>
<owner>rmcelrath@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
The result of a WebView seed download. Records both the HTTP code and
various error values in one enumeration.
</summary>
</histogram>
<histogram name="Variations.WebViewDownloadJobFetchTime2" units="ms"
expires_after="2021-01-31">
<obsolete>
Removed from code January 2021.
</obsolete>
<owner>rmcelrath@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
The duration of the network request to downloads a new WebView variations
seed from the variations server to the central on-device service.
</summary>
</histogram>
<histogram name="Variations.WebViewDownloadJobInterval" units="minutes"
expires_after="2022-01-20">
<owner>ntfschr@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
The time between the start of two consecutive WebView seed downloads by
WebView's service. This metric will not be written if seeds are never
downloaded.
</summary>
</histogram>
<histogram name="Variations.WebViewDownloadJobQueueTime" units="minutes"
expires_after="2022-01-20">
<owner>ntfschr@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
The delay between when a WebView seed download was scheduled by the service
with the JobScheduler and when it was executed.
</summary>
</histogram>
</histograms>
</histogram-configuration>