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

<!--
Copyright 2022 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 histograms owned
by the Performance Manager team along with a detailed description for
each histogram.
-->

<histogram-configuration>

<histograms>

<variants name="CoreType">
  <variant name="Balanced"/>
  <variant name="Efficiency"/>
  <variant name="Performance"/>
</variants>

<variants name="SiteDBWriteTrigger">
  <variant name="ClearAllSiteData"/>
  <variant name="ClearSiteDataForOrigins"/>
  <variant name="WriteSiteDataIntoStore"/>
</variants>

<histogram name="CPU.Experimental.CpuEstimationTaskMigrated" enum="Boolean"
    expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    True if the CPU estimation task was running on a different CPU at the end of
    the assembly loop than it was at the beginning.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only.
  </summary>
</histogram>

<histogram name="CPU.Experimental.CpuEstimationTaskQueuedTime.{CoreType}"
    units="microseconds" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time in microseconds during which the CPU estimation task was queued
    before running.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only. Reported only on devices using the high resolution clock.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram name="CPU.Experimental.CpuEstimationTaskThreadTime.{CoreType}"
    units="microseconds" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The thread time in microseconds it took to fully execute the CPU estimation
    task.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only. Reported only on devices using the high resolution clock.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram name="CPU.Experimental.CpuEstimationTaskTotalTime.{CoreType}"
    units="microseconds" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time in microseconds it took to fully execute the CPU estimation task,
    that is its queued time + the wall time elapsed before the task finished.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only. Reported only on devices using the high resolution clock.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram name="CPU.Experimental.CpuEstimationTaskWallTime.{CoreType}"
    units="microseconds" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The wall time in microseconds it took to fully execute the CPU estimation
    task.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only. Reported only on devices using the high resolution clock.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram name="CPU.Experimental.CpuEstimationThreadTimePercent.{CoreType}"
    units="%" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The ratio of thread time vs wall time of the CPU estimation task's
    &quot;running&quot; portion, i.e. the thread time of the assembly loop
    divided by its wall time.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram
    name="CPU.Experimental.EstimatedFrequencyAsPercentOfLimit.{CoreType}"
    units="%" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The CPU frequency as a percentage of the estimated current frequency (see
    base::EstimateCpuFrequency) over the max frequency of the fastest CPU, as
    reported by base::GetCpuMhzLimit.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram name="CPU.Experimental.EstimatedFrequencyAsPercentOfMax.{CoreType}"
    units="%" expires_after="2024-07-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The CPU frequency as a percentage of the estimated current frequency (see
    base::EstimateCpuFrequency) over the max frequency of the fastest CPU, as
    reported by base::GetCpuMaxMhz.

    Recorded when the CPU estimation task runs (every 5 minutes). Windows x86
    only.
  </summary>
  <token key="CoreType" variants="CoreType"/>
</histogram>

<histogram
    name="PerformanceManager.CPUMonitorMemoryUse.{ResourceContextType}.{ResourceContextState}"
    units="KB" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The estimated size of CPUMeasurementMonitor's result cache. Recorded at the
    same time as the Memory.Browser.PrivateMemoryFootprint. This slice is the
    memory used to store {ResourceContextType} that are {ResourceContextState}.
  </summary>
  <token key="ResourceContextType">
    <variant name="AllContexts" summary="all ResourceContexts"/>
    <variant name="FrameContexts"/>
    <variant name="OriginInBrowsingInstanceContext"/>
    <variant name="PageContexts"/>
    <variant name="ProcessContexts"/>
    <variant name="WorkerContexts"/>
  </token>
  <token key="ResourceContextState">
    <variant name="Dead"
        summary="associated with a resource that no longer exists"/>
    <variant name="Live" summary="associated with an existing resource"/>
    <variant name="Total" summary="in any state"/>
  </token>
</histogram>

<histogram name="PerformanceManager.DiskStats.UserDataDirFreeSpaceMb"
    units="MB" expires_after="2024-09-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of available space in megabytes on the disk that hosts the
    current user data directory as reported by
    SysInfo::AmountOfFreeDiskSpace(user_data_dir).
  </summary>
</histogram>

<histogram name="PerformanceManager.DiskStats.UserDataDirFreeSpacePercent"
    units="%" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The percentage of available space on the disk that hosts the current user
    data directory as reported by SysInfo::AmountOfFreeDiskSpace(user_data_dir)
    / capacity.
  </summary>
</histogram>

<histogram name="PerformanceManager.Experimental.AccessibilityModeFlag"
    enum="AccessibilityModeFlagEnum" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether individual accessibility mode flags are set. Recorded with every UMA
    report to attempt to slice other metrics based on which a11y flags are set.
  </summary>
</histogram>

<histogram name="PerformanceManager.Experimental.HasAccessibilityModeFlag"
    enum="Boolean" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether any accessibility mode flags are set. Recorded with every UMA report
    to attempt to slice other metrics based on whether a11y is active.
  </summary>
</histogram>

<histogram name="PerformanceManager.LoadingNotQuiescentPageCount.{Visibility}"
    units="pages" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded every 30 seconds with the number of PageNodes that have started
    loading and not reached quiescence at the end of the interval (ie. in
    LoadingState kLoading or kLoadedBusy). This variant records pages that are
    {Visibility} for the entire load. PerformanceManager.QuiescentPageCount is
    recorded at the same time for comparison.
  </summary>
  <token key="Visibility">
    <variant name="All" summary="in any visibility state"/>
    <variant name="Hidden" summary="hidden"/>
    <variant name="MixedVisibility" summary="in a mix of visibility states"/>
    <variant name="Visible" summary="visible"/>
  </token>
</histogram>

<histogram name="PerformanceManager.QuiescentPageCount" units="pages"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded every 30 seconds with the number of PageNodes that have not started
    loading (ie. in LoadingState kLoadingNotStarted or kLoadingTimedOut) or have
    reached quiescence (ie. in LoadingState kLoadedIdle) at the end of the
    interval. PerformanceManager.LoadingNotQuiescentPageCount is recorded at the
    same time for comparison.
  </summary>
</histogram>

<histogram name="PerformanceManager.SiteDB.DatabaseInit"
    enum="LocalSiteCharacteristicsDBInitStatus" expires_after="2023-12-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of opening the Local Site Characteristics database. Recorded at
    startup when the database gets opened. If the result is not Success,
    PerformanceManager.SiteDB.DatabaseInitAfterRepair may be logged as well.
  </summary>
</histogram>

<histogram name="PerformanceManager.SiteDB.DatabaseInitAfterDelete"
    enum="LocalSiteCharacteristicsDBInitStatus" expires_after="2023-12-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of opening the Local Site Characteristics database after deleting
    it after a failed repair attempt. Recorded at startup when the database gets
    opened, if the initial open and repair attempts failed.
  </summary>
</histogram>

<histogram name="PerformanceManager.SiteDB.DatabaseInitAfterRepair"
    enum="LocalSiteCharacteristicsDBInitStatus" expires_after="2023-12-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of opening the Local Site Characteristics database after a repair
    attempt. Recorded at startup when the database gets opened, if the initial
    open attempt failed. If the result is not Success,
    PerformanceManager.SiteDB.DatabaseInitAfterDelete may be logged as well.
  </summary>
</histogram>

<histogram name="PerformanceManager.SiteDB.DatabaseRepair"
    enum="BooleanSuccess" expires_after="2023-12-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of trying to repair the Local Site Characteristics database after
    a failed open. Recorded at startup when the database gets opened, if the
    initial open attempt failed.
  </summary>
</histogram>

<histogram
    name="PerformanceManager.SiteDB.ObservationTimeBeforeFirstUse.{Feature}"
    units="ms" expires_after="2023-12-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The cumulative observation time before the {Feature} feature tracked in the
    Local Site Characteristics database gets used. Reported the first time a
    site is observed to use the feature.
  </summary>
  <token key="Feature">
    <variant name="AudioUsageInBackground"/>
    <variant name="FaviconUpdateInBackground"/>
    <variant name="TitleUpdateInBackground"/>
  </token>
</histogram>

<histogram name="PerformanceManager.SiteDB.ReadHasCompletedBeforeQuery"
    enum="Boolean" expires_after="2023-12-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Boolean indicating if the read operation from the Local Site Characteristics
    database has completed when we query for the characteristics of a site.
    Reported every time the database is queried.
  </summary>
</histogram>

<histogram name="PerformanceManager.SiteDB.WriteCompleted.{SiteDBWriteTrigger}"
    enum="BooleanCompleted" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged when a write to the Local Site Characteristics database finishes, if
    the write was scheduled by a call to {SiteDBWriteTrigger}. The count of this
    should match PerformanceManager.SiteDB.WriteScheduled.{SiteDBWriteTrigger},
    otherwise writes are being lost.
  </summary>
  <token key="SiteDBWriteTrigger" variants="SiteDBWriteTrigger"/>
</histogram>

<histogram name="PerformanceManager.SiteDB.WriteScheduled.{SiteDBWriteTrigger}"
    enum="BooleanAttempted" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged whenever a write to the Local Site Characteristics database is
    scheduled by a call to {SiteDBWriteTrigger}. The count of this should match
    PerformanceManager.SiteDB.WriteCompleted.{SiteDBWriteTrigger}, otherwise
    writes are being lost.
  </summary>
  <token key="SiteDBWriteTrigger" variants="SiteDBWriteTrigger"/>
</histogram>

<histogram name="PerformanceManager.TabRevisitTracker.TimeToClose2"
    units="seconds" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged everytime a background tab is closed. Records the time in seconds
    that the tab has spent in the background since it was last active.
  </summary>
</histogram>

<histogram name="PerformanceManager.TabRevisitTracker.TimeToRevisit2"
    units="seconds" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged everytime a background tab is revisited. Records the time in seconds
    that the tab has spent in the background since it was last active.
  </summary>
</histogram>

<histogram name="PerformanceManager.UserTuning.BatterySaverModeEnabledPercent"
    units="%" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded every UMA upload, this histogram represents the percentage of the
    interval since the last upload that was spent with Battery Saver enabled.
  </summary>
</histogram>

<histogram name="PerformanceManager.UserTuning.EfficiencyMode"
    enum="EfficiencyMode" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged on each UMA upload to represent which user-controllable Efficiency
    Mode setting the browser is in during the reported window. If the mode was
    changed between uploads, MIXED will be reported for that interval.

    This histogram is used internally to filter other histograms by efficiency
    mode.
  </summary>
</histogram>

<histogram name="PerformanceManager.UserTuning.MemorySaverModeEnabledPercent"
    units="%" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded every UMA upload, this histogram represents the percentage of the
    interval since the last upload that was spent with Memory Saver enabled.
  </summary>
</histogram>

</histograms>

</histogram-configuration>