<!--
Copyright 2023 The Cobalt Authors. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<!--
This file is used to generate a comprehensive list of Cobalt histograms
along with a detailed description for each histogram. See go/cobalt-telemetry
for details on how to modify this file.

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

Always run the pretty print utility on this file after editing:

  ./tools/metrics/histograms/pretty_print.py tools/metrics/histograms/metadata/cobalt/histograms.xml
-->

<histogram-configuration>

<histograms>

<histogram name="Cobalt.DOM.CSS.Link.ParseTimeMicrosPerKB" units="microseconds"
    expires_after="never">
<!-- expires-never: Needed for long-term tracking of CSS parse performance. -->

  <owner>joeltine@google.com</owner>
  <summary>
    A normalized ratio of time to KB of CSS parsing for link tags. Only logs a
    sample for links loaded through HTTP/HTTPS and greater than 1KB. See
    go/cobalt-js-css-parsing-metrics for the full design.
  </summary>
</histogram>

<histogram name="Cobalt.DOM.CSS.Style.ParseTimeMicrosPerKB"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of CSS parse performance. -->

  <owner>joeltine@google.com</owner>
  <summary>
    A normalized ratio of time to KB of CSS parsing for style tags. Only logs a
    sample for HTMLStyleElements with CSS greater than 1KB. See
    go/cobalt-js-css-parsing-metrics for the full design.
  </summary>
</histogram>

<histogram name="Cobalt.Media.HasEverPlayed" enum="PipelineStatus"
    expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio-video
    streams with an unknown video codec.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.AudioOnly" enum="PipelineStatus"
    expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio only
    streams.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.AudioVideo.AV1"
    enum="PipelineStatus" expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio-video
    streams with AV1 video codec.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.AudioVideo.H264"
    enum="PipelineStatus" expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio-video
    streams with H264 video codec.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.AudioVideo.Other"
    enum="PipelineStatus" expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio-video
    streams with an unknown video codec.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.AudioVideo.VP9"
    enum="PipelineStatus" expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio-video
    streams with VP9 video codec.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.Unsupported" enum="PipelineStatus"
    expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for audio-video
    streams with an unknown video codec.
  </summary>
</histogram>

<histogram name="Cobalt.Media.PipelineStatus.VideoOnly" enum="PipelineStatus"
    expires_after="never">
<!-- expires-never: Needed for baseline Media pipeline health metric. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of the media pipeline at the end of its lifecycle for video only
    streams.
  </summary>
</histogram>

<histogram name="Cobalt.Media.SourceBuffer.AppendBuffer.Timing"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of SourceBuffer latency. -->

  <owner>async@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Timing data for the main action of the `SourceBuffer.appendBuffer` call.
  </summary>
</histogram>

<histogram name="Cobalt.Media.SourceBuffer.PrepareAppend.Timing"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of SourceBuffer latency. -->

  <owner>async@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Timing data for preparation of `SourceBuffer.appendBuffer` calls.
  </summary>
</histogram>

<histogram name="Cobalt.Media.SourceBuffer.Other.Timing"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of SourceBuffer latency. -->

  <owner>async@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Catch-all for timing data for `SourceBuffer.appendBuffer` calls. This
    histogram is not expected to receive data normally.
  </summary>
</histogram>

<histogram name="Cobalt.Media.WebMediaPlayer.Seek.Timing"
    units="milliseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of Seek latency. -->

  <owner>async@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Timing data for the seek latency of WebMediaPlayer.
  </summary>
</histogram>

<histogram name="Cobalt.Media.SbPlayer.Create.Timing"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of SbPlayer latencies. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Timing data for the creation of SbPlayer.
  </summary>
</histogram>

<histogram name="Cobalt.Media.SbPlayer.CreateUrlPlayer.Timing"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of SbPlayer latencies. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Timing data for the creation of an SbPlayer::UrlPlayer.
  </summary>
</histogram>

<histogram name="Cobalt.Media.SbPlayer.Destroy.Timing"
    units="microseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of SbPlayer latencies. -->

  <owner>sideboard@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Timing data for the destruction of SbPlayer.
  </summary>
</histogram>

<histogram name="Cobalt.MediaDevices.MicCreationSucceeded" enum="Boolean"
    expires_after="never">
<!-- expires-never: Needed for long-term tracking of device mic support. -->

  <owner>loganmann@google.com</owner>
  <owner>yt-magma-eng@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    A boolean representing the success or failure of an attempted mic creation
    event via mediaDevices.getUserMedia().
  </summary>
</histogram>

<histogram name="Cobalt.LoaderApp.CrashpadInstallationStatus"
    enum="CrashpadInstallationStatus" expires_after="never">
<!-- expires-never: Needed for crash reporting system health metrics. -->

  <owner>hwarriner@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Status of Crashpad installation by the Loader App.
  </summary>
</histogram>

<histogram name="Cobalt.LoaderApp.ElfLoadDuration" units="milliseconds"
    expires_after="never">
<!-- expires-never: Needed for long-term tracking of ELF load performance. -->

  <owner>hwarriner@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    The time it takes for Cobalt's ELF Loader to load the dynamic shared
    library, which under normal operation is the Cobalt Core library. This
    metric is only recorded when the shared library is stored as a compressed
    file, and this metric includes the decompression time.
  </summary>
</histogram>

<histogram name="Cobalt.LoaderApp.ElfDecompressionDuration" units="milliseconds"
    expires_after="never">
<!-- expires-never: Needed for long-term tracking of ELF load performance. -->

  <owner>hwarriner@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    The time it takes for the ELF dynamic shared library, stored as a compressed
    file, to be decompressed. This metric is only recorded when the shared
    library is stored as a compressed file.
  </summary>
</histogram>

<histogram name="Cobalt.LoaderApp.ElfLoadUnexplainedDuration"
    units="milliseconds" expires_after="never">
<!-- expires-never: Needed for long-term tracking of ELF load performance. -->

  <owner>hwarriner@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    Cobalt.LoaderApp.ElfLoadDuration minus
    Cobalt.LoaderApp.ElfDecompressionDuration. This metric is only recorded when
    the shared library is stored as a compressed file.
  </summary>
</histogram>

<histogram name="Cobalt.LoaderApp.MaxSampledUsedCPUMemoryDuringELFLoad"
    units="MB" expires_after="never">
<!-- expires-never: Needed for long-term tracking of ELF load performance. -->

  <owner>hwarriner@google.com</owner>
  <owner>cobalt-team@google.com</owner>
  <summary>
    The maximum sampled value of CPU memory used by the Loader App while the ELF
    dynamic shared library is being loaded. Note that this maximum sampled value
    is not guaranteed to be the true maximum value, which could be greater. This
    metric is only recorded when the shared library is stored as a compressed
    file.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
