<!--
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 Network histograms
along with a detailed description for each histogram.

For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md

Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->

<histogram-configuration>

<histograms>

<variants name="AshNetworkType">
<!-- The following variants are names of network types tracked in the Chrome layer.
  These are used for various Network.Ash.* histograms to record network connection
  information events. -->

  <variant name="Cellular"/>
  <variant name="Cellular.ESim"/>
  <variant name="Cellular.ESim.Policy"/>
  <variant name="Cellular.PSim"/>
  <variant name="Cellular.PSim.Policy"/>
  <variant name="Ethernet"/>
  <variant name="Ethernet.Eap"/>
  <variant name="Ethernet.NoEap"/>
  <variant name="Tether"/>
  <variant name="VPN"/>
  <variant name="VPN.TypeBuiltIn"/>
  <variant name="VPN.TypeThirdParty"/>
  <variant name="WiFi"/>
  <variant name="WiFi.SecurityOpen"/>
  <variant name="WiFi.SecurityPasswordProtected"/>
</variants>

<variants name="IPsecVPNType">
  <variant name="Ikev2" summary="IKEv2"/>
  <variant name="L2tpIpsec" summary="L2TP/IPsec"/>
</variants>

<variants name="PhysicalTechnology">
  <variant name="Cellular" summary="Cellular"/>
  <variant name="Ethernet" summary="Ethernet"/>
  <variant name="Wifi" summary="Wifi"/>
</variants>

<variants name="VPNType">
  <variant name="ARC" summary="Android VPN"/>
  <variant name="Ikev2" summary="IKEv2"/>
  <variant name="L2tpIpsec" summary="L2TP/IPsec"/>
  <variant name="OpenVPN" summary="OpenVPN"/>
  <variant name="ThirdParty" summary="Chrome VpnProvider App"/>
  <variant name="WireGuard" summary="WireGuard"/>
</variants>

<histogram name="Network.Ash.Cellular.Apn.CreateCustomApn.ApnTypes"
    enum="ApnTypes" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the APN types of an APN. This is emitted each time a user creates a
    custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.CreateCustomApn.AuthenticationType"
    enum="ApnAuthenticationType" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the authentication type of an APN. This is emitted each time a user
    creates a custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.CreateCustomApn.IpType"
    enum="ApnIpType" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the IP type of an APN. This is emitted each time a user creates a
    custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.CreateCustomApn.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>Records the result of an attempt to create a custom APN.</summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.CustomApns.Count" units="count"
    expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the number of APNs saved for a cellular network every time a
    cellular network successfully connects.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.CustomApns.{CustomApnState}.Count"
    units="count" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the number of {CustomApnState} APNs saved for a cellular network
    every time a cellular network successfully connects.
  </summary>
  <token key="CustomApnState">
    <variant name="Disabled"/>
    <variant name="Enabled"/>
  </token>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.DisableCustomApn.ApnTypes"
    enum="ApnTypes" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the APN types of an APN before modification. This is emitted each
    time a user disables a custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.DisableCustomApn.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>Records the result of an attempt to disable a custom APN.</summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.EnableCustomApn.ApnTypes"
    enum="ApnTypes" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the APN types of an APN before modification. This is emitted each
    time a user enable a custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.EnableCustomApn.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>Records the result of an attempt to enable a custom APN.</summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.ModifyCustomApn.ApnTypes"
    enum="ApnTypes" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the APN types of an APN before modification. This is emitted each
    time a user modifies a custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.ModifyCustomApn.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>Records the result of an attempt to modify a custom APN.</summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.RemoveCustomApn.ApnTypes"
    enum="ApnTypes" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the APN types of an APN. This is emitted each time a user removes a
    custom APN.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.Apn.RemoveCustomApn.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>Records the result of an attempt to remove a custom APN.</summary>
</histogram>

<histogram name="Network.Ash.Cellular.ConfigurationFailure.Type"
    enum="CellularConfigurationFailureType" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the type of cellular configuration failures that occur when
    connecting to a cellular network.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.ConnectionResult.{CustomApnsStatus}.All"
    enum="ShillConnectResult" expires_after="2023-12-31">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of network connection attempts for cellular networks and
    whether they have at least one enabled custom APN or not. A success is
    emitted when a cellular network becomes connected from a non-connected
    state. When a cellular network goes from a connecting state to a
    disconnected state without a user initiated disconnect, a shill failure
    reason is emitted.
  </summary>
  <token key="CustomApnsStatus">
    <variant name="HasEnabledCustomApns"/>
    <variant name="NoEnabledCustomApns"/>
  </token>
</histogram>

<histogram name="Network.Ash.Cellular.SimLock.Policy.Notification.Event"
    enum="SimLockNotificationEvent" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>nikhilcn@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records events on the notification shown when the SIM is locked and admin
    has restricted users from PIN locking their SIMs. These are emitted once the
    notification is shown and once when the user interacts with it.
  </summary>
</histogram>

<histogram name="Network.Ash.Cellular.SimLock.Policy.Notification.LockType"
    enum="SimPinLockType" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>nikhilcn@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the type of SIM lock affecting a cellular network when a user is
    notified that the cellular network is SIM locked.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Cellular.SimLock.Policy.{PinLockPolicy}.ActiveSIMLockStatus"
    enum="SimPinLockType" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>nikhilcn@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the status of the SIM (Unlocked/PIN Locked/PUK Blocked) upon a
    change in cellular connection.

    This metric will be recorded upon following transitions: 1. no connection to
    new connection; 2. connection_1 to connection_2
  </summary>
  <token key="PinLockPolicy">
    <variant name="Restricted"/>
    <variant name="Unrestricted"/>
  </token>
</histogram>

<histogram name="Network.Ash.Hotspot.SetConfig.OperationResult"
    enum="HotspotSetConfigResult" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the result of setting hotspot configuration. Emitted
    whenever attempts to update hotspot configuration.
  </summary>
</histogram>

<histogram name="Network.Ash.Hotspot.Upstream.Cellular.Capability.AllowStatus"
    enum="HotspotAllowStatus" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the hotspot allow status on the cellular-capable
    devices. This metric is emitted each time the allow status is updated, for
    example: when user connects/disconnect to a cellular network, enterprise
    policy applied, etc.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.Capability.AllowStatusAtLogin"
    enum="HotspotAllowStatus" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the hotspot allow status on the cellular-capable devices
    only when user logins in. This metric is emitted after a 5 minutes delay
    when user login which gives the user enough time to connect to their
    upstream cellular network.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.CheckReadiness.OperationResult"
    enum="HotspotCheckReadinessResult" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the result of checking tethering readiness. Emitted
    whenever attempts to check tehtering readiness, for exmaple: when cellular
    network get connected or when enable hotspot.
  </summary>
</histogram>

<histogram name="Network.Ash.Hotspot.Upstream.Cellular.Disabled.Reason"
    enum="HotspotDisableReason" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the causes of disabled hotspot. Emitted each time the
    hotspot becomes disabled.
  </summary>
</histogram>

<histogram name="Network.Ash.Hotspot.Upstream.Cellular.Enabled.UpstreamStatus"
    enum="HotspotUpstreamStatus" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the upstream status the when hotspot is start up.
    Emitted each time the hotspot starts successfully.
  </summary>
</histogram>

<histogram name="Network.Ash.Hotspot.Upstream.Cellular.EnableHotspot.Latency"
    units="ms" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks how long the user needs to wait once the hotspot is requested to turn
    on until the hotspot is ready to use.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.Usage.Config.AutoDisable"
    enum="BooleanEnabled" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the number of whether the hotspot auto disable
    configuration is set for usage. Emitted each time the hotspot starts
    successfully.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.Usage.Config.CompatibilityMode"
    enum="BooleanEnabled" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the number of whether the hotspot extend compatibility
    mode is set for usage. Emitted each time the hotspot starts successfully.
  </summary>
</histogram>

<histogram name="Network.Ash.Hotspot.Upstream.Cellular.Usage.Config.MAR"
    enum="BooleanEnabled" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the number of whether the hotspot BSSID randomization
    configuration is set for usage. Emitted each time the hotspot starts
    successfully.
  </summary>
</histogram>

<histogram name="Network.Ash.Hotspot.Upstream.Cellular.Usage.Duration"
    units="ms" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks how long users use hotspot per session. Emitted whenever the hotspot
    is torn down.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.Usage.ManagedStateWhenHotspotEnabled"
    enum="BooleanManaged" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the number of the hotspot being used on a managed device
    or not. Emitted each time the hotspot starts successfully.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.Usage.MaxConnectedDeviceCount"
    units="count" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the number of maximum connected device count per hotspot session.
    Emitted whenever the hotspot session is torn down.
  </summary>
</histogram>

<histogram
    name="Network.Ash.Hotspot.Upstream.Cellular.{Operation}.OperationResult"
    enum="HotspotSetEnabledResult" expires_after="2023-10-01">
  <owner>jiajunz@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Measures and tracks the result of turning on/off hotspot. Emitted whenever
    attempts to enabled/disabled hotspot.
  </summary>
  <token key="Operation">
    <variant name="DisableHotspot"/>
    <variant name="EnableHotspot"/>
  </token>
</histogram>

<histogram name="Network.Ash.VPN.{VPNProviderType}.ConfigurationSource"
    enum="VPNConfigurationSource" expires_after="2023-12-31">
  <owner>chadduffin@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Logs the configuration source (i.e., the user vs. policy) for VPN networks.
    Emitted when a VPN is configured.
  </summary>
  <token key="VPNProviderType">
    <variant name="ARC"/>
    <variant name="L2TPIPsec"/>
    <variant name="OpenVpn"/>
    <variant name="ThirdParty"/>
    <variant name="WireGuard"/>
  </token>
</histogram>

<histogram name="Network.Ash.WiFi.Hidden.RemovalAttempt"
    units="network removal attempts" expires_after="2023-12-31">
  <owner>chadduffin@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the number of WiFi networks that were determined to be wrongly
    configured as hidden and were attempted to be removed. This metric will be
    emitted each time we check for wrongly configured networks which happens
    once at startup and each time the primary user changes.
  </summary>
</histogram>

<histogram name="Network.Ash.WiFi.Hidden.RemovalAttempt.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>chadduffin@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the result of an attempt to remove a WiFi network that was
    determined to be wrongly configured as hidden. This metric will be emitted
    for each network we attempt to remove if and when we are notified of the
    result of our removal request; while it is safe to expect that we will be
    notified most of the time, we are not guaranteed to be notified. These
    network removals will occur once at startup and each time the primary user
    changes.
  </summary>
</histogram>

<histogram name="Network.Ash.WiFi.Hidden.{LoginStatus}" enum="Boolean"
    expires_after="2023-12-31">
  <owner>chadduffin@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Logs whether the network in question is configured as hidden or not. Emitted
    when a network is configured.
  </summary>
  <token key="LoginStatus">
    <variant name="LoggedIn"/>
    <variant name="NotLoggedIn"/>
  </token>
</histogram>

<histogram name="Network.Ash.{NetworkType}.ConnectionResult.All"
    enum="ShillConnectResult" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of all Network connection attempts. A success is emitted
    when a network of type {NetworkType} becomes connected from a non-connected
    state. When a network of type {NetworkType} goes from a connecting state to
    a disconnected state without a user initiated disconnect, a shill failure
    reason is emitted.
  </summary>
  <token key="NetworkType" variants="AshNetworkType"/>
</histogram>

<histogram name="Network.Ash.{NetworkType}.ConnectionResult.UserInitiated"
    enum="UserInitiatedNetworkConnectResult" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of a user initiated connection attempt. Logged when a
    network of type {NetworkType} connection succeeds or fails.
  </summary>
  <token key="NetworkType" variants="AshNetworkType"/>
</histogram>

<histogram name="Network.Ash.{NetworkType}.DisconnectionsWithoutUserAction"
    enum="NetworkConnectionState" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks when a network of type {NetworkType} is connected and when a network
    of type {NetworkType} is disconnected without explicit user action.
  </summary>
  <token key="NetworkType" variants="AshNetworkType"/>
</histogram>

<histogram name="Network.Ash.{TechnologyType}.EnabledState.{Operation}.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the rate of success of performing the {Operation} operation on the
    shill associated {TechnologyType} technology type.
  </summary>
  <token key="TechnologyType">
    <variant name="Cellular"/>
    <variant name="Ethernet"/>
    <variant name="VPN"/>
    <variant name="WiFi"/>
  </token>
  <token key="Operation">
    <variant name="Disable"/>
    <variant name="Enable"/>
  </token>
</histogram>

<histogram
    name="Network.Ash.{TechnologyType}.EnabledState.{Operation}.ResultCode"
    enum="ShillConnectResult" expires_after="2023-12-31">
  <owner>nikhilcn@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    This metric is emitted when users perform {Operation} operation on the
    {TechnologyType} technology. We capture all result codes returned by the
    platform API.
  </summary>
  <token key="TechnologyType">
    <variant name="Cellular"/>
    <variant name="Ethernet"/>
    <variant name="VPN"/>
    <variant name="WiFi"/>
  </token>
  <token key="Operation">
    <variant name="Disable"/>
    <variant name="Enable"/>
  </token>
</histogram>

<histogram name="Network.CacheTransparency.CacheNotUsed"
    enum="CacheTransparencyCacheNotUsedReason" expires_after="2023-09-10">
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records why a URL does not use the single-keyed cache due to a reason in
    //services/network, when a URL request is made. Reasons include different
    request type (i.e. not GET), incompatible request load flags, incompatible
    request headers, etc.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency.ListVersion" units="version"
    expires_after="2023-11-01">
  <obsolete>
    Removed as of 11/2022, as the CacheTransparency experiment has ended and
    this is unmonitored now.
  </obsolete>
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records the version number of the pervasive payloads list, when the list is
    parsed the first time a URL request is made.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency.MarkedUnusable" units="list index"
    expires_after="2023-09-10">
  <obsolete>
    Removed as of 03/2023, as it is replaced by Network.CacheTransparency2.
    MarkedUnusable which has a higher range.
  </obsolete>
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether a URL in the pervasive payloads list is marked as
    &quot;unusable&quot; when the cached response is read. The list index is the
    index of the URL in the pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency.MismatchedChecksums"
    units="list index" expires_after="2023-09-10">
  <obsolete>
    Removed as of 03/2023, as it is replaced by Network.CacheTransparency2.
    MismatchedChecksums which has a higher range.
  </obsolete>
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether a URL in the pervasive payloads list has a different
    checksum than what is expected when the response checksums are compared in
    HttpCache::Transaction. The list index is the index of the URL in the
    pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency.SingleKeyedCacheIsUsed"
    units="list index" expires_after="2023-09-10">
  <obsolete>
    Removed as of 03/2023, as it is replaced by Network.CacheTransparency2.
    SingleKeyedCacheIsUsed which has a higher range.
  </obsolete>
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether the single-keyed cache is used for a URL in the pervasive
    payloads list (not just when a cache entry is hit because there could be an
    &quot;unusable&quot; flag set). This is recorded when the response checksum
    matches the expected checksum in HttpCache::Transaction. The list index is
    the index of the URL in the pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency.URLMatched" units="list index"
    expires_after="2023-09-10">
  <obsolete>
    Removed as of 03/2023, as it is replaced by
    Network.CacheTransparency2.URLMatched which has a higher range.
  </obsolete>
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether a requested resource's URL matched with any of the URLs in
    the pervasive payloads list when a URL request is made. The list index is
    the index of the URL in the pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency2.MarkedUnusable" units="list index"
    expires_after="2023-11-01">
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether a URL in the pervasive payloads list is marked as
    &quot;unusable&quot; when the cached response is read. The list index is the
    index of the URL in the pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency2.MismatchedChecksums"
    units="list index" expires_after="2023-11-01">
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether a URL in the pervasive payloads list has a different
    checksum than what is expected when the response checksums are compared in
    HttpCache::Transaction. The list index is the index of the URL in the
    pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency2.SingleKeyedCacheIsUsed"
    units="list index" expires_after="2023-11-01">
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether the single-keyed cache is used for a URL in the pervasive
    payloads list (not just when a cache entry is hit because there could be an
    &quot;unusable&quot; flag set). This is recorded when the response checksum
    matches the expected checksum in HttpCache::Transaction. The list index is
    the index of the URL in the pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CacheTransparency2.URLMatched" units="list index"
    expires_after="2023-11-01">
  <owner>nidhijaju@chromium.org</owner>
  <owner>ricea@chromium.org</owner>
  <summary>
    Records whether a requested resource's URL matched with any of the URLs in
    the pervasive payloads list when a URL request is made. The list index is
    the index of the URL in the pervasive payloads list.
  </summary>
</histogram>

<histogram name="Network.CaptivePortalResult" enum="CaptivePortalNetworkState"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal detection state from Shill received by NetworkState. NOTE:
    This metric used to be CaptivePortal.NetworkPortalDetectorResult which was
    expired from 2021-04-01 to 2022-09-18.
  </summary>
</histogram>

<histogram name="Network.CaptivePortalStatusCode" enum="HttpResponseCode"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal status code reported by Shill and received by NetworkState.
    NOTE: This metric used to be CaptivePortal.NetworkStateStatusCode which was
    expired from 2021-04-01 to 2022-09-18.
  </summary>
</histogram>

<histogram name="Network.Cellular.Apn.UseAttachApnOnSave" enum="Boolean"
    expires_after="2023-12-31">
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    ChromeOS cellular network metric that tracks the Attach APN Toggle value
    when the user explicitly clicks the Save button in the 'Other' APN settings,
    with the intent of setting the cellular network APN properties.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.DisableProfile.Result"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the success rate of disabling an eSIM profile. Note that the result
    for &quot;already disabled&quot; is considered a success for this metric.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.EnableProfile.Result"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the success rate of enabling an eSIM profile. Note that the result
    for &quot;already enabled&quot; is considered a success for this metric.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Installation.NonUserErrorSuccessRate"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>nikhilcn@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    This metric is emitted when user attempts to install an eSIM profile. We
    record all hermes response status codes that are within our control. User
    and Carrier related errors such as invalid qr code, malformed carrier
    response are omitted. This will be used to measure the success rate of
    installing an eSIM profile when the input is valid and external dependencies
    are operating without errors.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.InstallationResult"
    enum="NetworkCellularESimInstallResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the result of an attempt to install an eSIM profile either via a QR
    code or via policy. This process includes both an attempt to inhibit modem
    scans as well as a request to install the profile. The metric tracks
    failures at each step of the process.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.InstallPendingProfile.Result"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the success rate of installing a &quot;pending&quot; eSIM profile
    found via SM-DS. SM-DS provides all profiles which a carrier has associated
    with a device's EID; once this occurs, the user has the chance to install
    one of these pending profiles via the UI. The installation process involves
    making a network request to the cellular carrier and downloading a profile
    to the device.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.InstallViaQrCode.OperationResult"
    enum="NetworkCellularESimInstallResult" expires_after="2023-12-31">
  <obsolete>
    Split into Network.Cellular.ESim.UserInstall.OperationResult.{Type}
  </obsolete>
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of an attempt to install an eSIM profile via a QR code.
    This process includes both an attempt to inhibit modem scans as well as a
    request to install the profile. The metric tracks failures at each step of
    the process.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.InstallViaQrCode.Result"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the success rate of installing an eSIM profile via a QR code. During
    this process, the user can either scan a QR code by using the device's
    webcam or can enter the QR code's decoded contents into a text field
    manually. Once this occurs, the device contacts the cellular carrier and
    downloads a profile to the device.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.BlockNonManagedCellularBehavior"
    enum="NetworkBlockNonManagedCellularBehavior" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks how often the admin allows only managed cellular networks to connect.
    This metric is logged for managed, cellular-capable devices when the primary
    user logs in or when there is an update to the
    allowOnlyPolicyCellularNetworks policy.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.ConnectionResult.All"
    enum="ShillCellularConnectResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the result of all connection attempts. A success is emitted when a
    managed eSIM network becomes connected from a non-connected state. When a
    managed eSIM network goes from a connecting state to a disconnected state, a
    shill failure reason is emitted.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.Disconnections"
    enum="NetworkCellularConnectionState" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks when a managed eSIM cellular network is connected and when a managed
    eSIM cellular network is disconnected without explicit user action.
  </summary>
</histogram>

<histogram
    name="Network.Cellular.ESim.Policy.ESimInstall.OperationResult{OperationType}"
    enum="NetworkCellularESimInstallResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the result of a various operation type attempt to install a managed
    eSIM profile via policy. This process includes both an attempt to inhibit
    modem scans as well as a request to install the profile. The metric tracks
    failures at each step of the process.

    Emitted once the operation completes.
  </summary>
  <token key="OperationType">
    <variant name=""/>
    <variant name=".InitialAttempt"/>
    <variant name=".Retry"/>
  </token>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.EuiccStatusUploadResult"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the result of an attempt to upload euicc status to DM server. This
    metric provides the insights on how often ICCID/SM-DP+ get uploaded to the
    DM server and whether the upload operation is successful or not.

    Emitted once the euicc status upload operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.ResetEuicc.Duration" units="ms"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the amount of time taken to complete reset euicc operation.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.ResetEuicc.Result"
    enum="NetworkCellularResetEuiccResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the result of an attempt to reset euicc. This process includes both
    an attempt to inhibit modem scans as well as a request to reset EUICC. The
    metric tracks failures at each step of the process. Emitted once the
    operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.ServiceAtLogin.Count"
    units="units" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks how many managed eSIM profiles are installed on the devices after a
    primary user login.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.StatusAtLogin"
    enum="NetworkESimPolicyStatusAtLogin" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks status of managed eSIM cellular networks on the device. The status
    indicates whether the device has managed or only non-managed or both types
    of cellular networks. This is logged for managed cellular capable devices
    when the primary user logs in. This allows us to track what fraction of
    cellular network usage are controlled by policy.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.Usage.Count"
    enum="NetworkCellularUsage" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the number of times a managed eSIM cellular network is connected as
    the only network, or with other network or not connected at all.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Policy.Usage.Duration" units="seconds"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks how long users are using a managed eSIM cellular network as the sole
    network for connectivity on their device.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.ProfileDiscovery.Latency" units="ms"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks how long the user needs to wait before profile discovery is complete.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.ProfileDownload.ActivationCode.Latency"
    units="ms" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the time for a profile to be fully downloaded from a provided
    activation code.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.ProfileDownload.PendingProfile.Latency"
    units="ms" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the time for a pending profile to be fully downloaded.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.ProfileRenameResult"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>Tracks the rate of success of setting a profile nickname.</summary>
</histogram>

<histogram name="Network.Cellular.ESim.ProfileUninstallationResult"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>Tracks the rate of success of uninstalling a profile.</summary>
</histogram>

<histogram name="Network.Cellular.ESim.RequestPendingProfiles.Latency"
    units="ms" expires_after="2023-12-31">
  <owner>nikhilcn@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the latency of call to SMDS server. This is emitted when pending eSIM
    profiles are requested. Call latency is calculated and emitted upon
    completion of the platform call.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.RequestPendingProfiles.OperationResult"
    enum="NetworkCellularESimRequestPendingProfilesResult"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of an attempt to request pending eSIM profiles (i.e.,
    those found via an SM-DS scan). This process includes both an attempt to
    inhibit modem scans as well as a request for the profiles. The metric tracks
    failures at each step of the process.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.RequestPendingProfiles.Result"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the success rate of requesting pending eSIM profiles. Emitted once
    the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.ServiceAtLogin.Count" units="units"
    expires_after="2023-12-31">
  <obsolete>
    Removed as of 07/2022. This is has been replaced with a new metric that adds
    information on whether sim locking is allowed or not.
  </obsolete>
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks how many eSIM profiles are installed on the devices after a primary
    user login. Warning: this histogram was expired from 2023-01-15 to
    2023-01-28; data may be missing
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.SetupFlowResult"
    enum="ESimSetupFlowResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the result of the eSIM setup flow when the setup dialog closes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.StatusAtLogin"
    enum="NetworkCellularESimProfileStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the ESim Cellular network profile status when the primary user
    logs-in to the device.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.UninstallProfile.OperationResult"
    enum="NetworkCellularESimUninstallOperationResult"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of the high-level operation of uninstalling an eSIM
    profile. This includes several steps before and after the core step of
    uninstalling the profile.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.UninstallProfile.Result"
    enum="HermesResponseStatus" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the success rate of uninstalling an eSIM profile. Emitted once the
    operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.ESim.Usage.Count" enum="NetworkCellularUsage"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the number of times a ESim cellular network is connected as the only
    network, or with other network or not connected at all.
  </summary>
</histogram>

<histogram
    name="Network.Cellular.ESim.UserInstall.OperationResult.{InstallType}"
    enum="NetworkCellularESimInstallResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of an attempt to install an eSIM profile by the user
    either via QR code or by manually entering the activation code. This process
    includes both an attempt to inhibit modem scans as well as a request to
    install the profile. The metric tracks failures at each step of the process.

    Emitted once the operation completes.
  </summary>
  <token key="InstallType">
    <variant name="All"/>
    <variant name="ViaCodeInput"/>
    <variant name="ViaQrCode"/>
  </token>
</histogram>

<histogram name="Network.Cellular.InhibitResult"
    enum="NetworkCellularInhibitResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of a cellular device inhibit-uninhibit cycle.

    Emitted when uninhibit completes or when any step fails.
  </summary>
</histogram>

<histogram name="Network.Cellular.Pin.{SimPinOperation}"
    enum="SimPinOperationResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the rate of success of various pin operations. Note: This histogram
    was expired from 2022-03-01 to 2022-03-23; data may be missing.
  </summary>
  <token key="SimPinOperation">
    <variant name="ChangeSuccess"/>
    <variant name="LockSuccess" summary="Deprecated on 2022-07-16."/>
    <variant name="Managed.UnblockSuccess"/>
    <variant name="Managed.UnlockSuccess"/>
    <variant name="RemoveLockSuccess"/>
    <variant name="RequireLockSuccess"/>
    <variant name="Restricted.UnblockSuccess"/>
    <variant name="Restricted.UnlockSuccess"/>
    <variant name="UnblockSuccess" summary="Deprecated on 2022-07-14."/>
    <variant name="UnlockSuccess" summary="Deprecated on 2022-07-14."/>
    <variant name="Unmanaged.UnblockSuccess"/>
    <variant name="Unmanaged.UnlockSuccess"/>
    <variant name="Unrestricted.UnblockSuccess"/>
    <variant name="Unrestricted.UnlockSuccess"/>
  </token>
</histogram>

<histogram name="Network.Cellular.PrepareCellularConnection.OperationResult"
    enum="NetworkCellularPrepareForConnectionResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>khorimoto@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the result of the high-level operation of preparing a cellular
    network for a connection. For eSIM networks, this involves several steps
    such as enabling the profile, each of which can fail or succeed.

    Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.PSim.OtaActivationResult"
    enum="NetworkCellularPSimActivationResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the result of attempting to activate a physical SIM card via an Over
    the Air (OTA) activation. Emitted once the operation completes.
  </summary>
</histogram>

<histogram name="Network.Cellular.PSim.ServiceAtLogin.Count" units="units"
    expires_after="2023-12-31">
  <obsolete>
    Removed as of 07/2022. This is has been replaced with a new metric that adds
    information on whether sim locking is allowed or not.
  </obsolete>
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-system-services-networking@google.com</owner>
  <summary>
    Tracks how many pSIM networks are available on the device after a primary
    user login.
  </summary>
</histogram>

<histogram name="Network.Cellular.PSim.SetupFlowResult"
    enum="PSimSetupFlowResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the result of the physical SIM card setup flow when the setup dialog
    closes.
  </summary>
</histogram>

<histogram name="Network.Cellular.PSim.StatusAtLogin"
    enum="NetworkCellularPSimActivationState" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the PSim Cellular network activation state when the primary user
    logs-in to the device.
  </summary>
</histogram>

<histogram name="Network.Cellular.PSim.Usage.Count" enum="NetworkCellularUsage"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks the number of times an PSim cellular network is connected as the only
    network, or with other network or not connected at all.
  </summary>
</histogram>

<histogram name="Network.Cellular.SimPINLockPolicy.{SimPinOperation}"
    enum="SimPinOperationResult" expires_after="2023-12-31">
  <obsolete>
    Replaced this with
    &quot;Network.Cellular.{SimPinOperation}.SimPINLockPolicy&quot; which emits
    information on whether the policy is applied or not during the operation.
  </obsolete>
  <owner>nikhilcn@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Sim PIN Lock policy is applied by enterprise administrators when they want
    to restrict their users from locking or changing the PIN of their SIM. This
    metric tracks instances where users have been able to successfully execute
    lock or change PIN operations on their SIM while this policy is turned on.
  </summary>
  <token key="SimPinOperation">
    <variant name="ChangeSuccess"/>
    <variant name="RequireLockSuccess"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{AllowSIMLock}.ESim.ServiceAtLogin.Count"
    units="units" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks how many eSIM profiles are installed on the devices after a primary
    user login.
  </summary>
  <token key="AllowSIMLock">
    <variant name="Restricted"/>
    <variant name="Unrestricted"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{AllowSIMLock}.PSim.ServiceAtLogin.Count"
    units="units" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks how many pSIM networks are available on the device after a primary
    user login.
  </summary>
  <token key="AllowSIMLock">
    <variant name="Restricted"/>
    <variant name="Unrestricted"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimPinOperation}.SimPINLockPolicy"
    enum="BooleanEnabled" expires_after="2023-12-31">
  <owner>nikhilcn@chromium.org</owner>
  <owner>hsuregan@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Sim PIN Lock policy is applied by enterprise administrators when they want
    to restrict their users from locking or changing the PIN of their SIM. This
    metric tracks instances where users have been able to successfully execute
    lock or change PIN operations on their SIM while this policy is turned on.
  </summary>
  <token key="SimPinOperation">
    <variant name="ChangePin"/>
    <variant name="RequirePin"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.CellularSetup.{Result}.Duration"
    units="ms" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the time taken by the user to complete Cellular setup flow of a
    {SimType} network with result {Result}.
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
  <token key="Result">
    <variant name="Failure"/>
    <variant name="Success"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.ConnectionResult.All"
    enum="ShillCellularConnectResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the result of all connection attempts. A success is emitted when a
    {SimType} network becomes connected from a non-connected state. When a
    {SimType} network goes from a connecting state to a disconnected state, a
    shill failure reason is emitted.

    Warning: this histogram was expired from 2022-10-01 to 2023-02-28; data may
    be missing
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.ConnectionResult.UserInitiated"
    enum="UserInitiatedCellularConnectResult" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the result of a user initiated connection attempt. Logged when a
    {SimType} connection succeeds or fails. This histogram logs failure reasons
    exposed by NetworkConnectionHandler.
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.DisconnectByPolicy.Result"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>jiajunz@google.com</owner>
  <summary>
    Tracks the rate of success of disconnecting the connected unmanaged
    {SimType} networks when restricting cellular networks is enforced by policy.
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.Disconnections"
    enum="NetworkCellularConnectionState" expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Tracks when cellular {SimType} network is connected and when cellular
    network is disconnected without explicit user action. Note: This histogram
    was expired from 2022-03-01 to 2022-03-23; data may be missing.
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.TimeToConnected" units="ms"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks the amount fo time taken between when cellular device starts and
    finishes connecting for {SimType} networks.
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
</histogram>

<histogram name="Network.Cellular.{SimType}.Usage.Duration" units="seconds"
    expires_after="2023-12-31">
  <owner>azeemarshad@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>hsuregan@chromium.org</owner>
  <summary>
    Tracks how long users are using a {SimType} cellular network as the sole
    network for connectivity on their device.
  </summary>
  <token key="SimType">
    <variant name="ESim"/>
    <variant name="PSim"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.DnsOverHttpsMode"
    enum="DnsProxy.DnsOverHttpsMode" expires_after="2023-09-10">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the DOH mode setting
    whenever it is read from or changed in Chrome and propagated to shill.
  </summary>
</histogram>

<histogram name="Network.DnsProxy.DnsOverHttpsQuery.HttpErrors"
    enum="DnsProxy.HttpError" expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records an value corresponding
    to the HTTP status returned when a DNS-over-HTTPS request returns in error.
  </summary>
</histogram>

<histogram name="Network.DnsProxy.NameserverTypes"
    enum="DnsProxy.NameserverType" expires_after="2023-09-10">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the type of plain text
    nameservers used whenever they are obtained from shill for a given network.
  </summary>
</histogram>

<histogram name="Network.DnsProxy.PlainTextProbe.{Family}.Errors"
    enum="DnsProxy.QueryResult" expires_after="2023-12-31">
  <owner>jasongustaman@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records any errors that occur
    during DNS probes made by the service. A value will be recorded whenever the
    probe completes in error.
  </summary>
  <token key="Family">
    <variant name="IPv4"/>
    <variant name="IPv6"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.PlainTextProbe.{Family}.FailedRetries"
    units="count" expires_after="2023-12-31">
  <owner>jasongustaman@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records number of retries for
    failing probes. A value will be recorded whenever the probe completes in
    error.
  </summary>
  <token key="Family">
    <variant name="IPv4"/>
    <variant name="IPv6"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.PlainTextProbe.{Family}.Results"
    enum="DnsProxy.QueryResult" expires_after="2023-12-31">
  <owner>jasongustaman@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the results of the DNS
    probes made by the service. A value will be recorded whenever the probe
    completes.
  </summary>
  <token key="Family">
    <variant name="IPv4"/>
    <variant name="IPv6"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.PlainTextProbe.{Family}.ResultsWithRetries"
    enum="DnsProxy.QueryResult" expires_after="2023-12-31">
  <owner>jasongustaman@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the results of the DNS
    probes made by the service. A value will be recorded whenever the probe
    completes. However, on error it is only recorded if it is a consistent
    error, meaning if it fails even after certain amount of retries.
  </summary>
  <token key="Family">
    <variant name="IPv4"/>
    <variant name="IPv6"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.PlainTextProbe.{Family}.RetriesUntilSuccess"
    units="count" expires_after="2023-12-31">
  <owner>jasongustaman@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records number of retries
    needed until a successful probe. A value will be recorded whenever the probe
    completes in success. This metric does not catch consistenly failing probes.
  </summary>
  <token key="Family">
    <variant name="IPv4"/>
    <variant name="IPv6"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.Query.Failed{Stage}Duration" units="ms"
    expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the duration of
    various stages of the resolution process, including the entire time elapsed
    processing the query. The measurement is started when the resolver first
    reads the query data from the client and completes when the reply is sent.

    This histogram collects data for stages of the query that have resulted in
    some kind of failure. It's possible that for any single query, both
    successful and failed stages may exist. The most obvious case is when a
    resolution step is retried. As such, the total time elapsed will necessarily
    include zero or more resolution stages which are recorded in the
    query-type-specific version of this histogram.

    A &quot;total&quot; duration will be successful if at least one resolve
    stage succeeds, but will be recorded as 'failed' if they all do, or if any
    other stage fails.

    All measurements are made within the Resolver class. The &quot;receive&quot;
    time is recorded in OnDNSQuery(). This is also when the &quot;total&quot;
    time starts. The &quot;resolve&quot; measurements all start from the
    Resolve() method, and will stop either in the same method (on failure) or
    handler applicable to the specific client that was used: HandleAresResult()
    and HandleCurlResult(). The &quot;reply&quot; time is recorded in the
    ReplyDNS() method.
  </summary>
  <token key="Stage">
    <variant name="Receive"/>
    <variant name="Reply"/>
    <variant name="Total"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.Query.{Stage}Duration" units="ms"
    expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the duration of
    various stages of the resolution process, including the entire time elapsed
    processing the query. The measurement is started when the resolver first
    reads the query data from the client and completes when the reply is sent.

    This histogram collects data for stages of the query that have resulted in
    success. It's possible that for any single query, both successful and failed
    stages may exist. The most obvious case is when a resolution step is
    retried. As such, the total time elapsed will necessarily include zero or
    more resolution stages which are recorded in the query-type-specific version
    of this histogram.

    A &quot;total&quot; duration will be successful if at least one resolve
    stage succeeds, but will be recorded as 'failed' if they all do, or if any
    other stage fails.

    All measurements are made within the Resolver class. The &quot;receive&quot;
    time is recorded in OnDNSQuery(). This is also when the &quot;total&quot;
    time starts. The &quot;resolve&quot; measurements all start from the
    Resolve() method, and will stop either in the same method (on failure) or
    handler applicable to the specific client that was used: HandleAresResult()
    and HandleCurlResult(). The &quot;reply&quot; time is recorded in the
    ReplyDNS() method.
  </summary>
  <token key="Stage">
    <variant name="Receive"/>
    <variant name="Reply"/>
    <variant name="Total"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{Family}Nameservers" units="units"
    expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the number of
    nameserver addresses whenever they are obtained from shill for a given
    network.
  </summary>
  <token key="Family">
    <variant name="IPv4"/>
    <variant name="IPv6"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{ProcessType}.Event"
    enum="DnsProxy.ProcessEvent" expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy tracking critical process events,
    which are emitted when conditions arise that cause fatal or disruptive
    conditions to the service. This metric is used to monitor the stability of
    the service and provide detailed insight into failures.
  </summary>
  <token key="ProcessType">
    <variant name="ARCProxy"/>
    <variant name="Controller"/>
    <variant name="DefaultProxy"/>
    <variant name="SystemProxy"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{Type}Query.Errors"
    enum="DnsProxy.QueryError" expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records any errors that occur
    during DNS queries made by the service. A value will be recorded whenever
    the request completes in error.
  </summary>
  <token key="Type">
    <variant name="DnsOverHttps"/>
    <variant name="PlainText"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{Type}Query.FailedResolveDuration" units="ms"
    expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the duration of a
    failed name resolution as part of an overall query. The measurement is
    started just before the client resolver (either plaintext or DoH) is run and
    stopped on its completion.

    All measurements are made within the Resolver class. The &quot;resolve&quot;
    measurements all start from the Resolve() method, and will stop either in
    the same method (on failure) or handler applicable to the specific client
    that was used: HandleAresResult() and HandleCurlResult().
  </summary>
  <token key="Type">
    <variant name="DnsOverHttps"/>
    <variant name="PlainText"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{Type}Query.ResolveDuration" units="ms"
    expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the duration of a
    successful name resolution as part of an overall query. The measurement is
    started just before the client resolver (either plaintext or DoH) is run and
    stopped on its completion.

    All measurements are made within the Resolver class. The &quot;resolve&quot;
    measurements all start from the Resolve() method, and will stop either in
    the same method (on failure) or handler applicable to the specific client
    that was used: HandleAresResult() and HandleCurlResult().
  </summary>
  <token key="Type">
    <variant name="DnsOverHttps"/>
    <variant name="PlainText"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{Type}Query.Results"
    enum="DnsProxy.QueryResult" expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the results of the DNS
    queries made by the service. A value will be recorded whenever the request
    completes.
  </summary>
  <token key="Type">
    <variant name="DnsOverHttps"/>
    <variant name="PlainText"/>
  </token>
</histogram>

<histogram name="Network.DnsProxy.{Type}Query.ResultsWithRetries"
    enum="DnsProxy.QueryResult" expires_after="2023-12-31">
  <owner>garrick@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS DNS proxy that records the results of the DNS
    queries made by the service. A value will be recorded whenever the request
    completes. If there are retries, only the last result will be recorded.
  </summary>
  <token key="Type">
    <variant name="DnsOverHttps"/>
    <variant name="PlainText"/>
  </token>
</histogram>

<histogram name="Network.Ethernet.Policy.OncRecommendedFieldsWorkaroundAction"
    enum="OncRecommendedFieldsWorkaroundAction" expires_after="2024-01-31">
  <owner>pmarko@google.com</owner>
  <owner>suprnet@google.com</owner>
  <summary>
    The action taken when evaluating whether a workaround should be applied to
    mark Ethernet ONC Policy fields as Recommended for backward compatiblity.
    This histogram is emitted when the DeviceOpenNetworkConfiguration policy is
    parsed (on chrome start and policy updates) and is found to contain an
    Ethernet network configuration.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalDetectorHasProxy" enum="Boolean"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Whether a proxy is configured when Chrome captive portal detection
    completes. This will be used to help prioritize better captive portal
    detection with a proxy configured.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalDetectorResult"
    enum="NetworkPortalStatus" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Chrome captive portal detection results on ChromeOS. NOTE: This metric used
    to be CaptivePortal.NetworkPortalDetectorResult which was expired from
    2021-09-27 to 2022-09-18.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalDetectorRunCount" units="attempts"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Number of Chrome portal detection attempts per network connection on
    ChromeOS.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalDetectorType" enum="NetworkTechnology"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal detection network type recorded when Chrome on ChromeOS
    detects a captive portal. NOTE: This metric used to be
    CaptivePortal.NetworkPortalDetectorType which was expired from 2021-09-27 to
    2022-09-18.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalNotificationState"
    enum="CaptivePortalNetworkState" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal detection state when a notification is shown. Can be used
    with Network.NetworkPortalSigninMode to compare notification to signin
    ratio.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalSigninMode"
    enum="NetworkPortalSigninMode" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal signin display mode when a UI element requests to show the
    signin UI. See also NetworkPortalSigninSource.
  </summary>
</histogram>

<histogram name="Network.NetworkPortalSigninSource"
    enum="NetworkPortalSigninSource" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal signin display source (notification, settings, etc.) when a
    UI element requests to show the signin UI. See also NetworkPortalSigninMode.
  </summary>
</histogram>

<histogram name="Network.Patchpanel.ArcService"
    enum="NetworkPatchpanelArcEvent" expires_after="2023-12-31">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for ChromeOS patchpanel's ArcService which controls the
    virtual network setup for ARC++ and ARCVM. This metrics is recorded when the
    virtual network setup for ARC or ARCVM is created, deleted, or updated to
    track success and error rates of the various platform operations (network
    interface creation, iptables setup, etc) involved in the ARC virtual network
    setup.
  </summary>
</histogram>

<histogram name="Network.Patchpanel.Dbus" enum="NetworkPatchpanelDbusEvent"
    expires_after="2023-12-31">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Diagnostic metric for the Dbus APIs implemented by ChromeOS patchpanel
    network service. This metrics is recorded whenever one of patchpanel DBus
    APIs is called and tracks success and error rates of various network
    platform primitives implemented by patchpanel (port forwarding APIs,
    firewall APIs, virtual network APIs for ARC and crosvm, etc).
  </summary>
</histogram>

<histogram name="Network.PortalSuspectedToOnlineTime" units="ms"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal time from a portal-suspected state to an online state on
    ChromeOS. NOTE: Prior to M110 this used a range that was too small so those
    results are invalid.
  </summary>
</histogram>

<histogram name="Network.Radio.SimpleURLLoaderIsThrottled" enum="Boolean"
    expires_after="2023-08-27">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    Records whether a SimpleURLLoader is throttled due to the default network
    state (e.g. in low power state). Recorded when a SimpleURLLoader is going to
    start.
  </summary>
</histogram>

<histogram name="Network.Radio.SimpleURLLoaderThrottledTime" units="ms"
    expires_after="2023-08-27">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    Records the time between a SimpleURLLoader request is made to the request
    actually starts. Recorded only when the request is throttled due to the
    default network state (e.g. in low power state).
  </summary>
</histogram>

<histogram name="Network.RedirectFoundToOnlineTime" units="ms"
    expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-health-team@google.com</owner>
  <summary>
    Captive portal time from a redirect-found state to an online state on
    ChromeOS. NOTE: Prior to M110 this used a range that was too small so those
    results are invalid.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.3GPPRegistrationDelayedDrop"
    enum="NetworkCellular3GPPRegistrationDelayedDrop"
    expires_after="2023-10-01">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the number of cellular network
    flakes. A network flake occurs when the signal strength goes below detection
    level for a short duration.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.AutoConnectTotalTime" units="ms"
    expires_after="2023-12-30">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the total amount of time spent
    from the start of the first auto-connect request until when the cellular
    modem successfully connects to the network.

    NOTE: This metric was expired from 2022-01-30 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.AutoConnectTries" units="units"
    expires_after="2023-12-30">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the number of auto-connect tries
    that were attempted before the cellular modem successfully connected to the
    network.

    NOTE: This metric was expired from 2022-01-30 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.ConnectResult"
    enum="PlatformCellularConnectResult" expires_after="2023-12-31">
  <owner>danielwinkler@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Reports the result of Cellular connection attempts through the platform
    layers. This captures any success or failure as a result of a Connect call
    through ModemManager, or any causes of early failure in shill that prevents
    a connect attempt altogether. Refer to go/cros-cellular-apn-metrics for
    details.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.DevicePresenceStatus"
    enum="BooleanPresent" expires_after="2023-09-10">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the presence of a Cellular device in the
    system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.Drop" enum="NetworkCellularTechnology"
    expires_after="2023-10-01">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS cellular network metric that tracks the number of drops based on
    the network technology.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.ExpiredLeaseLengthSeconds2"
    units="seconds" expires_after="2023-12-30">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the length of a lease for a
    cellular network at the time it expired without the DHCP client being able
    to renew it.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.IPv6ConnectivityStatus"
    enum="IPv6ConnectivityStatus" expires_after="2023-12-31">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the presence of complete IPv6
    configuration at the time when cellular connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.NetworkConnectionIPType"
    enum="NetworkConnectionIPType" expires_after="2023-12-31">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the types of IP configuration used for
    establishing cellular connections.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.PortalAttemptsToOnline" units="units"
    expires_after="2023-07-16">
  <obsolete>
    Removed as of 01/2023 in crrev/c/4141265.
  </obsolete>
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the total number of portal
    detection attempts performed for a cellular network between the Connected
    and Online state. This includes failure, timeout and successful attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.PortalResult"
    enum="NetworkPortalResult" expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the result of portal detections
    for a cellular network.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.ServiceErrors"
    enum="NetworkServiceError" expires_after="2024-01-01">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS connection manager service errors for cellular interface. NOTE:
    This metric was updated in M101. Data prior to that may be missing.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.SignalStrengthBeforeDrop" units="units"
    expires_after="2023-10-01">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the signal strength (0-100) of the cellular
    modem before it dropped from the network.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeOnline" units="seconds"
    expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the time spent using cellular to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToConfig" units="ms"
    expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to join a cellular
    network and configure Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToConnect" units="ms"
    expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to connect a cellular
    modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToDisable" units="ms"
    expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to disable a cellular
    modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToEnable" units="ms"
    expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to enable a cellular
    modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToInitialize" units="ms"
    expires_after="2023-10-01">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to initialize a
    cellular modem.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToOnline" units="ms"
    expires_after="2023-09-17">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that a
    cellular network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToPortal" units="ms"
    expires_after="2023-10-01">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that a
    cellular network is in a captive portal after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToRedirectFound" units="ms"
    expires_after="2023-10-08">
  <owner>matthewmwang@chromium.org</owner>
  <owner>hugobenichi@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that a
    cellular network is in a captive portal with a valid redirect URL after
    configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Cellular.TimeToScan" units="ms"
    expires_after="2023-12-30">
  <owner>ejcaruso@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to scan a cellular
    network and register a modem.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.ConnectionDiagnosticsIssue"
    enum="ConnectionDiagnosticsIssue" expires_after="2023-09-10">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks Layer 3 connectivity issues diagnosed by
    the ConnectionDiagnostics class in Shill ran on a connected network after
    Shill portal detection has failed to validate the network. This metric is
    logged each time a ConnectionDiagnostics object completes its diagnostics
    actions and reports the results to its caller.
  </summary>
</histogram>

<histogram name="Network.Shill.CorruptedProfile" enum="NetworkCorruptedProfile"
    expires_after="2021-12-01">
  <obsolete>
    Removed Dec 2022. Not monitored. Less than 4 per day since M-106.
  </obsolete>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS cellular network metric that tracks the number of corrupted
    profiles encountered by Shill.
  </summary>
</histogram>

<histogram name="Network.Shill.CumulativeTimeOnline" units="seconds"
    expires_after="2022-12-01">
  <obsolete>
    Obsoleted Dec 22, histograms were renamed (b/254170385).
  </obsolete>
  <owner>matthewmwang@chromium.org</owner>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS device time on line in the previous 24-hour sample period. &quot;On
    line&quot; means shill believes the device is on the internet. The shill
    state is sampled every 5 minutes. The start of each 24-hour period is the
    end of the previous period, unless the device is inactive at that time
    (suspended or off), in which case it is the time of the next
    resume/power-on.
  </summary>
</histogram>

<histogram name="Network.Shill.DeviceConnectionStatus" enum="ConnectionStatus"
    expires_after="2022-04-17">
  <obsolete>
    Removed Dec 2022. Not monitored. Less than .5% offline. Uninteresting and
    largely redundant with portal detection related metrics.
  </obsolete>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the connection status of the
    device. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.DevicePresenceStatus"
    enum="BooleanPresent" expires_after="2023-09-10">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the presence of an Ethernet device in
    the system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.Driver" enum="EthernetDriver"
    expires_after="2023-12-31">
  <owner>chuweih@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Chrome OS metric that records the name of ethernet driver detected when an
    ethernet network is started.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.ExpiredLeaseLengthSeconds2"
    units="seconds" expires_after="2023-10-22">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the length of a lease for an
    Ethernet network at the time it expired without the DHCP client being able
    to renew it.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.PortalAttemptsToOnline" units="units"
    expires_after="2023-05-07">
  <obsolete>
    Removed as of 01/2023 in crrev/c/4141265.
  </obsolete>
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the total number of portal
    detection attempts performed for an Ethernet network between the Connected
    and Online state. This includes failure, timeout and successful attempts.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.PortalResult"
    enum="NetworkPortalResult" expires_after="2023-09-10">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the result of portal detections
    for an Ethernet network.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.ServiceErrors"
    enum="NetworkServiceError" expires_after="2023-10-01">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS connection manager service errors for ethernet interface. NOTE:
    This metric was updated in M101. Data prior to that may be missing.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeOnline" units="seconds"
    expires_after="2023-09-17">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the time spent using Ethernet to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToConfig" units="ms"
    expires_after="2023-10-15">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to join a wired
    Ethernet network and configure Layer 3 state (typically acquire a DHCP
    lease).

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToInitialize" units="ms"
    expires_after="2023-09-10">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to initialize an
    Ethernet device.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToOnline" units="ms"
    expires_after="2023-09-10">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that an
    Ethernet network is online after configuring Layer 3 state.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToPortal" units="ms"
    expires_after="2023-09-10">
  <owner>hugobenichi@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that an
    Ethernet network is in a captive portal after configuring Layer 3 state.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.Ethernet.TimeToRedirectFound" units="ms"
    expires_after="2023-10-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>hugobenichi@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that an
    Ethernet network is in a captive portal with a valid redirect URL after
    configuring Layer 3 state.

    NOTE: This metric was expired from 2021-12-01 to 2022-04-01.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetectionMultiProbeResult"
    enum="PortalDetectionMultiProbeResult" expires_after="2022-06-17">
  <obsolete>
    Removed 6/2022 because it is unmonitored and not technology specific.
    TODO(b/236386653): Remove entirely once removed from Shill.
  </obsolete>
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric recording portal detection results of both the HTTP
    and HTTPS probes. This is recorded every time a portal detection trial
    finishes.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToDisconnect.Cellular"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts before a Cellular network transitions to
    a non connected state, recorded when Service.State transitions to a non
    connected state.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToDisconnect.Ethernet"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts before an Ethernet network transitions
    to a non connected state, recorded when Service.State transitions to a non
    connected state.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToDisconnect.Wifi"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts before a WiFi network transitions to a
    non connected state, recorded when Service.State transitions to a non
    connected state.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToOnline.Cellular"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts until a Cellular network transitions to
    online, recorded when detection completes with an online result.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToOnline.Ethernet"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts until an Ethernet network transitions to
    online, recorded when detection completes with an online result.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToOnline.Wifi"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts until a WiFi network transitions to
    online, recorded when detection complets with an online result.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToRedirectFound.Cellular"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts before a Cellular network transitions to
    redirect-found, recorded when Service.State transitions to redirect-found.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToRedirectFound.Ethernet"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts before an Ethernet network transitions
    to redirect-found, recorded when Service.State transitions to
    redirect-found.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.AttemptsToRedirectFound.Wifi"
    units="attempts" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of portal detection attempts before a WiFi network transitions to
    redirect-found, recorded when Service.State transitions to redirect-found.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.InitialResult.Cellular"
    enum="PortalDetectorResult" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Shill captive portal detection initial result for a Cellular network,
    recorded after the initial portal detection attempt.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.InitialResult.Ethernet"
    enum="PortalDetectorResult" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Shill captive portal detection initial result for an Ethernet network,
    recorded after the initial portal detection attempt.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.InitialResult.Wifi"
    enum="PortalDetectorResult" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Shill captive portal detection initial result for a WiFii network, recorded
    after the initial portal detection attempt.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.RepeatResult.Cellular"
    enum="PortalDetectorResult" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Shill captive portal detection retry result for a Cellular network, recorded
    after a repeated detection attempt.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.RepeatResult.Ethernet"
    enum="PortalDetectorResult" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Shill captive portal detection retry result for an Ethernet network,
    recorded after a repeated detection attempt.
  </summary>
</histogram>

<histogram name="Network.Shill.PortalDetector.RepeatResult.Wifi"
    enum="PortalDetectorResult" expires_after="2023-09-18">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Shill captive portal detection retry result for a WiFi network, recorded
    after a repeated detection attempt.
  </summary>
</histogram>

<histogram name="Network.Shill.PPPMTUValue" units="bytes"
    expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the MTU value provided by the
    upstream PPP peer for L2TP VPN connections. A sample is emitted each time
    the client successfully negotiates an MTU value via PPP.
  </summary>
</histogram>

<histogram name="Network.Shill.SuspendActionResult"
    enum="ShillSuspendTerminationDarkResumeActionResult"
    expires_after="2023-04-16">
  <obsolete>
    Removed Dec 2022. Not monitored. 0.001% failure rate.
  </obsolete>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the number of suspend actions
    that successfully complete or fail when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.SuspendActionTimeTaken" units="ms"
    expires_after="2023-10-22">
  <owner>matthewmwang@chromium.org</owner>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the time in milliseconds it
    takes suspend actions to complete when shill suspends.
  </summary>
</histogram>

<histogram name="Network.Shill.TimeToDrop" units="seconds"
    expires_after="2021-12-01">
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network stability metric sampling the time in seconds between the
    networking going online to going offline. Offline events due to device
    shutdown or suspend are ignored (along with the online time before that
    offline event).
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.Driver" enum="VPNDriver"
    expires_after="2023-09-10">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric sampled on each successful VPN connection that
    tracks the VPN connection type.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.Ikev2.AuthenticationType"
    enum="VPNIPsecAuthenticationType" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful IKEv2 VPN
    connection that tracks how the client authenticates itself to the server.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.Ikev2.EndReason" enum="NetworkServiceError"
    expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on the end of each IKEv2 VPN
    connection that tracks the reason that the connection is ended. This metric
    will be emitted no matter if the connection is established successfully,
    i.e., it will be emitted if an error happens during connecting.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.L2tpIpsec.SwanctlEndReason"
    enum="NetworkServiceError" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on the end of each L2TP/IPsec VPN
    connection initiated by the swanctl-based driver that tracks the reason that
    the connection is ended. This metric will be emitted no matter if the
    connection is established successfully, i.e., it will be emitted if an error
    happens during connecting.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.L2tpIpsecTunnelGroupUsage"
    enum="VPNL2TPIPsecTunnelGroupUsage" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful L2TP/IPsec VPN
    connection that tracks whether tunnel group is used. The tunnel group
    property needs to be set when connecting to some Cisco L2TP/IPsec VPN.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.OpenVPNCipher" enum="VPNOpenVPNCipher"
    expires_after="2023-12-31">
  <owner>taoyl@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric emitted on each successful OpenVPN connection that
    tracks the cipher algorithm negotiated with server.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.RemoteAuthenticationType"
    enum="VPNRemoteAuthenticationType" expires_after="2023-10-15">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric sampled on each successful VPN connection that
    tracks the remote authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.TimeOnline" units="seconds"
    expires_after="2023-10-15">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the time spent using VPN to transport data.
    These data are mostly useful when summed and compared to TimeOnline for
    other network technologies (e.g. WiFi vs Cellular). A sample is emitted
    every time the system transitions from primary connectivity through a VPN to
    some other type of connectivity. The value of the sample is the time delta
    in seconds from the instant the system transitioned to VPN connectivity.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.TimeToConfig" units="ms"
    expires_after="2023-10-15">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to configure Layer 3
    state on a VPN network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.TimeToOnline" units="ms"
    expires_after="2023-09-10">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that a
    VPN connection is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.UserAuthenticationType"
    enum="VPNUserAuthenticationType" expires_after="2023-10-15">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric sampled on each successful VPN connection that
    tracks the user authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.WireGuardAllowedIPsType"
    enum="VPNWireGuardAllowedIPsType" expires_after="2023-10-22">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful WireGuard VPN
    connection that tracks the type of the allowed IPs set in this connection.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.WireGuardKeyPairSource"
    enum="VPNWireGuardKeyPairSource" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful WireGuard VPN
    connection that tracks the source of the key pair used in this connection.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.WireGuardPeersNum" units="WireGuard peers"
    expires_after="2023-10-22">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful WireGuard VPN
    connection that tracks the number of peers used in in this connection.
  </summary>
</histogram>

<histogram name="Network.Shill.Vpn.{VPNType}.EspEncryptionAlgorithm"
    enum="VPNIPsecEncryptionAlgorithm" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful {VPNType} VPN
    connection that tracks the encryption algorithm used by the ESP protocol in
    this connection.
  </summary>
  <token key="VPNType" variants="IPsecVPNType"/>
</histogram>

<histogram name="Network.Shill.Vpn.{VPNType}.EspIntegrityAlgorithm"
    enum="VPNIPsecIntegrirtyAlgorithm" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful {VPNType} VPN
    connection that tracks the integrity algorithm used by the ESP protocol in
    this connection.
  </summary>
  <token key="VPNType" variants="IPsecVPNType"/>
</histogram>

<histogram name="Network.Shill.Vpn.{VPNType}.IkeDHGroup" enum="VPNIPsecDHGroup"
    expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful {VPNType} VPN
    connection that tracks the DH group used by the IKE protocol in this
    connection.
  </summary>
  <token key="VPNType" variants="IPsecVPNType"/>
</histogram>

<histogram name="Network.Shill.Vpn.{VPNType}.IkeEncryptionAlgorithm"
    enum="VPNIPsecEncryptionAlgorithm" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful {VPNType} VPN
    connection that tracks the encryption algorithm used by the IKE protocol in
    this connection.
  </summary>
  <token key="VPNType" variants="IPsecVPNType"/>
</histogram>

<histogram name="Network.Shill.Vpn.{VPNType}.IkeIntegrityAlgorithm"
    enum="VPNIPsecIntegrirtyAlgorithm" expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful {VPNType} VPN
    connection that tracks the integrity algorithm used by the IKE protocol in
    this connection.
  </summary>
  <token key="VPNType" variants="IPsecVPNType"/>
</histogram>

<histogram name="Network.Shill.Vpn.{VPNType}.IPType" enum="NetworkIPType"
    expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted on each successful {VPNType} VPN
    connection that tracks the IP family provided in this connection.
  </summary>
  <token key="VPNType" variants="VPNType"/>
</histogram>

<histogram name="Network.Shill.WiFi.AdapterAllowlisted"
    enum="WiFiAdapterInAllowlist" expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS WiFi usage metric emitted every time the WiFi adapter is enabled.
    It tracks if the adapter that was detected on the device is in the allowlist
    to be reported via structured metrics (e.g. is it in AVL?) or not.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211kSupport" enum="WiFiAp80211kSupport"
    expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support the 802.11k standard, sampled on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211rSupport" enum="WiFiAp80211rSupport"
    expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support the 802.11r standard, sampled on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211vBSSMaxIdlePeriodSupport"
    enum="WiFiAp80211vBSSMaxIdlePeriodSupport" expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support the 802.11v BSS Max Idle Period feature, sampled on successful
    connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211vBSSTransitionSupport"
    enum="WiFiAp80211vBSSTransitionSupport" expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support the 802.11v BSS Transition feature, sampled on successful
    connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Ap80211vDMSSupport"
    enum="WiFiAp80211vDMSSupport" expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support the 802.11v DMS feature, sampled on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApAlternateEDCASupport"
    enum="WiFiApAlternateEDCASupport" expires_after="2023-12-30">
  <owner>damiendejean@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support transmit opportunity negotation, emitted on successful connections
    to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApChannelSwitch" enum="WiFiApChannelSwitch"
    expires_after="2023-10-22">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric sampled when an AP switches channels. Shows
    the old frequency band and the new frequency band.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApDisconnectReason" enum="WiFiReasonCode"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. Reason code reported when the AP disconnects
    a WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApDisconnectType" enum="WiFiStatusType"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. Broad category of reason AP disconnected a
    WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ApSCSupport" enum="WiFiApSCSupport"
    expires_after="2023-12-30">
  <owner>damiendejean@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support stream classification, emitted on successful connections to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AssocFailureType" enum="WiFiStatusCode"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. Status code reported when an 802.11
    association fails. Note that not all disconnects are caused by an assoc
    failure, and so this metric shold not be correlated with the DisconnectType
    metrics.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AuthFailureType" enum="WiFiStatusCode"
    expires_after="2023-08-27">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. Status code reported when an 802.11
    authentication fails. Note that not all disconnects are caused by an auth
    failure, and so this metric should not be correlated with the DisconnectType
    metrics.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AutoConnectableServices" units="units"
    expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of wifi services available for
    auto-connect when auto-connect is initiated for wifi device.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.AvailableBSSesAtConnect" units="units"
    expires_after="2024-02-12">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of BSSes (endpoints) available
    for the currently connecting wifi service.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.BadPassphraseServiceType"
    enum="WiFiBadPassphraseServiceType" expires_after="2023-12-01">
  <owner>yichenyu@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. This is recorded when a connection failure is
    due to bad-passphrase and indicates whether the attempt is initated by users
    or not and if the service has been previously connected.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.BSSTransitionManagementSupport"
    enum="WiFiBSSTransitionManagementSupport" expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric recording BSS Transition Management statuses. This
    is recorded every time a BSS Transition Management request is received from
    a wireless access point.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.Channel" enum="NetworkChannelType"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. The channel used for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.CiscoAdaptiveFTSupport"
    enum="WiFiCiscoAdaptiveFTSupport" expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of Wireless Access Points that
    support Cisco's Adaptive FT feature, sampled on successful connections to an
    AP.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ClientDisconnectReason"
    enum="WiFiReasonCode" expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. Reason code reported when the client
    disconnects a WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ClientDisconnectType" enum="WiFiStatusType"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. Broad category of reason client disconnected
    a WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.CQMNotification"
    enum="WiFiCQMNotificationType" expires_after="2023-10-22">
  <owner>kuabhs@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS Wifi Connection Quality Monitor(CQM) Notifications metric. This is
    emitted when any packet or beacon loss is observed for signal strength
    greater than -80 dBm. This metric is rate-limited such that it is never
    emitted more than once every 6 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.DevicePresenceStatus" enum="BooleanPresent"
    expires_after="2023-08-20">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the presence of a WiFi device in the
    system. A sample is emitted once every 3 minutes.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.Disconnect" enum="NetworkDisconnectType"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric that tracks whether an 802.11 wireless network
    was disconnected due to an error or was explicitly disconnected by the user.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.EapInnerProtocol" enum="EAPInnerProtocol"
    expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric sampled on each successful 802.1x wireless
    connection that tracks the configured inner authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.EapOuterProtocol" enum="EAPOuterProtocol"
    expires_after="2023-12-01">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric sampled on each successful 802.1x wireless
    connection that tracks the configured outer authentication method.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.ExpiredLeaseLengthSeconds2" units="seconds"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the length of a lease for a
    WiFi network at the time it expired without the DHCP client being able to
    renew it.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.FallbackDNSTestResult"
    enum="FallbackDNSTestResult" expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the result of the fallback
    DNS test. The fallback DNS test is performed when portal detection failed
    due to DNS failure.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Hidden.EverConnected"
    enum="BooleanConnected" expires_after="2023-08-08">
  <owner>jonmann@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <owner>pwg-cros@google.com</owner>
  <summary>
    ChromeOS network metric tracking whether there has ever been a successful
    connection for each WiFi network which is configured with a hidden SSID. The
    metric includes networks from system and user profile and it's recorded each
    time a user configuration profile is loaded, such as when a user logs in.
    Networks that were last connected before M-84 will show as never connected.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.Hidden.LastConnected" units="days"
    expires_after="2023-08-08">
  <owner>jonmann@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <owner>pwg-cros@google.com</owner>
  <summary>
    ChromeOS network metric tracking the number of days since the last
    connection for each WiFi network configured with hidden SSID. The metric
    includes networks from system and user profile and it's recorded each time a
    user configuration profile is loaded, such as when a user logs in.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.HiddenSSIDEverConnected"
    enum="BooleanEverConnected" expires_after="2023-09-10">
  <owner>tnagel@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <owner>cros-privacy-core@google.com</owner>
  <summary>
    ChromeOS network metric tracking whether WiFi networks configured with
    hidden SSID have ever been connected. The metric includes networks from
    system and user profile and it's recorded each time a user configuration
    profile is loaded, such as when a user logs in.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.HiddenSSIDNetworkCount" units="units"
    expires_after="2023-09-10">
  <owner>tnagel@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <owner>cros-privacy-core@google.com</owner>
  <summary>
    ChromeOS network metric tracking WiFi networks configured with hidden SSID.
    The metric includes networks from system and user profile and it's recorded
    each time a user configuration profile is loaded, such as when a user logs
    in. The fraction of non-zero buckets should roughly correspond to the
    fraction of devices that are trying to connect to hidden SSIDs at any given
    point in time.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.HS20Support" enum="HotspotSupport"
    expires_after="2023-08-27">
  <owner>kglund@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the Hotspot 2.0 support of access points
    that devices connect to. Results are recorded every time a device connects
    to an access point. The metric records either the HS20 version the AP
    supports, or that the AP does not support HS20.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.IPv6ConnectivityStatus"
    enum="IPv6ConnectivityStatus" expires_after="2023-09-10">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the presence of complete IPv6
    configuration at the time when WiFi connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.MBOSupport" enum="MBOSupport"
    expires_after="2024-02-12">
  <owner>matthewmwang@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the Multi-Band Operation (MBO) support
    of access points that devices connect to. Results are recorded every time a
    device connects to an access point.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.NeighborLinkMonitorFailure"
    enum="NeighborLinkMonitorFailureType" expires_after="2023-09-10">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS metric that signals the type of failure the NeighborLinkMonitor
    detected on 802.11 wireless network. Recorded after the NeighborLinkMonitor
    detects a layer 2 connectivity failure to a neighbor.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.NetworkConnectionIPType"
    enum="NetworkConnectionIPType" expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric that tracks the types of IP configuration used for
    establishing WiFi connections.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.NetworkProblemDetected"
    enum="NetworkProblemType" expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the network problems
    encountered by TrafficMonitor after WiFi connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PhyMode" enum="NetworkPhyModeType"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. The standard advertised by the AP for each
    successful WiFi connection. It is not necessarily the same as the standard
    used by the AP and STA to communicate. For example, if the AP supports
    802.11ax and the STA only supports 802.11ac, this metric will report
    802.11ax even though STA and AP will use 802.11ac. The metric is emitted
    when the device connects successfully to an AP.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PortalAttemptsToOnline" units="units"
    expires_after="2023-06-18">
  <obsolete>
    Removed as of 01/2023 in https://crrev/c/4141265.
  </obsolete>
  <owner>matthewmwang@chromium.org</owner>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the total number of portal
    detection attempts performed for an 802.11 wireless network between the
    Connected and Online state. This includes failure, timeout and successful
    attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.PortalResult" enum="NetworkPortalResult"
    expires_after="2023-10-22">
  <owner>matthewmwang@chromium.org</owner>
  <owner>stevenjb@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the result of portal detections
    for an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RegulatoryDomain" enum="RegulatoryDomain"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric that tracks which country the WiFi regulatory
    domain is set to. Recorded every time a WiFi regulatory domain change is
    triggered or determined initially (Shill startup).
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RememberedNetworkCount" units="units"
    expires_after="2023-10-22">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network diagnostic metric sampling the number of 802.11 wireless
    networks known by the connection manager at the time a configuration profile
    has been loaded. A configuration profile is loaded at each system startup,
    and when a user logs in.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RememberedSystemNetworkCount" units="units"
    expires_after="2023-04-16">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of 802.11 wireless networks
    configured from the system configuration profile. This metric is sampled
    each time a user configuration profile is loaded, such as when a user logs
    in.

    It might be surprising to have a system configuration profile metric sampled
    when a user configuration profile is loaded. But this ensures that we have
    equal numbers of samples for system and user configuration profiles.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.RememberedUserNetworkCount" units="units"
    expires_after="2024-02-12">
  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the number of 802.11 wireless networks
    configured from a user configuration profile. This metric is sampled each
    time a user configuration profile is loaded, such as when a user logs in.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.RestartReason"
    enum="WiFiRestartReason" expires_after="2024-04-18">
  <owner>billyzhao@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric recording instances where Shill is told to restart
    the WiFi device. This is triggered by udev event from the iwl7000 driver.
    See b/270746800 for more details. This metric will be removed once we notice
    the driver not sending these requests. This removal process is tracked in
    b/278765529.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.RoamComplete"
    enum="WiFiRoamComplete" expires_after="2023-08-20">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->

  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric recording roam successes or failures. This is
    recorded every time a client succeeds or fails to roam from one wireless
    access point to another.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.RoamTime" units="ms"
    expires_after="2023-12-01">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->

  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric recording roam time in milliseconds. This is
    recorded every time a successful roam from one wireless access point to
    another occurs.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ScanResult" enum="WiFiScanResult"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric describing, for a WiFi scan attempt, what scan
    method is used and whether it ends in a connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.ScanTimeInEbusy" units="ms"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric describing, for a WiFi scan attempt, how many
    milliseconds were spent waiting to talk to the kernel/drivers.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.Security" enum="NetworkSecurityType"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric. The security setting for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.SecurityChange"
    enum="NetworkSecurityChange" expires_after="2023-10-08">
  <owner>andrzejo@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric for WiFi security changes. It is emitted every time
    a new BSSID is being added to a network, this network has already been
    connected before and configuration of this new BSSID causes network security
    to be changed in a non-trivial way - that is a downgrade or an upgrade that
    can cause split of an network into two services.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.ServiceErrors" enum="NetworkServiceError"
    expires_after="2023-10-22">
  <owner>kuabhs@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS connection manager service errors for wifi interface.
  </summary>
</histogram>

<histogram base="true" name="Network.Shill.WiFi.SessionLength" units="ms"
    expires_after="2023-12-01">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->

  <owner>matthewmwang@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric recording session length in milliseconds. This is
    recorded every time an uninterrupted session with a wireless access point is
    terminated.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SessionTagState.{Event}"
    enum="WiFiSessionTagState" expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>druth@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS metric reporting the state of the &quot;session tag&quot; state
    machine that tags {Event} structured metrics events. The state of the
    session tag is emitted at the same time as the {Event} structured metric
    event is emitted. Details at go/cros-wifi-metrics-session-tag-dd.
  </summary>
  <token key="Event">
    <variant name="ConnectionAttempt"/>
    <variant name="ConnectionAttemptResult"/>
    <variant name="Disconnection"/>
  </token>
</histogram>

<histogram name="Network.Shill.Wifi.SignalAtDisconnect" units="negative dBm"
    expires_after="2023-08-20">
  <owner>kuabhs@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric indicating the negative of the dBm received signal
    strength recorded at the time of a WiFi disconnect.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.SignalStrength" units="negative dBm"
    expires_after="2023-10-22">
  <owner>kuabhs@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric indicating the negative of the dBm received signal
    strength recorded at the time a successful WiFi connection started.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.SupplicantAttempts" units="attempts"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Number of attempts required for a WiFi device to be established with WPA
    supplicant (shill retries on failure). This metric is reported either on
    success, reporting the number of attempts performed; or after repeated
    failures (currently 6), we give up and report an artificial maximum (10).

    Thus, a value of 10 means we aborted after repeated failures. Values of 1 to
    6 represent successful connections on the first to sixth try. Values of 7 to
    9 (which should not occur) represent successful connections after seven or
    more attempts (success reports are capped at 9).
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.TimeFromRekeyToFailureSeconds"
    units="seconds" expires_after="2023-09-03">
  <owner>billyzhao@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    Time spent between network rekey attempt to connection failure. The metric
    timer starts when a rekey is initiated and stops once a connection failure
    is reported or another rekey is initiated. The metric is only reported if
    the timer is stopped by a connection failure within 180 seconds.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeOnline" units="seconds"
    expires_after="2023-08-20">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the time spent using WiFi to transport
    data. These data are mostly useful when summed and compared to TimeOnline
    for other network technologies (e.g. WiFi vs Cellular).
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeResumeToReady" units="ms"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time from the resume event
    to the time when an 802.11 wireless network has configured its Layer 3
    state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToConfig" units="ms"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to configure Layer 3
    state on an 802.11 wireless network (typically acquire a DHCP lease).
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToConnect" units="ms"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to connect to a WiFi
    Basic Service Set (which consists of the access point and associated
    stations on a particular WiFi channel for a specific network).
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToInitialize" units="ms"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to initialize an
    802.11 wireless device.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToJoin" units="ms"
    expires_after="2023-12-01">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to join (associate
    plus authenticate) an 802.11 wireless network.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToOnline" units="ms"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that an
    802.11 wireless network is online after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToPortal" units="ms"
    expires_after="2023-12-31">
  <owner>matthewmwang@chromium.org</owner>
  <owner>hugobenichi@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that an
    802.11 wireless network is in a captive portal after configuring Layer 3
    state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToRedirectFound" units="ms"
    expires_after="2023-12-31">
  <owner>matthewmwang@chromium.org</owner>
  <owner>hugobenichi@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to determine that an
    802.11 wireless network is in a captive portal with a valid redirect URL
    after configuring Layer 3 state.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToScan" units="ms"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time to scan WiFi until a
    connection is found.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.TimeToScanAndConnect" units="ms"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric sampling the time between the beginning
    of a WiFi scan (if the scan includes both a progressive scan and a full
    scan, the TimeToScanAndConnect starts with the first scan of the series) and
    the completion of a successful connection.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.TransmitBitrateMbps" units="Mbps"
    expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the transmit bitrate in Mbps
    for the wifi device when it is connected to a network. The bitrate is
    reported once every minute after the wifi connection is established.
  </summary>
</histogram>

<histogram name="Network.Shill.Wifi.UnreliableLinkSignalStrength" units="units"
    expires_after="2023-08-20">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network metric sampling the signal strength (0-100) of the wifi
    network when it becomes unreliable (experiencing multiple link failures in a
    short period of time).
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.UserInitiatedConnectionFailureReason"
    enum="ConnectionFailureReason" expires_after="2023-09-10">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the reasons of failed
    user-initiated WiFi connection attempts. The result of the user-initiated
    WiFi connection attempts are being tracked by
    Network.Shill.WiFi.UserInitiatedConnectionResult.
  </summary>
</histogram>

<histogram name="Network.Shill.WiFi.UserInitiatedConnectionResult"
    enum="ConnectionResult" expires_after="2023-10-22">
  <owner>norvez@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network performance metric that tracks the result of user-initiated
    WiFi connection attempts.
  </summary>
</histogram>

<histogram name="Network.Shill.{Technology}.IPType" enum="NetworkIPType"
    expires_after="2023-12-31">
  <owner>jiejiang@chromium.org</owner>
  <owner>cros-connectivity@google.com</owner>
  <owner>cros-network-metrics@google.com</owner>
  <summary>
    ChromeOS network usage metric emitted after a {Technology} connection has
    been connected for 30 seconds, to track the IP type on this connection. Wait
    for 30 seconds because IPv4 and IPv6 configuration are usually provisioned
    at different time. Note that no metric will be emitted if the duration of
    the connection is shorter than 30 seconds.
  </summary>
  <token key="Technology" variants="PhysicalTechnology"/>
</histogram>

<histogram name="Network.Wifi.Channel" enum="NetworkChannelType"
    expires_after="M85">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    ChromeOS network usage metric. The channel used for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Wifi.PhyMode" enum="NetworkPhyModeType"
    expires_after="M85">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    ChromeOS network usage metric. The channel type used for each successful
    WiFi connection.
  </summary>
</histogram>

<histogram name="Network.Wifi.RoundTripTime" units="ms" expires_after="M85">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    Network metric reporting the average round trip time to the WiFi gateway.
    Recorded at least once per day.
  </summary>
</histogram>

<histogram name="Network.Wifi.Security" enum="NetworkSecurityType"
    expires_after="M85">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <owner>cast-analytics@google.com</owner>
  <summary>
    ChromeOS network usage metric. The security setting for each successful WiFi
    connection.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.Connection.FailureReason"
    enum="ConnectionFailureReason" expires_after="2023-08-20">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the failure reason for all connection attempts,
    manual or automatic, to Wi-Fi networks which were added from Chrome Sync.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.Connection.Result" enum="BooleanSuccess"
    expires_after="2023-10-22">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the result of all connection attempts, manual or
    automatic, to Wi-Fi networks which were added from Chrome Sync.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.Hidden.Fixed" units="networks"
    expires_after="2023-08-20">
  <owner>jonmann@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <owner>cros-network-metrics@google.com</owner>
  <owner>cros-privacy-core@google.com</owner>
  <summary>
    ChromeOS network metric tracking the count of synced networks that were
    fixed after getting saved to the device when out of range and marked as
    hidden. See b/178089463 for more details.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.ManualConnection.FailureReason"
    enum="ConnectionFailureReason" expires_after="2023-06-18">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the failure reason for manual connection
    attempts to Wi-Fi networks which were added from Chrome Sync.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.ManualConnection.Result"
    enum="BooleanSuccess" expires_after="2023-06-18">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the result of manual connection attempts to
    Wi-Fi networks which were added from Chrome Sync.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.TotalCount" units="units"
    expires_after="2023-10-22">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the total number of Wi-Fi networks which are
    stored in Chrome Sync for the active user.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.UpdateOperation.FailureReason"
    enum="ConnectionFailureReason" expires_after="2023-06-18">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the failure reason for update attempts to synced
    Wi-Fi networks. This includes create/modify/remove operations. Each retry is
    counted seperately.
  </summary>
</histogram>

<histogram
    name="Network.Wifi.Synced.UpdateOperation.GenerateLocalNetworkConfig.Result"
    enum="BooleanSuccess" expires_after="2023-06-18">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the success or failure to generate a local
    network config. Emitted on success and failure of add/update operations.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.UpdateOperation.Result"
    enum="BooleanSuccess" expires_after="2023-06-18">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric that tracks the result of update attempts to synced Wi-Fi
    networks. This includes create/modify/remove operations. failures are only
    recorded after all retries have been exhausted.
  </summary>
</histogram>

<histogram name="Network.Wifi.Synced.ZeroNetworksEligibleForSync.Reason"
    enum="NetworkEligibilityStatus" expires_after="2023-06-18">
  <owner>jonmann@chromium.org</owner>
  <owner>crisrael@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    ChromeOS metric logged for users who have the feature enabled but have zero
    networks eligible for sync. Tracks the reasons why none of the networks are
    eligible.
  </summary>
</histogram>

<histogram name="NetworkService.ClearStaleDataDirectoryResult"
    enum="DeleteStaleCookiesResult" expires_after="2023-09-03">
  <owner>wfh@chromium.org</owner>
  <owner>pasko@chromium.org</owner>
  <summary>
    The result of an attempt to delete stale network context data directory
    (e.g. cookies). Recorded during construction of network context for Chrome
    and Safebrowsing. Android only.
  </summary>
</histogram>

<histogram name="NetworkService.CorsPreflightMethodAllowed"
    enum="NetworkServiceCorsPreflightMethodAllowed" expires_after="2023-06-18">
  <owner>hiroshige@chromium.org</owner>
  <owner>toyoshim@chromium.org</owner>
  <summary>
    Whether method or normalized method are allowed in CORS preflight request in
    PreflightResult::EnsureAllowedCrossOriginMethod(), to measure the impact of
    https://crbug.com/1228178.

    Logged for preflight requests that have method checked (i.e. those without
    errors before EnsureAllowedCrossOriginMethod).
  </summary>
</histogram>

<histogram name="NetworkService.CrossOriginResourcePolicy.ReportOnlyResult"
    enum="NetworkServiceCorpResult" expires_after="2020-09-30">
  <owner>mkwst@chromium.org</owner>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Records the result of the Cross-Origin Resource Policy check, with
    cross-origin-embedder-policy-report-only involvement.
  </summary>
</histogram>

<histogram name="NetworkService.CrossOriginResourcePolicy.Result"
    enum="NetworkServiceCorpResult" expires_after="2020-09-30">
  <owner>mkwst@chromium.org</owner>
  <owner>yhirano@chromium.org</owner>
  <summary>
    Records the result of the Cross-Origin Resource Policy check.
  </summary>
</histogram>

<histogram name="NetworkService.DeletedOldCacheData" enum="Boolean"
    expires_after="2023-09-03">
  <owner>wfh@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Reports whether or not any old cache data was found and deleted from the
    http_cache_path when creating a network context within the network service.
    This is reported each time a network context is created in the network
    service with a valid http_cache_path and http_cache_enabled is set to true.
  </summary>
</histogram>

<histogram name="NetworkService.GrantSandboxResult"
    enum="NetworkServiceSandboxGrantResult" expires_after="2023-09-03">
  <owner>wfh@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    The result of the attempt to grant the sandbox access to a network context
    data files, and migrate the data if a migration is requested. This is
    reported each time a network context instance is created on the network
    service, even when the sandbox is not enabled or no migration is requested.
  </summary>
</histogram>

<histogram name="NetworkService.MdnsResponder.ServiceError"
    enum="MdnsResponderServiceError" expires_after="M81">
  <owner>qingsi@chromium.org</owner>
  <owner>jeroendb@chromium.org</owner>
  <summary>
    Errors that the mDNS responder service encounters during its lifetime. These
    may be system errors in mDNS socket creation and IO, or user-induced by
    invalid IP addresses.
  </summary>
</histogram>

<histogram name="NetworkService.MemoryCache.BlockedByRequestHeaderReason"
    enum="NetworkServiceMemoryCacheBlockedByRequestHeaderReason"
    expires_after="2023-08-28">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    Records a reason why a request cannot be served from the in-memory cache due
    to request header checks. Recorded when the in-memory cache tries to serve a
    stored response.
  </summary>
</histogram>

<histogram name="NetworkService.MemoryCache.ContentLength.{RequestDestination}"
    units="bytes" expires_after="2023-07-10">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    Size of a response body that is going to be stored to the network service
    in-memory cache. Recorded before a response is going to be stored to the
    in-memory cache. If the size is larger than a configurable limit, the
    response won't be stored in the in-memory cache. This histogram is recorded
    for {RequestDestination}.
  </summary>
  <token key="RequestDestination" variants="RequestDestination"/>
</histogram>

<histogram name="NetworkService.MemoryCache.EntryStatus"
    enum="NetworkServiceMemoryCacheEntryStatus" expires_after="2023-07-18">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    Records whether an HTTP response is served from the in-memory cache in the
    network service. Recorded when the network service starts a network request
    and the request satisfies preconditions. Preconditions include: CORS checks
    passed, the request was a valid GET request, and the request didn't force
    network access etc. See NetworkServiceMemoryCache::CanServe() for details.
  </summary>
</histogram>

<histogram name="NetworkService.MemoryCache.FreshnessAtStore" units="seconds"
    expires_after="2023-07-10">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    Records freshness of a response when it is going to be stored into the
    in-memory cache. The range is from 1 seconds to 864000 seconds (10 days).
  </summary>
</histogram>

<histogram name="NetworkService.NetworkLoaderCompletionTime.{Source}"
    units="ms" expires_after="2023-07-10">
  <owner>bashi@chromium.org</owner>
  <owner>blink-network-stack@google.com</owner>
  <summary>
    The time taken to finish a network URLLoader to complete. A network
    URLLoader is a URLLoader that a CorsURLLoader used internally to load an
    HTTP response from the underlying layer. The underlying layer serves the
    response from one of the followings: the network service in-memory cache, a
    disk cache backend, or the network.

    This histogram is recorded for {Source}.
  </summary>
  <token key="Source">
    <variant name="DiskCache"/>
    <variant name="MemoryCache"/>
    <variant name="Network"/>
  </token>
</histogram>

<histogram name="NetworkService.ShutdownTime" units="ms" expires_after="M85">
  <owner>jam@chromium.org</owner>
  <summary>
    How long the browser waits for the network process to exit at shutdown.
  </summary>
</histogram>

<histogram name="NetworkService.TimeToGrantCacheAccess" units="ms"
    expires_after="2023-10-08">
  <owner>wfh@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    The time taken to permit the sandbox access to the cache directory during
    network context initialization. This is recorded each time a network context
    is created with a valid disk cache specified. This histogram is platform
    dependent so values from different platforms cannot be directly compared. On
    Windows, this records the amount of time taken to set the filesystem ACLs to
    allow the sandbox access to the cache directory.
  </summary>
</histogram>

<histogram name="NetworkService.TimeToGrantDataAccess" units="ms"
    expires_after="2023-10-08">
  <owner>wfh@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    The time taken to permit the sandbox access to the data directory during
    network context initialization. This is recorded each time a network context
    is created with a valid set of NetworkContextFilePaths with
    unsandboxed_data_path specified indicating it could be sandboxed. This
    histogram is platform dependent so values from different platforms cannot be
    directly compared. On Windows, this records the amount of time taken to set
    the filesystem ACLs to allow the sandbox access to the data directory.
  </summary>
</histogram>

<histogram name="NetworkService.TimeToMigrateData" units="ms"
    expires_after="2023-09-03">
  <owner>wfh@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    The time taken to copy the network context data files from the unsandboxed
    data path to the new sandbox data path. This is recorded each time an
    unmigrated network context is created with a valid set of data file paths,
    an unsandboxed_data_path to migrate from, and trigger_migration specified.
    This could include several logs from the same client for the same network
    context if the migration fails, since this is reported each time the
    migration is attempted.
  </summary>
</histogram>

<histogram
    name="NetworkService.URLLoader.RequestInitiatorOriginLockCompatibility"
    enum="RequestInitiatorOriginLockCompatibility" expires_after="2022-04-10">
  <obsolete>
    Removed in March 2022 / M101.

    Old results are preserved in
    https://docs.google.com/document/d/15j6AKzZ-HgyRQVrKpdGHfGf8D_fcUILmcQ34RAWD1TM/edit?resourcekey=0-wwIJsGSoWmhvFMwMTWdAOw
  </obsolete>
  <owner>lukasza@chromium.org</owner>
  <owner>creis@chromium.org</owner>
  <owner>jam@chromium.org</owner>
  <summary>
    Whether the request origin (i.e.
    network::ResourceRequest::request_initiator) matches the origin that the
    browser process expected when creating the URLLoaderFactory (i.e. whether it
    matches URLLoaderFactoryParams::request_initiator_origin_lock).

    Recorded when a request is started (i.e. at the time of constructing
    network::URLLoader).
  </summary>
</histogram>

<histogram
    name="NetworkService.URLLoaderFactory.OriginHeaderSameAsRequestOrigin"
    enum="BooleanOriginHeaderSameAsRequestOrigin" expires_after="2019-06-30">
  <owner>jam@chromium.org</owner>
  <owner>mmenke@chromium.org</owner>
  <summary>
    Whether the Origin header is the same as the request origin in the
    URLLoaderFactory when it creates a URLLoader.
  </summary>
</histogram>

<histogram name="NetworkService.URLLoaderFactory.UpdateLoadInfo" units="ms"
    expires_after="2023-04-30">
  <owner>jam@chromium.org</owner>
  <owner>cduvall@chromium.org</owner>
  <summary>
    The time it takes for each invocation of URLLoaderFactory.UpdateLoadInfo.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
