blob: 5ca5eb68af9aef3efb136803b2ab0473d020678f [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 Optimization histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="OptimizationTarget">
<variant name="AutofillAssistant" summary="Autofill Assistant"/>
<variant name="LanguageDetection" summary="Language detection"/>
<variant name="ModelValidation" summary="Model validation triggered via CLI"/>
<variant name="NotificationPermissions" summary="Notification permissions"/>
<variant name="PageEntities" summary="Page entities"/>
<variant name="PageTopics" summary="Page topics"/>
<variant name="PageTopicsV2" summary="Page topics v2"/>
<variant name="PageVisibility" summary="Page visibility"/>
<variant name="PainfulPageLoad" summary="Painful page load"/>
<variant name="SegmentationChromeLowUserEngagement"
summary="Segmentation: Low user engagement with Chrome"/>
<variant name="SegmentationChromeStartAndroid"
summary="Chrome Start Android"/>
<variant name="SegmentationDummyFeature" summary="Dummy feature"/>
<variant name="SegmentationNewTab" summary="Segmentation: New tab page user"/>
<variant name="SegmentationQueryTiles" summary="Query tiles"/>
<variant name="SegmentationShare" summary="Segmentation: Share user"/>
<variant name="SegmentationVoice" summary="Segmentation: Voice user"/>
</variants>
<variants name="OptimizationType">
<variant name="AboutThisSite"
summary="Provides 'About this site' data about the site being visited"/>
<variant name="BloomFilterValidation"
summary="Validates bloom filer allowlist/blocklist based hints"/>
<variant name="CompressPublicImages" summary="Compresses public images"/>
<variant name="DeferAllScript" summary="Defers execution of script"/>
<variant name="DelayAsyncScriptExecution"
summary="Delays execution of async scripts">
<obsolete>
Removed in M94.
</obsolete>
</variant>
<variant name="DelayCompetingLowPriorityRequests"
summary="Delays low priority requests behind in-flight 'important'
requests">
<obsolete>
Removed in M94.
</obsolete>
</variant>
<variant name="FastHostHints"
summary="Provides information about hosts that historically provide a
fast and responsive user experience"/>
<variant name="LinkPerformance"
summary="Provides aggregated performance information for links on the
page"/>
<variant name="LitePage"
summary="HTTP server preview (served from the Data Reduction Proxy)"/>
<variant name="LitePageRedirect"
summary="HTTPS server preview (served from the litepages service)">
<obsolete>
Removed in M84.
</obsolete>
</variant>
<variant name="LiteVideo"
summary="Provides information on how to throttle media requests to
reduce the adaptive bit rates of media streams."/>
<variant name="LoadingPredictor"
summary="Provides information about subresources predicted to be on the
page"/>
<variant name="LoginDetection"
summary="Provides information about hosts that are identified as
commonly logged-in"/>
<variant name="MerchantTrustSignals"
summary="Provides trust data related to the merchant."/>
<variant name="MerchantTrustSignalsV2"
summary="Provides trust data related to the merchant -- version 2."/>
<variant name="MetadataFetchValidation"
summary="Validates metadata fetch on navigation"/>
<variant name="NoScript"
summary="Disables the fetching and execution of JavaScript">
<obsolete>
Removed in M89.
</obsolete>
</variant>
<variant name="PageEntities"
summary="Provides the entities that are present on the page"/>
<variant name="PerformanceHints"
summary="Provides aggregated performance information about the page"/>
<variant name="PriceTracking"
summary="Returns price related data for shopping websites"/>
<variant name="ResourceLoading"
summary="Applies a set of resource loading hints to load the page">
<obsolete>
Removed in M89.
</obsolete>
</variant>
<variant name="ShoppingPagePredictor"
summary="Determines if a page is shopping related or not"/>
</variants>
<variants name="PageTextDumpEvent">
<variant name="FinishedLoad" summary="finished load"/>
<variant name="FirstLayout" summary="first layout"/>
</variants>
<variants name="RequestContext">
<variant name="BatchUpdate" summary="Batch update.">
<obsolete>
Obsolete as of 10/2021.
</obsolete>
</variant>
<variant name="BatchUpdateActiveTabs"
summary="Batch update of hints for active tabs"/>
<variant name="BatchUpdateGoogleSRP"
summary="Batch update of hints for result links off the Google SRP"/>
<variant name="BatchUpdateModels" summary="Batch update of models"/>
<variant name="Bookmarks" summary="Batch update of hints for bookmarks"/>
<variant name="PageNavigation" summary="Page navigation"/>
</variants>
<histogram name="OptimizationGuide.ApplyDecision.{OptimizationType}"
enum="OptimizationGuideOptimizationTypeDecision" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The decision made for whether {OptimizationType} can be applied on the page
load.
</summary>
<token key="OptimizationType" variants="OptimizationType"/>
</histogram>
<histogram name="OptimizationGuide.ApplyDecisionAsync.{OptimizationType}"
enum="OptimizationGuideOptimizationTypeDecision" expires_after="2022-04-17">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the decision made for whether {OptimizationType} can be applied on a
page load when all information for that page load has been sufficiently
gathered. This will be recorded once per callback registered, so if two
callbacks were registered for {OptimizationType} on the same page load, this
will be recorded twice for that case.
</summary>
<token key="OptimizationType" variants="OptimizationType"/>
</histogram>
<histogram name="OptimizationGuide.ClearFetchedHints.StoreAvailable"
units="BooleanAvailable" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records whether the optimization guide store was available when fetched
hints are cleared from the store after browser history is cleared.
</summary>
</histogram>
<histogram name="OptimizationGuide.ClearHostModelFeatures.StoreAvailable"
units="BooleanAvailable" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records whether the optimization guide store was available when host model
features are cleared from the store after browser history is cleared.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintCache.HintType.Loaded"
enum="HintCacheStoreEntryType" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the store entry type of a hint when it is loaded from the hint cache
store.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintCacheLevelDBStore.LoadMetadataResult"
enum="OptimizationGuideHintCacheLevelDBStoreLoadMetadataResult"
expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the result of loading the metadata while initializing the
HintCacheLevelDBStore.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintCacheLevelDBStore.Status"
enum="OptimizationGuideHintCacheLevelDBStoreStatus" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records each status change within the HintCacheLevelDBStore.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.ActiveRequestCanceled.{RequestContext}"
units="counts" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records when an in-flight hints request for {RequestContext} was canceled
before it finished.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.DroppedHosts.{RequestContext}"
units="counts" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the number of hosts that were dropped for a request made with
{RequestContext}, if the number of hosts dropped is non-zero. Will record at
most once per fetch.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.DroppedUrls.{RequestContext}"
units="counts" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the number of URLs that were dropped for a request made with
{RequestContext}, if the number of URLs dropped is non-zero. Will record at
most once per fetch.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.GetHintsRequest.FetchLatency.{RequestContext}"
units="ms" expires_after="2022-04-17">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The duration of a request to fetch hints from the remote Optimization Guide
Service starts until it completes. Recorded every time hints are fetched and
parsed successfully.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.HintCount"
units="units" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hints received from the remote Optimization Guide
Service for every successful HintsFetch request.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount"
units="total host count" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hosts selected for sending a hint request. This will
be captured when any hint request is initiated.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.NetErrorCode"
enum="NetErrorCodes" expires_after="2022-05-08">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Net error codes for HintsFetch requests to the Optimization Guide Service on
success and failure.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.Status"
enum="HttpResponseCode" expires_after="2022-05-08">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
For each HintsFetch request to the Optimization Guide Service, log the HTTP
response code on success and failure.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.UrlCount"
units="total url count" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of URLs selected for sending a hint request. This will be
captured when any hint request is initiated.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.RequestStatus.BatchUpdate"
enum="OptimizationGuideHintsFetcherRequestStatus" expires_after="M106">
<obsolete>
Obsolete as of 12/2021.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
The status of making a Batch Update context request of the OptmizationGuide
HintsFetcher. This includes whether a network request was actually sent or
not.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.RequestStatus.BatchUpdate.{RequestContext}"
enum="OptimizationGuideHintsFetcherRequestStatus" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
The status of making a request using {RequestContext} of the
OptmizationGuide HintsFetcher. This includes whether a network request was
actually sent or not.
</summary>
<token key="RequestContext" variants="RequestContext"/>
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.RequestStatus.PageNavigation"
enum="OptimizationGuideHintsFetcherRequestStatus" expires_after="M106">
<obsolete>
Obsolete as of 12/2021.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
The status of making a Page Navigation context request of the
OptmizationGuide HintsFetcher. This includes whether a network request was
actually sent or not.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.TopHostProvider.BlacklistSize.OnInitialize"
units="total host count" expires_after="2021-03-31">
<obsolete>
Deprecated as of 2021/02.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hosts placed on the HintsFetcherTopHostBlacklist when
it is initialized.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.TopHostProvider.BlacklistSize.OnRequest"
units="total host count" expires_after="2021-03-31">
<obsolete>
Deprecated as of 2021/02.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hosts on the HintsFetcherTopHostBlacklist when top
hosts are requested.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.TopHostProvider.BlocklistSize.OnInitialize"
units="total host count" expires_after="M94">
<obsolete>
Deprecated as of 2021/06.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hosts placed on the HintsFetcherTopHostBlocklist when
it is initialized.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsFetcher.TopHostProvider.BlocklistSize.OnRequest"
units="total host count" expires_after="M94">
<obsolete>
Deprecated as of 2021/06.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hosts on the HintsFetcherTopHostBlocklist when top
hosts are requested.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsManager.ActiveTabUrlsToFetchFor"
units="counts" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The number of active tab URLs that did not have a hint on device, and thus,
required a fetch for a new hint. Recorded when a fetch is initiated to the
remote Optimization Guide Service for active tabs, roughly once an hour but
configurable via experiment params.
</summary>
</histogram>
<histogram name="OptimizationGuide.HintsManager.ConcurrentBatchUpdateFetches"
units="counts" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The number of active batch update hints fetches initiated by the hints
manager. Recorded when a fetch is initiated to the remote Optimization Guide
Service for a batch update context (i.e. on SRP, other UI surfaces, etc.).
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsManager.ConcurrentPageNavigationFetches"
units="counts" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The number of active hints fetches initiated by the hints manager. Recorded
when a fetch is initiated to the remote Optimization Guide Service at
navigation start.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsManager.PageNavigationHintsReturnedBeforeDataFlushed"
units="BooleanStored" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether a page navigation hints fetch returned before navigation
data used to record additional page load metrics is flushed. Recorded only
for navigations that have a hints fetch initiated for it.
</summary>
</histogram>
<histogram
name="OptimizationGuide.HintsManager.RaceNavigationFetchAttemptStatus"
enum="OptimizationGuideRaceNavigationFetchAttemptStatus"
expires_after="2022-06-19">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Status of a fetch attempt being raced against the current navigation start
and whether it includes hosts and urls. Recorded on navigation start
(including client redirects) by the hints manager.
</summary>
</histogram>
<histogram name="OptimizationGuide.IsPredictionModelValid.{OptimizationTarget}"
units="BooleanValid" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records whether the prediction model being constructed for
{OptimizationTarget} is valid or not. Recorded when prediction models are
loaded into memory by the prediction manager.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.MetadataFetchValidation.Result"
enum="Boolean" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the metadata fetch validation received the hints correctly.
Recorded on iOS when the mainframe navigation commits.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ExecutionLatency.{OptimizationTarget}"
units="ms" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the time duration it took execute the model for
{OptimizationTarget}. Recorded once per model execution for
{OptimizationTarget}.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ExecutionStatus.{OptimizationTarget}"
enum="OptimizationGuideExecutionStatus" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the result of attempting to execute a {OptimizationTarget} model,
including loading the file from disk. Recorded once per model execution
attempt for {OptimizationTarget}.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ModelAvailableToLoad.{OptimizationTarget}"
enum="BooleanAvailable" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the model file for {OptimizationTarget} is available on disk
at the time when it needs to be loaded into memory for a requested
execution. Recorded once per model load attempt for {OptimizationTarget}.
Note that callers may separately check whether a model is available before
calling the code path where this histogram is recorded. If this histogram
has 100% of samples in the true bucket, make sure to double-check that there
isn't a separate histogram specific to the model.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ModelLoadingDuration.{OptimizationTarget}"
units="ms" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the time duration it took to load a model file (un)successfully for
{OptimizationTarget}. Recorded once per model load attempt for
{OptimizationTarget}.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.ModelLoadingResult.{OptimizationTarget}"
enum="ModelExecutorLoadingState" expires_after="M106">
<obsolete>
Removed in favor of OptimizationGuide.ModelExecutor.ExecutionStatus in M98.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the result of a loading a model with a provided file for
{OptimizationTarget}. Recorded once per model load attempt for
{OptimizationTarget}.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.ModelExecutor.RunCount.{OptimizationTarget}"
units="count" expires_after="M94">
<obsolete>
Removed 2021-May.
</obsolete>
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the number of times the model for the {OptimizationTarget}
optimization target was run during the lifetime of the model being in
memory. Recorded every time the model is unloaded from memory.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.TaskExecutionLatency.{OptimizationTarget}"
units="ms" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the execution latency for the {OptimizationTarget} model run by the
model executor from when the task is posted from execution complete.
Recorded once per {OptimizationTarget} model execution attempt.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.TaskSchedulingLatency.{OptimizationTarget}"
units="ms" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the duration a {OptimizationTarget} model execution request spent
waiting for the background task queue to run the task. Recorded once per
{OptimizationTarget} model execution attempt.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.ModelExecutor.TimeSincePreviousRun.{OptimizationTarget}"
units="ms" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the time duration between runs of the model for
{OptimizationTarget}. Recorded once for every model run after the first.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.ModelFilesVerified.{OptimizationTarget}"
enum="BooleanValid" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether all model files existed on disk when the model was requested
to be loaded for {OptimizationTarget}. The model file itself and any
additional files must be present on disk for this check to report success.
Recorded once per attempted model load, which happens when a feature is
registered with the Optimization Guide.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.OptimizationFilterStatus.{OptimizationType}"
enum="OptimizationGuideOptimizationFilterStatus" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Status of processing OptimizationFilter configuration for
{OptimizationType}. Recorded when the OptimizationGuideService receives a
notification to process hints.
</summary>
<token key="OptimizationType" variants="OptimizationType"/>
</histogram>
<histogram name="OptimizationGuide.OptimizationHintsComponent.MajorVersion"
units="major version number" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the major version of the Optimization Hints component that was
pushed to the client. This will be recorded at startup and when a new
component is received.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.ContentAnnotated"
enum="BooleanAnnotated" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the page content was annotated successfully, if submitted
for annotation. This will approximately be once a page load after the page
load has finished loading.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.ContentAnnotationsStorageStatus"
enum="OptimizationGuidePageContentAnnotationsStorageStatus"
expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the status of whether the content annotations were stored in History
Service when the page content has been annotated successfully. This will be
recorded multiple times per page load, for both the related searches as well
as the model annotations once the page has finished loading.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.ModelAvailable"
enum="BooleanAvailable" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Whether the page topics model was available to execute when requested.
Recorded once per execution attempt. Note that this histogram supersedes
OptimizationGuide.ModelExecutor.ModelAvailableToLoad.PageTopics.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.PageEntitiesExecutionLatency"
units="ms" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the execution latency for the PageEntities model from when the model
manager requests the execution to completion and only if a result is
returned. Recorded once per model execution attempt.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageContentAnnotationsService.RelatedSearchesExtracted"
enum="BooleanAnnotated" expires_after="M106">
<owner>mahmadi@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records whether related searches were successfully extracted from Google
SRP, if requested. This will be recorded approximately once per page load
after the page has finished loading.
</summary>
</histogram>
<histogram name="OptimizationGuide.PageTextDump.AbandonedRequests"
units="count" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
The number of text dump requests that were sent to the renderer and did not
get a response after a grace period following DidFinishLoad, thus were
abandoned. This may be recorded multiple times per pageload.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageTextDump.FrameDumpLength.{PageTextDumpEvent}"
units="bytes" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
The length, in bytes, of every completed frame dump for the
{PageTextDumpEvent} event. Note that these values are capped at runtime to
an experimentally controlled value.
</summary>
<token key="PageTextDumpEvent" variants="PageTextDumpEvent">
<variant name="">
<obsolete>
Base histogram. Use variants of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram
name="OptimizationGuide.PageTextDump.OutstandingRequests.DidFinishLoad"
units="count" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
The number of outstanding page text dump requests at DidFinishLoad.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PageTextDump.TimeUntilFrameDisconnected.{PageTextDumpEvent}"
units="ms" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
The duration it took for a frame dump request, for the {PageTextDumpEvent}
event, from being sent until being canceled. Recorded every time a request
is canceled. This normally occurs because the mojo pipe disconnected.
</summary>
<token key="PageTextDumpEvent" variants="PageTextDumpEvent">
<variant name="">
<obsolete>
Base histogram. Use variants of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram
name="OptimizationGuide.PageTextDump.TimeUntilFrameDumpCompleted.{PageTextDumpEvent}"
units="ms" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
The duration it took for a frame dump request for the {PageTextDumpEvent}
event, to complete successfully. Recorded every time a request completes
successfully.
</summary>
<token key="PageTextDumpEvent" variants="PageTextDumpEvent">
<variant name="">
<obsolete>
Base histogram. Use variants of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.DownloadServiceAvailabilityBlockedFetch"
units="BooleanBlocked" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the Download Service was unavailable and blocked a fetch
that would have happened otherwise. Only recorded if model downloads are
enabled for the session.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.HasHostModelFeaturesForHost"
enum="Boolean" expires_after="2021-10-13">
<obsolete>
Deprecated as of 2021/10.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Whether the PredictionManager had HostModelFeatures for the host of the
navigation. Recorded when ShouldTargetNavigation is called.
</summary>
</histogram>
<histogram name="OptimizationGuide.PredictionManager.HostModelFeaturesMapSize"
units="total host count" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of host model features loaded into the map used by the
PredictionManager. This is recorded when the host model features are loaded
from the store.
</summary>
</histogram>
<histogram name="OptimizationGuide.PredictionManager.IsDownloadUrlValid"
units="BooleanValid" expires_after="M106">
<obsolete>
Replaced by
OptimizationGuide.PredictionManager.IsDownloadUrlValid.{OptimizationTarget}
in M96.
</obsolete>
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the download URL received from the remote Optimization Guide
server is valid.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionManager.IsDownloadUrlValid.{OptimizationTarget}"
units="BooleanValid" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the download URL for {OptimizationTarget} received from the
remote Optimization Guide server is valid.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram base="true"
name="OptimizationGuide.PredictionManager.ModelTypeChanged.{OptimizationTarget}"
units="BooleanChanged" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the model type changed for {OptimizationTarget} from model
proto to model file, or vice versa when the in-memory model for an
optimization target has been loaded.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.DownloadStatus"
enum="OptimizationGuidePredictionModelDownloadStatus" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The status of verifying and processing model downloads. Recorded once per
file that was successfully downloaded via the Download Service.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.DownloadSucceeded"
units="BooleanSuccess" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether the Download Service notified whether a model download has
succeeded or failed.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError"
enum="PlatformFileError" expires_after="M106">
<obsolete>
Replaced by
OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError.{OptimizationTarget}
in M96.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the exact error whenever writing a model file fails at the step
where the model is moved from the scratch directory to its final location.
Recorded every time a model file is downloaded and being processed for
storage.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError.{OptimizationTarget}"
enum="PlatformFileError" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the exact error whenever writing a model file fails at the step
where the model is moved from the scratch directory to its final location.
Recorded every time a {OptimizationTarget} model file is downloaded and
being processed for storage.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram base="true"
name="OptimizationGuide.PredictionModelEvaluationLatency.{OptimizationTarget}"
units="ms" expires_after="2021-10-13">
<obsolete>
Deprecated as of 2021/10.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
The duration of evaluating a prediction model for a registered optimization
target. Recorded every time a prediction model is successfuly evaluated by
the prediction manager. Not recorded if a cached decision is used or if the
evaluation fails.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.PredictionModelExpired"
units="BooleanExpired" expires_after="M96">
<obsolete>
Deprecated in favor of OptimizationTarget variant as of 09/2021.
</obsolete>
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records whether a prediction model expired if it was not updated or used
within the last 30 days by default, but can change subject to Finch
configuration.
</summary>
</histogram>
<histogram name="OptimizationGuide.PredictionModelExpired.{OptimizationTarget}"
enum="BooleanExpired" expires_after="M106">
<owner>sophiechang@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether a prediction model for an OptimizationTarget expired if it
was not updated or used within the configured expiration time, but can
change subject to Finch or server configuration. Recorded once per browser
startup.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsRequest.HostCount"
units="total host count" expires_after="M94">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of hosts included in a remote Optimization Guide Service
client model request. This will be captured when any GetModelsRequest is
initiated.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.HostModelFeatureCount"
units="units" expires_after="M94">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the number of host model features received from the remote
Optimization Guide Service for every successful GetModelsRequest.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.NetErrorCode"
enum="NetErrorCodes" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Net error codes for GetModelsRequest to the Optimization Guide Service on
success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status"
enum="HttpResponseCode" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
For each GetModelsRequest to the Optimization Guide Service, log the HTTP
response code on success and failure.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelLoadedVersion.{OptimizationTarget}"
units="version number" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the version of the prediction model that was loaded from the store
and used until updated by a fetch. Recorded only if the loaded model was
valid.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelStore.HostModelFeaturesLoadMetadataResult"
enum="BooleanLoaded" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the result of loading the host model features metadata while
initializing the OptimizationGuideStore.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelUpdateVersion.{OptimizationTarget}"
units="version number" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the version of the prediction model that was fetched as an update.
Recorded only if a model returned was valid and is available for use.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram
name="OptimizationGuide.PredictionModelValidationLatency.{OptimizationTarget}"
units="ms" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Records the duration of construction and validation of a prediction model
when the prediction manager loads it into memory for a given optimization
target. Recorded only if the model is valid and successfully loaded into
memory for use.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.ProcessHintsResult"
enum="OptimizationGuideProcessHintsResult" expires_after="2022-06-12">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Whether processing the hints succeeded or failed at a particular step.
Recorded when the OptimizationGuideService receives a notification to
process hints.
</summary>
</histogram>
<histogram name="OptimizationGuide.ProcessingComponentAtShutdown"
enum="BooleanYesNo" expires_after="M106">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
Whether the Optimization Hints component was being processed when the hints
manager is told to shutdown.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.CachedNotificationCount"
units="count" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
The number of cached push notifications that were pulled from the Android
cache after the native persistent store became fully initialized. Recorded
once per native startup in cases where the cache did not overflow.
</summary>
</histogram>
<histogram
name="OptimizationGuide.PushNotifications.CachedNotificationsHandledSuccessfully"
enum="BooleanSuccess" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Whether the push notification cache was handled successfully and was able to
be cleared out. Recorded once per each attempt at handling one cache shard.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.DidOverflow"
enum="Boolean" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records whether the Android push notification cache overflowed and caused
the whole store to be purged. Recorded once per native startup.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.GotPushNotification"
enum="Boolean" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>Records a true sample for every incoming push notification.</summary>
</histogram>
<histogram
name="OptimizationGuide.PushNotifications.PushNotificationHandledSuccessfully"
enum="BooleanSuccess" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Whether an incoming push notification was handled successfully. Recorded
once for every such notification.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.ReadCacheResult"
enum="OptimizationGuideReadCacheResult" expires_after="M106">
<owner>robertogden@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the result of reading the cache of push notifications and parsing
the encoded cache into protobufs. This is recorded once for every encoded
protobuf that is read from cache.
</summary>
</histogram>
<histogram name="OptimizationGuide.PushNotifications.ReceivedNotificationType"
enum="OptimizationType" expires_after="M106">
<owner>xingliu@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Records the OptimizationType of the push notification. Recorded when the
notification is received and before the notification payload is delivered to
feature handlers.
</summary>
</histogram>
<histogram name="OptimizationGuide.RemoteFetchingEnabled"
units="BooleanEnabled" expires_after="2022-06-05">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Whether the session is enabled for fetching information from the remote
Optimization Guide Service. Recorded when the profile is initialized for the
session if Optimization Hints are enabled and the profile is a non-incognito
profile.
</summary>
</histogram>
<histogram
name="OptimizationGuide.ShouldTargetNavigation.PredictionModelStatus.{OptimizationTarget}"
enum="OptimizationGuidePredictionManagerModelStatus"
expires_after="2021-10-13">
<obsolete>
Deprecated as of 2021/10.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
The status of the prediction model for an optimization target within the
prediction manager. Recorded when the manager is asked if a navigation
should be targeted and the decision for the navigation has not already been
made.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
<histogram name="OptimizationGuide.TargetDecision.{OptimizationTarget}"
enum="OptimizationGuideOptimizationTargetDecision" expires_after="M106">
<obsolete>
Obsolete as of 07/2021.
</obsolete>
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
The decision made for whether the page load matches the optimization target.
</summary>
<token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>
</histograms>
</histogram-configuration>