<!--
Copyright 2021 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 related to
segmentation platform 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="BooleanModel">
<variant name="ChromeLowUserEngagement"/>
<variant name="ChromeStartAndroid" summary="(obsolete) Not used since M-127"/>
<variant name="ChromeStartAndroidV2"
summary="(obsolete) Not used since M-127"/>
<variant name="CrossDeviceUserSegment"/>
<variant name="FrequentFeatureUser"/>
<variant name="IntentionalUserSegment"/>
<variant name="PowerUser"/>
<variant name="QueryTiles"/>
<variant name="ResumeHeavyUser"/>
<variant name="SearchUser"/>
<variant name="ShoppingUser"/>
<variant name="TabletProductivityUser"/>
</variants>
<variants name="DatabaseOperation">
<variant name="AddUmaMetric"/>
<variant name="RemoveUrls"/>
<variant name="RunReadOnlyQueries"/>
<variant name="StoreUkmEntry"/>
<variant name="UpdateUrlForUkmSource"/>
</variants>
<variants name="Index">
<variant name="0" summary="index 0"/>
<variant name="1" summary="index 1"/>
<variant name="2" summary="index 2"/>
<variant name="3" summary="index 3"/>
<variant name="4" summary="index 4"/>
<variant name="5" summary="index 5"/>
<variant name="6" summary="index 6"/>
<variant name="7" summary="index 7"/>
<variant name="8" summary="index 8"/>
<variant name="9" summary="index 9"/>
</variants>
<variants name="ModelExecutionStatus">
<variant name="ExecutionError"/>
<variant name="Success"/>
</variants>
<variants name="SegmentationKey">
<variant name="AdaptiveToolbar"/>
<variant name="AndroidHomeModuleRanker"/>
<variant name="ChromeLowUserEngagement"/>
<variant name="ChromeStartAndroid" summary="(obsolete) Not used since M-127"/>
<variant name="ChromeStartAndroidV2"
summary="(obsolete) Not used since M-127"/>
<variant name="ComposePromotion"/>
<variant name="ContextualPageActions"/>
<variant name="CrossDeviceUser"/>
<variant name="DatabaseApiClients"/>
<variant name="DesktopNtpModule"/>
<variant name="DeviceSwitcher"/>
<variant name="DeviceTier"/>
<variant name="DummyFeature"/>
<variant name="EphemeralHomeModuleBackend"/>
<variant name="FeedUserSegment"/>
<variant name="FrequentFeatureUser"/>
<variant name="IntentionalUser"/>
<variant name="IosModuleRanker"/>
<variant name="MetricsClustering"/>
<variant name="MostVisitedTilesUser"/>
<variant name="PasswordManagerUser"/>
<variant name="PowerUser"/>
<variant name="QueryTiles"/>
<variant name="ResumeHeavyUser"/>
<variant name="SearchUser"/>
<variant name="ShoppingUser"/>
<variant name="TabletProductivityUser"/>
<variant name="TabResumptionClassifier"/>
<variant name="URLVisitResumptionRanker"/>
<variant name="WebAppInstallationPromo"/>
</variants>
<variants name="SegmentationModel">
<variant name="AdaptiveToolbar"/>
<variant name="AndroidHomeModuleRanker"/>
<variant name="ChromeLowUserEngagement"/>
<variant name="ChromeStartAndroid" summary="(obsolete) Not used since M-127"/>
<variant name="ChromeStartAndroidV2"
summary="(obsolete) Not used since M-127"/>
<variant name="ComposePromotion"/>
<variant name="ContextualPageActionPriceTracking"/>
<variant name="CrossDeviceUserSegment"/>
<variant name="DatabaseApiClients"/>
<variant name="DesktopNtpModule"/>
<variant name="DeviceSwitcher"/>
<variant name="DeviceTierSegment"/>
<variant name="Dummy"/>
<variant name="EphemeralHomeModuleBackend"/>
<variant name="FeedUser"/>
<variant name="FrequentFeatureUserSegment"/>
<variant name="IntentionalUserSegment"/>
<variant name="IosModuleRanker"/>
<variant name="IosModuleRankerTest"/>
<variant name="MetricsClustering"/>
<variant name="MostVisitedTilesUser"/>
<variant name="NewTab"/>
<variant name="PasswordManagerUser"/>
<variant name="PowerUserSegment"/>
<variant name="QueryTiles"/>
<variant name="ResumeHeavyUserSegment"/>
<variant name="SearchUser"/>
<variant name="Share"/>
<variant name="ShoppingUser"/>
<variant name="TabletProductivityUser"/>
<variant name="TabResumptionClassifier"/>
<variant name="Unknown"/>
<variant name="UrlVisitResumptionRanker"/>
<variant name="Voice"/>
<variant name="WebAppInstallationPromo"/>
</variants>
<variants name="SignalType">
<variant name="HistogramEnum" summary="enum histogram"/>
<variant name="HistogramValue" summary="value histogram"/>
<variant name="Unknown" summary="unknown"/>
<variant name="UserAction" summary="user action"/>
</variants>
<variants name="ValidationPhase">
<variant name="Incoming" summary="before"/>
<variant name="Processed" summary="after"/>
</variants>
<histogram name="SegmentationPlatform.AdaptiveToolbar.SegmentSelected.Startup"
enum="AdaptiveToolbarButtonVariant" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the selected segment to be shown for the adaptive toolbar button.
Recorded on chrome startup.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.AdaptiveToolbar.SegmentSelection.Computed"
enum="AdaptiveToolbarButtonVariant" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of segment selection. Recorded whenever the segment
selection is updated.
</summary>
</histogram>
<histogram name="SegmentationPlatform.AdaptiveToolbar.SegmentSwitched"
enum="AdaptiveToolbarSegmentSwitch" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the segment selection switch from an old value to a new segment
after a model evaluation completes. Recorded only if the selected segment
switches to a new value.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.ClassificationRequest.TotalDuration.{SegmentationKey}"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total duration for Classification API call for the given
{SegmentationKey} including the time required for feature processing and
model execution as well.
Starts recording every time the GetClassificationAPI is called for
{SegmentationKey}. Records the duration when ClassificationResult is
returned.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
</histogram>
<histogram name="SegmentationPlatform.Database.{DatabaseOperation}" units="ms"
expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from start to end of {DatabaseOperation} call. Recorded in
`UkmDatabaseBackend::{DatabaseOperation}`.
</summary>
<token key="DatabaseOperation" variants="DatabaseOperation"/>
</histogram>
<histogram
name="SegmentationPlatform.DefaultModelDelivery.Metadata.FeatureCount.{SegmentationModel}"
units="features" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many tensor features an updated {SegmentationModel} segmentation
model requires in its metadata. Recorded only for embedded model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.DefaultModelDelivery.Metadata.Validation.{ValidationPhase}.{SegmentationModel}"
enum="SegmentationPlatformValidationResult" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of metadata validation {ValidationPhase} the metadata has
been merged with the existing metadata for {SegmentationModel}. Recorded
only for embedded model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
<token key="ValidationPhase" variants="ValidationPhase"/>
</histogram>
<histogram name="SegmentationPlatform.DefaultModelDelivery.Received"
enum="SegmentationPlatformSegmentationModel" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records what type of model has been received.
Recorded every time a model is updated, which can happen at any time, but
usually happens at least once during startup. Recorded only for embedded
model.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.DefaultModelDelivery.SaveResult.{SegmentationModel}"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an updated {SegmentationModel} segmentation model was
successfully saved. Recorded only for embedded model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.DefaultModelDelivery.SegmentIdMatches.{SegmentationModel}"
enum="BooleanYesNo" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an updated {SegmentationModel} segmentation model type
matches what was stored for that type. Recorded only for embedded model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram name="SegmentationPlatform.DeviceCountByOsType.{OsType}"
units="devices" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of active syncing devices of type {OsType} known to any profile.
Each device is identified by one unique guid. No deduping is applied. May be
0 when there are no signed in/syncing profiles open. Recorded once on
browser startup iff DeviceInfo sync is enabled. Note that the threshold on
the number of days for determining active statuses may change based on the
config of the kSegmentationDeviceCountByOsType feature.
</summary>
<token key="OsType">
<variant name="Android"/>
<variant name="ChromeOsAsh"/>
<variant name="ChromeOsLacros"/>
<variant name="Fuchsia"/>
<variant name="iOS"/>
<variant name="Linux"/>
<variant name="Mac"/>
<variant name="Unknown"/>
<variant name="Windows"/>
</token>
</histogram>
<histogram
name="SegmentationPlatform.FeatureProcessing.Error.{SegmentationModel}"
enum="SegmentationPlatformFeatureProcessingError"
expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the feature processing error of segmentation models. Recorded
whenever an error is encountered during the feature processing stage of the
{SegmentationModel} model. Used to distinguish between multiple types of
processing errors.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram name="SegmentationPlatform.Init.CreationToInitializationLatency"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time taken from the platform getting created till the platform finishes
initialization. Recorded when initialization is done.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.Init.ModelUpdatedTimeDifferenceInDays.{SegmentID}"
units="days" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time difference in days between when a new version of the model from
optimization guide is available and when the model is initialized in the
client for a given {SegmentID}. Recorded at startup for each model to
identify low values for new users.
</summary>
<token key="SegmentID" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.Init.ProcessCreationToServiceCreationLatency"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time taken from process creation till the time segmentation platform was
created. Recorded once when the platform is created.
</summary>
</histogram>
<histogram name="SegmentationPlatform.Maintenance.CleanupSignalSuccessCount"
units="signals" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of signals that were successfully cleaned up during a
maintenance cycle.
Recorded every time maintenance is performed.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.Maintenance.CompactionResult.{SignalType}"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an individual {SignalType} signal was successfully
compacted.
Recorded for each signal we attempt to clean up for every maintenance cycle.
</summary>
<token key="SignalType" variants="SignalType"/>
</histogram>
<histogram name="SegmentationPlatform.Maintenance.SignalIdentifierCount"
units="ids" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of unique signal identifiers that were found to be used
when cleaning up and compacting signals.
Recorded every time maintenance is performed.
</summary>
</histogram>
<histogram name="SegmentationPlatform.ModelAvailability.{SegmentationModel}"
enum="SegmentationModelAvailability" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the availability of the segmentation models. Since there is no good
way to check if a model is available, this histogram records an entry when
model is requested and one when model is available. The difference should
show how often a model is not returned.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup. If a
model becomes no longer available then we'll record a value of 3 (No model
metadata available) once before deleting the model metadata.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelDelivery.DeleteResult.{SegmentationModel}"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a deleted {SegmentationModel} server segmentation model was
successfully deleted from the local storage.
Recorded after deleting the local data of a server model, should only happen
if a server update removes a model that was stored locally.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelDelivery.HasMetadata.{SegmentationModel}"
enum="BooleanYesNo" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an updated {SegmentationModel} segmentation model has
metadata attached.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelDelivery.Metadata.FeatureCount.{SegmentationModel}"
units="features" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many tensor features an updated {SegmentationModel} segmentation
model requires in its metadata. Recorded only for server model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelDelivery.Metadata.Validation.{ValidationPhase}.{SegmentationModel}"
enum="SegmentationPlatformValidationResult" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of metadata validation {ValidationPhase} the metadata has
been merged with the existing metadata for {SegmentationModel}. Recorded
only for server model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
<token key="ValidationPhase" variants="ValidationPhase"/>
</histogram>
<histogram name="SegmentationPlatform.ModelDelivery.Received"
enum="SegmentationPlatformSegmentationModel" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records what type of model has been received.
Recorded every time a model is updated, which can happen at any time, but
usually happens at least once during startup. Recorded only for server
model.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.ModelDelivery.SaveResult.{SegmentationModel}"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an updated {SegmentationModel} segmentation model was
successfully saved. Recorded only for server model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelDelivery.SegmentIdMatches.{SegmentationModel}"
enum="BooleanYesNo" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an updated {SegmentationModel} segmentation model type
matches what was stored for that type. Recorded only for server model.
Recorded every time the {SegmentationModel} model is updated, which can
happen at any time, but usually happens at least once during startup.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.DefaultProvider.Status.{SegmentationModel}"
enum="SegmentationPlatformModelExecutionStatus" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the execution status after executing the {SegmentationModel}
segmentation model with default provider. Recorded every time a default
provider for {SegmentationModel} is executed.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.Duration.FeatureProcessing.{SegmentationModel}"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration it takes to process an individual tensor feature.
Recorded for each feature every time a {SegmentationModel} segmentation
model is executed.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.Duration.Model.{SegmentationModel}.{ModelExecutionStatus}"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration for executing the {SegmentationModel} segmentation ML
model when the tensor has already been constructed and filled in.
Recorded every time a {SegmentationModel} segmentation model is executed
with {ModelExecutionStatus} as the result.
</summary>
<token key="ModelExecutionStatus" variants="ModelExecutionStatus"/>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.Duration.Total.{SegmentationModel}.{ModelExecutionStatus}"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration for executing the {SegmentationModel} segmentation
model from the time the request is received, all data has been loaded from
the database and processed, the tensor has been filled in, and the ML model
itself has been executed.
Recorded every time a {SegmentationModel} segmentation model is executed
with {ModelExecutionStatus} as the result.
</summary>
<token key="ModelExecutionStatus" variants="ModelExecutionStatus"/>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.Result.{Index}.{SegmentationModel}"
units="score" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the value at index {Index} of the output tensor when executing the
{SegmentationModel} segmentation model.
Recorded every time a {SegmentationModel} segmentation model is successfully
executed.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
<token key="Index" variants="Index"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.Result.{SegmentationModel}"
units="score" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result when executing the {SegmentationModel} segmentation
model.
Recorded every time a {SegmentationModel} segmentation model is successfully
executed.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.SaveResult.{SegmentationModel}"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the result from executing the {SegmentationModel}
segmentation model was successfully saved.
Recorded every time a {SegmentationModel} segmentation model is successfully
executed.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.Status.{SegmentationModel}"
enum="SegmentationPlatformModelExecutionStatus" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the execution status after executing the {SegmentationModel}
segmentation model.
Recorded every time a {SegmentationModel} segmentation model is executed.
Before M100: The ExecutionError could mean either model not available or
execution failed.
In M100 in addition to ExecutionError,
OptimizationGuide.ModelExecutor.ExecutionStatus will also record
FileNotValid when model is not available.
M101: SkippedModelNotReady was added which counts execution attempts before
model was ready, and ExecutionError means the model failed after it was
ready. Also other cases when execution was skipped are added to this
histogram ("Skipped*").
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.ModelExecution.ZeroValuePercent.{SegmentationModel}"
units="%" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the percent of features in a tensor that are equal to 0 when the
{SegmentationModel} segmentation model is executed.
Recorded every time a {SegmentationModel} segmentation model is executed.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram
name="SegmentationPlatform.SegmentInfoDatabase.ProtoDBUpdateResult.{SegmentationKey}"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records result of persisting SegmentInfo changes to disk. This is separate
to the SegmentInfoDatabase's callback which runs after updating the
in-memory cache.
Recorded for each call to SegmentInfoDatabase::UpdateSegment, which happens
at least once for each segmentation key on startup and every time training
data is recorded or cleared.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
</histogram>
<histogram
name="SegmentationPlatform.SegmentSelectionOnDemand.Duration.{SegmentationKey}.{SelectedSegment}"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration for running on-demand segment selection for
{SegmentationKey} which includes feature process and model execution of all
the models associated with {SegmentationKey}.
Starts recording every time the on-demand segment selection method is called
for {SegmentationKey}.
Any: recorded when any segment was selected. None: recorded when no segment
was selected.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
<token key="SelectedSegment">
<variant name="Any"/>
<variant name="None"/>
</token>
</histogram>
<histogram name="SegmentationPlatform.SelectionFailedReason"
enum="SegmentationSelectionFailureReason" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the segmentation platform was unable to return a
segment selection to any client, or a result was available. Recorded when
failure is hit when trying to compute selection.
</summary>
</histogram>
<histogram name="SegmentationPlatform.SelectionFailedReason.{SegmentationKey}"
enum="SegmentationSelectionFailureReason" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the segmentation platform was unable to return a
segment selection for {SegmentationKey}, or if a result was available. It
supports multi output segments and records the reason why segmentation
platform failed or was successful to return a result both when segments are
executed at chrome startup and from GetClassificationAPI for both on demand
and non-ondemand cases. Recorded when failure/success is hit when trying to
compute selection, or when reading the selected segment from prefs, or when
result for segment is updated in prefs.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
</histogram>
<histogram
name="SegmentationPlatform.SignalDatabase.GetSamples.DatabaseEntryCount"
units="entries" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of segmentation signal database entries that were
successfully retrieved from the database. Since each database entry can
contain multiple samples, this is different from
SegmentationPlatform.SignalDatabase.GetSamples.SampleCount.
Recorded whenever samples are retrieved from the sample database.
</summary>
</histogram>
<histogram name="SegmentationPlatform.SignalDatabase.GetSamples.Result"
enum="BooleanSuccess" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether segmentation signal samples were successfully retrieved from
the database.
Recorded whenever samples are retrieved from the sample database.
</summary>
</histogram>
<histogram name="SegmentationPlatform.SignalDatabase.GetSamples.SampleCount"
units="samples" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of segmentation signal samples that were successfully
retrieved from the database. Since each database entry can contain multiple
samples, this is different from
SegmentationPlatform.SignalDatabase.GetSamples.DatabaseEntryCount.
Recorded whenever samples are retrieved from the sample database.
</summary>
</histogram>
<histogram name="SegmentationPlatform.Signals.ListeningCount.{SignalType}"
units="signals" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records then number of {SignalType} signals the segmentation platform
currently listens to. Recorded whenever we update the set of {SignalType}
signals that the segmentation platform is currently listening to.
</summary>
<token key="SignalType" variants="SignalType"/>
</histogram>
<histogram name="SegmentationPlatform.StructuredMetrics.TooManyTensors.Count"
units="tensors" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of input tensors that are causing structured metrics to
fail to upload due to input size. Recorded immediately after the failure
when an ML model is reporting structured metrics.
</summary>
</histogram>
<histogram name="SegmentationPlatform.SyncSessions.RecordTabCountAtSyncUpdate"
units="tabs" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of tabs that are opened and synced at the sync update.
Recorded every time on sync session update.
</summary>
</histogram>
<histogram name="SegmentationPlatform.SyncSessions.TabsCountAtStartup"
units="tabs" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of tabs that are opened at startup. Recorded once, only
at startup of chrome.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.SyncSessions.TimeFromStartupToFirstSyncUpdate"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time taken from chrome startup to the time first sync session update is
received. This includes the network delay for receiving the sync session
updates. The metric is recorded once after chrome startup if sync is enabled
and sync session is updated for the first time.
</summary>
</histogram>
<histogram name="SegmentationPlatform.SyncSessions.TimeFromStartupToSyncUpdate"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time taken from chrome startup to the time sync session update is
received. This is not recorded for first sync update. This includes the
network delay for receiving the sync session updates. The metric is recorded
at each sync update if chrome was started after the remote session was
updated.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.SyncSessions.TimeFromTabLoadedToSyncUpdate"
units="ms" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
After chrome startup anytime if a tab is loaded, the time taken from tab
load time to the time next immediate sync session update is received. This
includes the network delay for receiving the sync session updates. The
metric is recorded everytime a tab is loaded and a sync session update is
recieved after it.
</summary>
</histogram>
<histogram
name="SegmentationPlatform.SyncSessions.{TimeInterval}TabCountAtFirstSyncUpdate"
units="tabs" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records total number of tabs that are opened and synced till the first sync
session update for the given {TimeInterval}. Recorded once, only if there is
sync session update for the first time.
</summary>
<token key="TimeInterval">
<variant name="Recent1Day"
summary="Tabs that are opened and synced since the recent 1 day."/>
<variant name="Recent1Hour"
summary="Tabs that are opened and synced since the recent 1 hour."/>
<variant name="Total"
summary="Tabs that are opened and synced till the first sync update"/>
</token>
</histogram>
<histogram
name="SegmentationPlatform.TrainingDataCollectionEvents.{SegmentationModel}"
enum="SegmentationPlatformTrainingDataCollectionEvent"
expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records training data collection events for segmentation platform. Recorded
when the training data collection flow starts, completes or encountering an
error.
</summary>
<token key="SegmentationModel" variants="SegmentationModel"/>
</histogram>
<histogram name="SegmentationPlatform.{BooleanModel}.SegmentSwitched"
enum="SegmentationBooleanSegmentSwitch" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the segment selection switch from an old value to a new segment
after a model evaluation completes. Recorded only if the selected segment
switches to a new value.
</summary>
<token key="BooleanModel" variants="BooleanModel"/>
</histogram>
<histogram
name="SegmentationPlatform.{SegmentationKey}.PostProcessing.TopLabel.Computed"
units="index" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the post processed result for multi-output models. The value
recorded is the index of the top label as defined in the list of labels in
metadata. Recorded whenever a result is computed by executing model or
getting valid score from database.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
</histogram>
<histogram
name="SegmentationPlatform.{SegmentationKey}.PostProcessing.TopLabel.Switched"
units="index" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records change in the the post processed result from an old label to a new
label after a model evaluation completes. Recorded only if the prefs for the
segment is expired and switches to a new value. Recorded only for the top
label in the result.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
</histogram>
<histogram
name="SegmentationPlatform.{SegmentationKey}.SegmentSelection.Computed2"
enum="SegmentationPlatformSegmentationModel" expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of segment selection. Recorded whenever the segment
selection is updated.
</summary>
<token key="SegmentationKey" variants="SegmentationKey"/>
</histogram>
</histograms>
</histogram-configuration>