chromium/tools/metrics/histograms/metadata/optimization/histograms.xml

<!--
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 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
[email protected].
-->

<histogram-configuration>

<histograms>

<variants name="AnnotationType">
  <variant name="ContentVisibility" summary="Content Visibility"/>
  <variant name="Deprecated PageEntities" summary="Deprecated - Page Entities"/>
  <variant name="Unknown" summary="Unknown"/>
</variants>

<variants name="ModelExecutionFeature">
  <variant name="Compose" summary="Compose"/>
  <variant name="FormsAnnotations" summary="Forms Annotations"/>
  <variant name="FormsPredictions" summary="Forms Predictions"/>
  <variant name="HistorySearch" summary="History Search"/>
  <variant name="PromptApi" summary="Prompt API"/>
  <variant name="Summarize" summary="Summarize"/>
  <variant name="TabOrganization" summary="Tab Organization"/>
  <variant name="Test" summary="Test"/>
  <variant name="TextSafety" summary="Text Safety"/>
  <variant name="Unknown" summary="Unknown"/>
  <variant name="WallpaperSearch" summary="Wallpaper search"/>
</variants>

<variants name="OptimizationTarget">
  <variant name="AutofillFieldTypeClassification"
      summary="Classifies autofill field types"/>
  <variant name="CameraBackgroundSegmentation"
      summary="Classifies images into foreground and background"/>
  <variant name="ClientSidePhishing" summary="Client Side Phishing"/>
  <variant name="ClientSidePhishingImageEmbedder"
      summary="Client Side Phishing Image Embedder"/>
  <variant name="Compose" summary="Weights for On-Device Compose"/>
  <variant name="ContextualPageActionPriceTracking"
      summary="Contextual Page Action: Show price tracking"/>
  <variant name="GeolocationPermissions" summary="Geolocation permissions"/>
  <variant name="LanguageDetection" summary="Language detection"/>
  <variant name="ModelExecutionFeatureHistorySearch"
      summary="Model Execution Feature: History Search"/>
  <variant name="ModelExecutionFeaturePromptAPI"
      summary="Model Execution Feature: Prompt API"/>
  <variant name="ModelExecutionFeatureSummarize"
      summary="Model Execution Feature: Summarize"/>
  <variant name="ModelValidation" summary="Model validation triggered via CLI"/>
  <variant name="NewTabPageHistoryClustersModuleRanking"
      summary="New Tab Page History Clusters Module Ranking"/>
  <variant name="NotificationPermissions" summary="Notification permissions"/>
  <variant name="OmniboxOnDeviceTailSuggest"
      summary="Omnibox on device tail suggest"/>
  <variant name="OmniboxUrlScoring" summary="Omnibox Url scoring"/>
  <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="PassageEmbedder" summary="Text embedding for passages"/>
  <variant name="PhraseSegmentation" summary="Phrase segmentation"/>
  <variant name="PreloadingHeuristics" summary="Speculation-rule preloading"/>
  <variant name="SegmentationAdaptiveToolbar"
      summary="Segmentation: Adaptive toolbar button"/>
  <variant name="SegmentationAndroidHomeModuleRanker"
      summary="Segmentation: Android home module ranker"/>
  <variant name="SegmentationBottomToolbar"
      summary="Segmentation: Bottom toolbar user"/>
  <variant name="SegmentationChromeLowUserEngagement"
      summary="Segmentation: Low user engagement with Chrome"/>
  <variant name="SegmentationChromeStartAndroid"
      summary="Chrome Start Android"/>
  <variant name="SegmentationChromeStartAndroidV2"
      summary="Chrome Start Android V2"/>
  <variant name="SegmentationComposePromotion"
      summary="Segmentation: Compose promotion"/>
  <variant name="SegmentationDesktopNtpModule"
      summary="Segmentation: Desktop new tab page module users"/>
  <variant name="SegmentationDeviceSwitcher"
      summary="Segmentation: Device switcher"/>
  <variant name="SegmentationDummyFeature" summary="Dummy feature"/>
  <variant name="SegmentationFeedUser"
      summary="Segmentation: Feed usage in Chrome"/>
  <variant name="SegmentationIosModuleRanker"
      summary="Segmentation: Ios module ranker"/>
  <variant name="SegmentationMetricsClustering"
      summary="Segmentation: Metrics based clustering"/>
  <variant name="SegmentationNewTab" summary="Segmentation: New tab page user"/>
  <variant name="SegmentationQueryTiles" summary="Query tiles"/>
  <variant name="SegmentationSearchUser" summary="Segmentation: Search user"/>
  <variant name="SegmentationShare" summary="Segmentation: Share user"/>
  <variant name="SegmentationShoppingUser"
      summary="Segmentation: Shopping user"/>
  <variant name="SegmentationTabletProductivityUser"
      summary="Segmentation: Tablet Productivity user"/>
  <variant name="SegmentationVoice" summary="Segmentation: Voice user"/>
  <variant name="TextClassifier" summary="Smart text selection"/>
  <variant name="TextEmbedder" summary="Generic Text Embedding"/>
  <variant name="TextSafety" summary="Classifies safety of the text"/>
  <variant name="URLVisitResumptionRanker"
      summary="URL Visit resumption ranker"/>
  <variant name="VisualSearchClassification"
      summary="Classifies images on the page"/>
  <variant name="WebAppInstallationPromo"
      summary="PWA: Show web app installation promotion"/>
</variants>

<variants name="OptimizationType">
  <variant name="AboutThisSite"
      summary="Provides 'About this site' data about the site being visited"/>
  <variant name="AmericanExpressCreditCardFlightBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for flight credit card benefits.
               Applies to only American Express credit cards that support
               benefits on Chrome."/>
  <variant name="AmericanExpressCreditCardSubscriptionBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for subscription credit card
               benefits. Applies to only American Express credit cards that
               support benefits on Chrome."/>
  <variant name="AmountExtractionAllowlist"
      summary="This optimization helps determine if this merchant page is a
               good candidate for enabling price/amount extraction."/>
  <variant name="AmountExtractionAllowlistAffirm"
      summary="This optimization helps determine if this merchant page is a
               good candidate for buy now pay later provider Affirm to enable
               price/amount extraction."/>
  <variant name="AmountExtractionAllowlistZip"
      summary="This optimization helps determine if this merchant page is a
               good candidate for buy now pay later provider Zip to enable
               price/amount extraction."/>
  <variant name="AutofillAblationSitesList1"
      summary="This optimization provides information for whether a page is
               eligible for autofill ablation."/>
  <variant name="AutofillAblationSitesList2"
      summary="This optimization provides information for whether a page is
               eligible for autofill ablation."/>
  <variant name="AutofillAblationSitesList3"
      summary="This optimization provides information for whether a page is
               eligible for autofill ablation."/>
  <variant name="AutofillAblationSitesList4"
      summary="This optimization provides information for whether a page is
               eligible for autofill ablation."/>
  <variant name="AutofillAblationSitesList5"
      summary="This optimization provides information for whether a page is
               eligible for autofill ablation."/>
  <variant name="AutofillAblationSitesList6"
      summary="This optimization provides information for whether a page is
               eligible for autofill ablation."/>
  <variant name="AutofillPredictionImprovementsAllowlist"
      summary="This optimization provides information for whether a page is
               eligible for Autofill prediction improvements."/>
  <variant name="AutofillSamplingRate"
      summary="This optimization provides information about a sampling rate
               of Autofill UKM metrics per origin based on origin popularity."/>
  <variant name="BloomFilterValidation"
      summary="Validates bloom filer allowlist/blocklist based hints"/>
  <variant name="CapitalOneCreditCardBenefitsBlocked"
      summary="This optimization provides information about whether a
               merchant url is eligible to display Capital One credit card
               benefits."/>
  <variant name="CapitalOneCreditCardDiningBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for dining credit card benefits.
               Applies to only Capital One credit cards that support benefits
               on Chrome"/>
  <variant name="CapitalOneCreditCardEntertainmentBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for entertainment credit card
               benefits. Applies to only Capital One credit cards that
               support benefits on Chrome"/>
  <variant name="CapitalOneCreditCardGroceryBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for grocery credit card benefits.
               Applies to only Capital One credit cards that support benefits
               on Chrome"/>
  <variant name="CapitalOneCreditCardStreamingBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for streaming credit card benefits.
               Applies to only Capital One credit cards that support benefits
               on Chrome"/>
  <variant name="Compose"
      summary="Returns suitability of this page for compose."/>
  <variant name="CompressPublicImages" summary="Compresses public images"/>
  <variant name="DeferAllScript" summary="Defers execution of script"/>
  <variant name="FastHostHints"
      summary="Provides information about hosts that historically provide a
               fast and responsive user experience"/>
  <variant name="HistoryClusters"
      summary="This optimization provides information for whether a page
               should be included in a history cluster."/>
  <variant name="HistoryEmbeddings"
      summary="This optimization provides information for whether a page is
               eligible for history embeddings."/>
  <variant name="IBANAutofillBlocked"
      summary="This optimization provides information for whether a page
               should be blocked for IBAN autofill feature."/>
  <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="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="PageEntities"
      summary="Provides the entities that are present on the page"/>
  <variant name="PageInsights"
      summary="This optimization provides helpful context and insights about
               a page."/>
  <variant name="PerformanceHints"
      summary="Provides aggregated performance information about the page"/>
  <variant name="PixMerchantOriginsAllowlist"
      summary="This optimization provides information about merchants origins
               for which PIX payments should be triggered."/>
  <variant name="PixPaymentMerchantAllowlist"
      summary="This optimization provides information about whether a
               merchant can trigger PIX bottom sheet."/>
  <variant name="PriceInsights"
      summary="Returns price insights data for shopping websites"/>
  <variant name="PriceTracking"
      summary="Returns price related data for shopping websites"/>
  <variant name="SalientImage"
      summary="Provides information about images for a URL."/>
  <variant name="SharedCreditCardDiningBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for dining credit card benefits.
               Applies to all credit cards that support benefits on Chrome"/>
  <variant name="SharedCreditCardEntertainmentBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for entertainment credit card
               benefits. Applies to all credit cards that support benefits on
               Chrome"/>
  <variant name="SharedCreditCardFlightBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for flight credit card benefits.
               Applies to all credit cards that support benefits on Chrome"/>
  <variant name="SharedCreditCardGroceryBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for grocery credit card benefits.
               Applies to all credit cards that support benefits on Chrome"/>
  <variant name="SharedCreditCardStreamingBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for streamining credit card benefits.
               Applies to all credit cards that support benefits on Chrome"/>
  <variant name="SharedCreditCardSubscriptionBenefits"
      summary="This optimization provides information about whether a
               merchant url is eligible for subscription credit card
               benefits. Applies to all credit cards that support benefits on
               Chrome"/>
  <variant name="ShoppingDiscounts"
      summary="This optimization provides information about shopping
               discounts for a URL."/>
  <variant name="ShoppingPagePredictor"
      summary="Determines if a page is shopping related or not"/>
  <variant name="ShoppingPageTypes"
      summary="This optimization provides information about shopping page
               types of this page."/>
  <variant name="ThankCreatorEligible"
      summary="This optimization provides information for whether a page is
               eligible for the 'Thank Creator' feature."/>
  <variant name="V8CompileHints"
      summary="Information about which JavaScript functions should be eager
               compiled."/>
  <variant name="VcnMerchantOptOutDiscover"
      summary="This optimization provides information about whether a
               merchant is opted-out of Discover virtual cards for a URL."/>
  <variant name="VcnMerchantOptOutMastercard"
      summary="This optimization provides information about whether a
               merchant is opted-out of Mastercard virtual cards for a URL."/>
  <variant name="VcnMerchantOptOutVisa"
      summary="This optimization provides information about whether a
               merchant is opted-out of Visa virtual cards for a URL."/>
</variants>

<variants name="PageContentAnnotationsStorageType">
  <variant name="ModelAnnotations" summary="Model Annotations"/>
  <variant name="RelatedSearches" summary="Related Searches"/>
  <variant name="RemoteMetadata" summary="Remote Metadata"/>
  <variant name="SalientImageMetadata" summary="Salient Image Metadata"/>
  <variant name="SearchMetadata" summary="Search Metadata"/>
  <variant name="Unknown" summary="Unknown"/>
</variants>

<variants name="PageTextDumpEvent">
  <variant name="FinishedLoad" summary="finished load"/>
  <variant name="FirstLayout" summary="first layout"/>
</variants>

<variants name="RequestContext">
  <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="Journeys" summary="Journeys surface"/>
  <variant name="NewTabPage" summary="New tab page"/>
  <variant name="NonPersonalizedPageInsightsHub"
      summary="Non personalized page insights hub"/>
  <variant name="PageInsightsHub" summary="Page insights hub"/>
  <variant name="PageNavigation" summary="Page navigation"/>
  <variant name="Shopping" summary="Requests for shopping features"/>
</variants>

<histogram name="OptimizationGuide.AccessTokenHelper.Result"
    enum="OptimizationGuideAccessTokenResult" expires_after="2024-12-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of an OAuth access token request. Recorded every time a
    request was made for allowed request contexts for on-demand hints.
  </summary>
</histogram>

<histogram name="OptimizationGuide.ApplyDecision.{OptimizationType}"
    enum="OptimizationGuideOptimizationTypeDecision" expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.ClearFetchedHints.StoreAvailable"
    enum="BooleanAvailable" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.HintCache.HintType.Loaded"
    enum="HintCacheStoreEntryType" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of loading the metadata while initializing the
    HintCacheLevelDBStore.
  </summary>
</histogram>

<histogram name="OptimizationGuide.HintCacheLevelDBStore.Status"
    enum="OptimizationGuideHintCacheLevelDBStoreStatus" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records each status change within the HintCacheLevelDBStore.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.HintsFetcher.GetHintsRequest.DroppedHosts.{RequestContext}"
    units="counts" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.HostCount.{RequestContext}"
    units="total host count" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of hosts selected for sending a hint request using
    {RequestContext} of the OptmizationGuide HintsFetcher. This will be captured
    when any hint request is initiated.
  </summary>
  <token key="RequestContext" variants="RequestContext"/>
</histogram>

<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.NetErrorCode"
    enum="NetErrorCodes" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Net error codes for HintsFetch requests to the Optimization Guide Service on
    success and failure.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.HintsFetcher.GetHintsRequest.RequestStatus.{RequestContext}"
    enum="OptimizationGuideFetcherRequestStatus" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.GetHintsRequest.Status"
    enum="HttpResponseCode" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.GetHintsRequest.UrlCount.{RequestContext}"
    units="total url count" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of URLs selected for sending a hint request using
    {RequestContext} of the OptmizationGuide HintsFetcher. This will be captured
    when any hint request is initiated.
  </summary>
  <token key="RequestContext" variants="RequestContext"/>
</histogram>

<histogram name="OptimizationGuide.HintsManager.ActiveTabUrlsToFetchFor"
    units="counts" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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"
    enum="BooleanStored" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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}"
    enum="BooleanValid" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.ModelExecution.ContextStartToExecutionTime.{ModelExecutionFeature}"
    units="ms" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records time from when context was first added to the session to when the
    first execute call was made. Recorded on the first execute call for a
    session following a new context being added.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.FeatureCurrentlyEnabledResult.{ModelExecutionFeature}"
    enum="FeatureCurrentlyEnabledResult" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether a feature is currently enabled. Recorded everytime the
    feature status is queried.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.FeatureEnabledAtSettingsChange.{ModelExecutionFeature}"
    enum="Boolean" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether {ModelExecutionFeature} is currently enabled after settings
    is updated. Recorded everytime settings is toggled for the feature.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.FeatureEnabledAtStartup.{ModelExecutionFeature}"
    enum="Boolean" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether {ModelExecutionFeature} is currently enabled at startup.
    Recorded once at startup.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceAdaptationModelAvailability.{ModelExecutionFeature}"
    enum="OnDeviceModelAdaptationAvailability" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the availability of adaptation model for {ModelExecutionFeature}.
    Recorded each time an update to the base model or the foundation model is
    triggered.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceAddContextResult.{ModelExecutionFeature}"
    enum="OptimizationGuideOnDeviceAddContextResult" expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures the possible outcomes of Session::AddContext(). Recorded everytime
    Session::AddContext() is called. context.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceContextFinishedProcessing.{ModelExecutionFeature}"
    enum="Boolean" expires_after="2025-06-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the context was fully processed when the model was executed.
    Recorded for each execution of the on device model.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceContextTokensProcessed.{ModelExecutionFeature}"
    units="tokens" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of context tokens available when the on device model is
    executed. Recorded for each execution of the on device model.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceDestroyedWhileWaitingForResponseTime.{ModelExecutionFeature}"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records time from execute call to the Session destroyed. Recorded when the
    Session is destroyed, but only if the complete response was not received.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceExecuteModelResult.{ModelExecutionFeature}"
    enum="OptimizationGuideOnDeviceExecuteModelResult"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures the possible outcomes of Session::ExecuteModel(). Recorded
    everytime Session::ExecuteModel() is called. context.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceFirstResponseTime.{ModelExecutionFeature}"
    units="ms" expires_after="2025-06-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records time to the first response after an execute call to the on device
    model. Recorded for every execute call to the on device model that returns a
    response.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelAdaptationLoadResult"
    enum="OnDeviceModelLoadResult" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of loading a model adaptation from OnDeviceModelService.
    This is recorded for every model adaptation loaded from a base model.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelEligibilityReason.{ModelExecutionFeature}"
    enum="OptimizationGuideOnDeviceModelEligibilityReason"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the on-device model was eligible to be used and if not, why
    not. Recorded once at the start of each execution session.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelInstallCriteria.{Event}.{Criteria}"
    enum="Boolean" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records evaluation of various criteria required for on-device model
    installation. {Event}
  </summary>
  <token key="Criteria">
    <variant name="All" summary="All criteria have been met"/>
    <variant name="DeviceCapability"
        summary="The device is capable of running an on-device model"/>
    <variant name="DiskSpace"
        summary="There is sufficient disk space to install"/>
    <variant name="EnabledByEnterprisePolicy"
        summary="model installation is enabled by enterprise policy"/>
    <variant name="EnabledByFeature"
        summary="model installation is enabled by feature"/>
    <variant name="FeatureUse"
        summary="There has been recent feature use that could benefit from an
                 on-device model"/>
  </token>
  <token key="Event">
    <variant name="AtAttemptedUse"
        summary="Recorded when a feature is being used that could benefit
                 from the on-device model."/>
    <variant name="AtRegistration"
        summary="Recorded once shortly after startup, regardless of whether
                 the on-device model is currently installed."/>
  </token>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelInstalledAtRegistrationTime"
    enum="Boolean" expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the on-device model is fully installed. Recorded when the
    on-device model installer is registered. This happens at most once per
    restart, when the device becomes eligible for on-device execution.
  </summary>
</histogram>

<histogram name="OptimizationGuide.ModelExecution.OnDeviceModelLoadResult"
    enum="OnDeviceModelLoadResult" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of loading a model from OnDeviceModelService. This is
    recorded for every model load.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelPerformanceClass"
    enum="OnDeviceModelPerformanceClass" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the estimated performance class of this device based on a
    microbenchmark. This is recorded once on startup after a delay.
  </summary>
</histogram>

<histogram name="OptimizationGuide.ModelExecution.OnDeviceModelStatusAtUseTime"
    enum="OptimizationGuideOnDeviceModelStatus" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the on-device model status. Recorded when a feature is used that
    could benefit from an on-device model.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelValidationResult"
    enum="OnDeviceModelValidationResult" expires_after="2025-06-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of running the on-device model validation prompts.
    Recorded each time validation is run.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceModelValidationResultOnValidationStarted"
    enum="OnDeviceModelValidationResult" expires_after="2025-06-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the current validation status of the on-device model. Recorded each
    time the model is updated, or on startup with an existing model if
    validation has not completed for that model.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTime.{ModelExecutionFeature}"
    units="ms" expires_after="2024-12-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records time until the response is completed after an execute call to the on
    device model. Recorded for every execute call to the on device model that
    completes.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceResponseHasRepeats.{ModelExecutionFeature}"
    enum="Boolean" expires_after="2025-06-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the response was halted due to repeating text. Recorded for
    every execute call to the on device model that completes.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.OnDeviceTextSafetyModelMetadataValidity"
    enum="OnDeviceTextSafetyModelMetadataValidity" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the received text safety model is valid. Recorded each time
    an update to the text safety model has been pushed to the on device service
    controller.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.Result.{ModelExecutionFeature}"
    enum="Boolean" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of model execution for {ModelExecutionFeature}. Recorded
    everytime model execution happens.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.ServerError.{ModelExecutionFeature}"
    enum="OptimizationGuideModelExecutionError" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the server error returned in the model execution response for
    {ModelExecutionFeature} from the the Optmization Guide Servic. Recorded
    whenever server error is returned.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.SessionUsedRemoteExecution.{ModelExecutionFeature}"
    enum="Boolean" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether a created session was one that uses remote execution.
    Recorded each time an execution session is created.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.SettingsVisibilityResult.{ModelExecutionFeature}"
    enum="FeaturesSettingsVisibilityResult" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records visibility of different features. Recorded everytime the feature's
    settings visibility status is queried.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecution.TimeToProcessRedactions.{ModelExecutionFeature}"
    units="microseconds" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records amount of time it takes to process redactions. This is called every
    time text is received from the model.

    Note: This metric is dropped for clients without high-precision clocks.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutionFetcher.FetchLatency.{ModelExecutionFeature}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration of a request to fetch model execution from the remote
    Optimization Guide Service starts until it completes. Recorded every time
    model execution results are fetched and parsed successfully.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram name="OptimizationGuide.ModelExecutionFetcher.NetErrorCode"
    enum="NetErrorCodes" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Net error codes for each model execution request to the Optimization Guide
    Service, recorded on success and failure.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutionFetcher.RequestStatus.{ModelExecutionFeature}"
    enum="OptimizationGuideFetcherRequestStatus" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of making a model execution request for {ModelExecutionFeature}
    to the Optmization Guide Service. This includes whether a network request
    was actually sent or not.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram name="OptimizationGuide.ModelExecutionFetcher.Status"
    enum="HttpResponseCode" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The HTTP response code for each model execution request to the Optimization
    Guide Service, recorded on success and failure.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.DidTimeout.{OptimizationTarget}"
    enum="Boolean" expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the model execution for {OptimizationTarget} was cancelled
    due to running past the configured timeout. In M115+ if batch execution is
    used, this is recorded once per each input within the batch.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.ExecutionLatency.{OptimizationTarget}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration it took execute the model for
    {OptimizationTarget}. Recorded once per model execution for
    {OptimizationTarget}. In M115+ if batch execution is used, this is recorded
    once per each input within the batch.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.ExecutionStatus.{OptimizationTarget}"
    enum="OptimizationGuideExecutionStatus" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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}. In M115+ if batch execution is used, this
    is recorded once per each input within the batch.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.ExecutionThreadTime.{OptimizationTarget}"
    units="ms" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration it took to execute the model for
    {OptimizationTarget}. Recorded once per model execution for
    {OptimizationTarget}. This is effectively the same as
    `OptimizationGuide.ModelExecutor.ExecutionLatency.{OptimizationTarget}` but
    this is recorded using `base::ElapsedThreadTimer` instead. In M115+ if batch
    execution is used, this is recorded once per each input within the batch.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.ExecutionThreadTimeMicroseconds.{OptimizationTarget}"
    units="microseconds" expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Same as OptimizationGuide.ModelExecutor.ExecutionThreadTime, but recorded in
    microseconds to enable high precision timing of fast models.

    Note: This metric is dropped for clients without high-precision clocks.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.ModelAvailableToLoad.{OptimizationTarget}"
    enum="BooleanAvailable" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.ModelLoadingDuration2.{OptimizationTarget}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration it took to load a model file successfully for
    {OptimizationTarget}. Recorded once per model load attempt for
    {OptimizationTarget}.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.TaskExecutionLatency.{OptimizationTarget}"
    units="ms" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</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. In M115+ if
    batch execution is used, this is recorded once per batch whether.

    In M115, this was changed to always record the task execution latency
    whether or not the task succeeded, whereas before it was only recorded on
    success.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.TaskSchedulingLatency.{OptimizationTarget}"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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. In M115+ if batch execution is
    used, this is recorded once per batch.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelExecutor.TimeSincePreviousRun.{OptimizationTarget}"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration between runs of the model for
    {OptimizationTarget}. Recorded once for every model run after the first. In
    M115+ if batch execution is used, this is recorded once per batch.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram name="OptimizationGuide.ModelFilesVerified.{OptimizationTarget}"
    enum="BooleanValid" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.ModelHandler.HandlerCreated.{OptimizationTarget}"
    enum="BooleanCreated" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records that the model handler has been created for {OptimizationTarget}.
    Recorded once for each session (profile start) that the model handler is
    created for {OptimizationTarget}.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelHandler.HandlerCreatedToModelAvailable.{OptimizationTarget}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration between the handler getting created to the model
    being available for {OptimizationTarget}. Recorded once for each session
    (profile start) that the model handler is created for {OptimizationTarget}.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelQuality.UserFeedback.{ModelExecutionFeature}"
    enum="OptimizationGuideUserFeedback" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user feedback for each model execution feature. Recorded once per each
    model quality logs upload request.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram
    name="OptimizationGuide.ModelQualityLogsUploaderService.NetErrorCode"
    enum="NetErrorCodes" expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Net error codes for each model quality logs upload, recorded on success and
    failure.
  </summary>
</histogram>

<histogram name="OptimizationGuide.ModelQualityLogsUploaderService.Status"
    enum="HttpResponseCode" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The HTTP response code for each model quality logs upload, recorded on
    success and failure.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.ModelQualityLogsUploaderService.UploadStatus.{ModelExecutionFeature}"
    enum="OptimizationGuideModelQualityLogsUploadStatus"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of model quality logs upload request for each
    {ModelExecutionFeature}. Uploaded once for each model quality logs upload
    request.
  </summary>
  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
</histogram>

<histogram name="OptimizationGuide.OptimizationFilterStatus.{OptimizationType}"
    enum="OptimizationGuideOptimizationFilterStatus" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.MajorVersion2"
    units="major version number" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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 each time the component was loaded.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.AnnotateVisitResultCached"
    enum="BooleanCacheHit" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the requested annotation for a visit was provided by the
    in-memory cache or required them to be determined by executing the models.
    Recorded once for every requested visit annotation.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.BatchRequestedSize.{AnnotationType}"
    units="counts" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the size of a {AnnotationType} BatchAnnotate request in how many
    string inputs were given. Recorded once for every call to BatchAnnotate.
  </summary>
  <token key="AnnotationType" variants="AnnotationType"/>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.BatchSuccess.{AnnotationType}"
    enum="BooleanSuccess" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether any input to a {AnnotationType} BatchAnnotate request was
    executed successfully. Recorded once for every completed callback for
    BatchAnnotate.
  </summary>
  <token key="AnnotationType" variants="AnnotationType"/>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.GoogleSearchMetadataExtracted"
    enum="Boolean" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the TemplateURLService was able to extract metadata on a
    Google SRP. Recorded once for each local visit to the Google SRP.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.JobExecutionTime.{AnnotationType}"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the total execution time of a {AnnotationType} BatchAnnotate
    request. Recorded once for every completed callback for BatchAnnotate.
  </summary>
  <token key="AnnotationType" variants="AnnotationType"/>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.JobScheduleTime.{AnnotationType}"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time a {AnnotationType} BatchAnnotate request was waiting in the
    queue before execution started. Recorded once for every completed callback
    for BatchAnnotate.
  </summary>
  <token key="AnnotationType" variants="AnnotationType"/>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotations.SalientImageAvailability"
    enum="OptimizationGuideSalientImageAvailability" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the availability of salient images on page load.</summary>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotationsService.ContentAnnotated"
    enum="BooleanAnnotated" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="PageContentAnnotationsStorageStatus" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of whether the content annotations were stored in History
    Service when the necessary data has been collected 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.ContentAnnotationsStorageStatus.{PageContentAnnotationsStorageType}"
    enum="PageContentAnnotationsStorageStatus" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of whether the {PageContentAnnotationsStorageType} were
    stored in History Service when the data has been collected successfully.
    This will record at most once per page load.
  </summary>
  <token key="PageContentAnnotationsStorageType"
      variants="PageContentAnnotationsStorageType"/>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotationsService.RelatedSearchesCache.CacheHit"
    enum="BooleanCacheHit" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether there was a cache hit when attempting to fetch the set of
    related searches cached by the ZPS prefetching on SRP logic. This will be
    recorded approximately once per successful Google SRP page load.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PageContentAnnotationsService.RelatedSearchesExtracted"
    enum="BooleanAnnotated" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PageContentAnnotationsService.VisibilityScoreOfGoogleSRP"
    units="score" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the visibility score of Google Search Result Pages when the page's
    annotation is complete.
  </summary>
</histogram>

<histogram name="OptimizationGuide.PageTextDump.AbandonedRequests"
    units="count" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</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"/>
</histogram>

<histogram
    name="OptimizationGuide.PageTextDump.OutstandingRequests.DidFinishLoad"
    units="count" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of outstanding page text dump requests at DidFinishLoad.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PageTextDump.TimeUntilFrameDisconnected.{PageTextDumpEvent}"
    units="ms" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</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"/>
</histogram>

<histogram
    name="OptimizationGuide.PageTextDump.TimeUntilFrameDumpCompleted.{PageTextDumpEvent}"
    units="ms" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</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"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionManager.DownloadServiceAvailabilityBlockedFetch"
    enum="BooleanBlocked" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.FirstModelFetchSinceServiceInit"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration it took for the first model fetch to start from
    the time the optimization guide service was initialized. Recorded once at
    startup when the first model fetch happens.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PredictionManager.IsDownloadUrlValid.{OptimizationTarget}"
    enum="BooleanValid" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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
    name="OptimizationGuide.PredictionManager.ModelAvailableAtRegistration.{OptimizationTarget}"
    enum="BooleanAvailable" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the model was in the local store for {OptimizationTarget}
    when the observer for {OptimizationTarget} was registered with the
    prediction manager. Recorded at most once per session (profile start) when
    {OptimizationTarget} is registered.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionManager.ModelDeliveryEvents.{OptimizationTarget}"
    enum="OptimizationGuideModelDeliveryEvent" expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the different events of prediction model delivery lifecycle for
    {OptimizationTarget}, such as fetching model metadata, downloading model
    file, verification, unzipping, etc. Recorded whenever lifecycle state
    changes.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionManager.RegistrationTimeSinceServiceInit.{OptimizationTarget}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration it took for the feature to register with the
    optimization guide for {OptimizationTarget} from the time the optimization
    guide service was initialized. Recorded once when the feature registers with
    the service.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelDownloadManager.DownloadStartLatency.{OptimizationTarget}"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time duration it took for the model download to be started by
    the download service for {OptimizationTarget} from the time it was requested
    by the optimization guide. Recorded once per model download when model
    download starts successfully.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelDownloadManager.DownloadStatus"
    enum="OptimizationGuidePredictionModelDownloadStatus" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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"
    enum="BooleanSuccess" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the Download Service notified whether a model download has
    succeeded or failed.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError.{OptimizationTarget}"
    enum="PlatformFileError" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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
    name="OptimizationGuide.PredictionModelDownloadManager.State.{OptimizationTarget}"
    enum="OptimizationGuidePredictionModelDownloadState"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The state of a model download. Recorded multiple times per model file
    download, as the state is changed.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram name="OptimizationGuide.PredictionModelExpired.{OptimizationTarget}"
    enum="BooleanExpired" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PredictionModelExpiredVersion.{OptimizationTarget}"
    units="version number" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the version of a prediction model for an OptimizationTarget that
    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.GetModelsResponse.NetErrorCode"
    enum="NetErrorCodes" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Net error codes for GetModelsRequest to the Optimization Guide Service on
    success and failure. Recorded once per GetModelsRequest where the model was
    fetched for. It is not advisable to sum up the counts across
    OptimizationTargets as the GetModelsRequests bundle requests for various
    OptimizationTargets into single request to the server.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.NetErrorCode.{OptimizationTarget}"
    enum="NetErrorCodes" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Net error codes for GetModelsRequest to the Optimization Guide Service on
    success and failure for {OptimizationTarget}. Recorded once per
    GetModelsRequest where the model for {OptimizationTarget} was fetched for.
    It is not advisable to sum up the counts across OptimizationTargets as the
    GetModelsRequests bundle requests for various OptimizationTargets into
    single request to the server.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status"
    enum="HttpResponseCode" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    For each GetModelsRequest to the Optimization Guide Service, log the HTTP
    response code on success and failure. Recorded once per GetModelsRequest
    where the model was fetched for. It is not advisable to sum up the counts
    across OptimizationTargets as the GetModelsRequests bundle requests for
    various OptimizationTargets into single request to the server.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status.{OptimizationTarget}"
    enum="HttpResponseCode" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    For each GetModelsRequest to the Optimization Guide Service for
    {OptimizationTarget}, log the HTTP response code on success and failure.
    Recorded once per GetModelsRequest where the model for {OptimizationTarget}
    was fetched for. It is not advisable to sum up the counts across
    OptimizationTargets as the GetModelsRequests bundle requests for various
    OptimizationTargets into single request to the server.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelLoadedVersion.{OptimizationTarget}"
    units="version number" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PredictionModelRemoved.{OptimizationTarget}"
    enum="Boolean" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded whenever the prediction model for {OptimizationTarget} was removed
    from the model store.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelStore.ModelCount.{OptimizationTarget}"
    units="counts" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total number of model directories in the prediction model store for
    {OptimizationTarget}. Recorded once at startup.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram name="OptimizationGuide.PredictionModelStore.ModelRemovalReason"
    enum="OptimizationGuidePredictionModelStoreModelRemovalReason"
    expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reason the prediction model was removed from the model store.
    Recorded when the model is removed.
  </summary>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelStore.ModelRemovalReason.{OptimizationTarget}"
    enum="OptimizationGuidePredictionModelStoreModelRemovalReason"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reason the prediction model for {OptimizationTarget} was removed
    from the model store. Recorded when the model is removed.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelStore.TotalDirectorySize.{OptimizationTarget}"
    units="MB" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total disk usage of the prediction model store attributed to
    {OptimizationTarget}. Recorded once at startup.
  </summary>
  <token key="OptimizationTarget" variants="OptimizationTarget"/>
</histogram>

<histogram
    name="OptimizationGuide.PredictionModelUpdateVersion.{OptimizationTarget}"
    units="version number" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.ReadCacheResult"
    enum="OptimizationGuideReadCacheResult" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</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" enum="BooleanEnabled"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.TextSafetyChecker.InferenceResult"
    enum="OptimizationGuideTextSafetyInferenceResult"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of a text safety inference request. Recorded once for each such
    request.
  </summary>
</histogram>

<histogram name="OptimizationGuide.TextSafetyChecker.InitTime" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration of the text safety checker's initialization time. Recorded once
    for each new model execution session.
  </summary>
</histogram>

<histogram name="OptimizationGuide.TextSafetyChecker.ModelCreationTime"
    units="ms" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration elapsed during text safety model creation. Recorded once for
    each text safety inference request.
  </summary>
</histogram>

<histogram name="OptimizationGuide.TextSafetyChecker.ModelExecutionTime"
    units="ms" expires_after="M135">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration of text safety model execution. Recorded once for each text
    safety inference request.
  </summary>
</histogram>

<histogram name="OptimizationGuide.TextSafetyChecker.TokensPerSecond"
    units="counts" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    An estimate of the text safety model's inference throughput in tokens per
    second. Recorded once for each text safety inference request.
  </summary>
</histogram>

</histograms>

</histogram-configuration>