blob: a9eef438d79dae8043506e206b44e258f765f579 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
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 WebAudio 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 send CLs to chromium-metrics-reviews@google.com rather than to specific
individuals. These CLs will be automatically reassigned to a reviewer within
about 5 minutes. This approach helps the metrics team to load-balance incoming
reviews. Googlers can read more about this at go/gwsq-gerrit.
-->
<histogram-configuration>
<histograms>
<histogram name="WebAudio.AudioBuffer.Length" units="frames"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The length (in frames) requested by createBuffer(). Recorded for every call
to createBuffer(). Probably many (tens or hundreds) per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioBuffer.NumberOfChannels" units="units"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The number of channels requested by createBuffer(). Recorded for every call
to createBuffer(). Probably many (tens or hundreds) per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioBuffer.SampleRate384kHz" units="Hz"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The sample rate (in Hz) requested by createBuffer(). Recorded for every call
to createBuffer(). Probably many (tens or hundreds) per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioBuffer.SampleRateRatio384kHz" units="units"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The ratio of the buffer sample rate from createBuffer() to the context
sample rate. This indicates if the buffer needs to be resampled. Recorded
for every call to createBuffer(). Probably many (tens or hundreds) per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioContext.HardwareSampleRate" units="Hz"
expires_after="2021-02-28">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The hardware sample rate (in Hz) used by an AudioContext. Recorded for every
WebAudio AudioContext that is created; probably only one or two per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioContext.MaxChannelsAvailable" units="units"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The maximum number of (hardware) channels available in an AudioContext.
Recorded for every WebAudio AudioContext that is created; probably only one
or two per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioContextOptions.sampleRate" units="Hz"
expires_after="2021-02-16">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The sample rate requested by developer to be used as the sample rate when
constructing an AudioContext with an AudioContextOptions dictionary. This is
recorded for each AudioContext created, probably just one or two per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioContextOptions.sampleRateRatio" units="units"
expires_after="2021-04-18">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The ratio of the user-selected sample rate to the hardware sample rate of an
AudioContext. The ratio is represented as a percentage. This is recorded for
each AudioContext created, probably just one or two per page.
</summary>
</histogram>
<histogram name="WebAudio.AudioDestination.CallbackBufferSize" units="units"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The callback buffer size (in audio frames) for WebAudio rendering between
the WebAudio graph and the audio device thread. This can differ from the
value recommended by the audio hardware due to internal constraints in
WebAudio. Recorded for every WebAudio AudioContext that is created.
</summary>
</histogram>
<histogram name="WebAudio.AudioDestination.HardwareBufferSize" units="units"
expires_after="2021-04-04">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The buffer size (in audio frames) for WebAudio rendering recommended by the
audio hardware. Recorded for every WebAudio AudioContext that is created.
</summary>
</histogram>
<histogram name="WebAudio.Autoplay" enum="WebAudioAutoplayStatus"
expires_after="M87">
<owner>mlamouri@google.com</owner>
<owner>media-dev@chromium.org</owner>
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The autoplay status of an AudioContext when destroyed. This include all
types of frames. In order to know the value only for main frames, the
.CrossOrigin values can be substracted.
</summary>
</histogram>
<histogram name="WebAudio.Autoplay.CrossOrigin" enum="WebAudioAutoplayStatus"
expires_after="M87">
<owner>mlamouri@google.com</owner>
<owner>media-dev@chromium.org</owner>
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The autoplay status of an AudioContext when destroyed in a cross-origin
frame.
</summary>
</histogram>
<histogram name="WebAudio.Autoplay.UnlockType"
enum="WebAudioAutoplayUnlockType" expires_after="M87">
<owner>mlamouri@google.com</owner>
<owner>media-dev@chromium.org</owner>
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
Records how an AudioContext was unlocked (if it was). This is recorded when
the AudioContext is destroyed.
</summary>
</histogram>
<histogram name="WebAudio.BiquadFilter.Type" enum="BiquadFilterType"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The type of the BiquadFilterNode. Recorded each time the type is set. This
recorded once (to lowpass) when a biquad filter is created and also recorded
whenever the filter type changes due to user action or programatically. It
is unlikely the type will change more than once.
</summary>
</histogram>
<histogram name="WebAudio.ConvolverNode.ImpulseResponseLength" units="ms"
expires_after="2021-02-18">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The duration in millisec of impulse responses for a ConvolverNode. Recorded
each time the impulse response is set for a ConvolverNode.
</summary>
</histogram>
<histogram name="WebAudio.IIRFilterNode.Order" units="units"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The order of the WebAudio IIRFilterNode. The order is one less than the
number of feedback coefficients used in the denominator of the IIRFilter
transfer function. Recorded each time an IIRFilter is constructed.
</summary>
</histogram>
<histogram name="WebAudio.OfflineAudioContext.ChannelCount" units="units"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The number of channels specified for the offline audio context. Recorded for
every offline context created. Probably only a few per page, but could be
potentially much more (thousands).
</summary>
</histogram>
<histogram name="WebAudio.OfflineAudioContext.Length" units="frames"
expires_after="2021-03-21">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The length (in frames) specified for the offline audio context. Recorded for
every offline context created. Probably only a few per page, but could be
potentially much more (thousands).
</summary>
</histogram>
<histogram name="WebAudio.OfflineAudioContext.SampleRate384kHz" units="Hz"
expires_after="2021-02-18">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The sample rate (in Hz) specified for the offline audio context. Recorded
for every offline context created. Probably only a few per page, but could
be potentially much more (thousands).
</summary>
</histogram>
<histogram name="WebAudio.PannerNode.PanningModel" enum="PanningModelType"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
The panning model for the PannerNode. Recorded once with the default value
at creation and once again whenver it is changed. Once changed, it is
unlikely to be changed again. If there are any PannerNodes created at all,
then there is probably one for each source (AudioBufferSourceNode,
OscillatorNode, or other source).
</summary>
</histogram>
<histogram name="WebAudio.PushPullFIFO.UnderflowGlitches" enum="Boolean"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
Captures if WebAudio caused glitches or not due to the FIFO underflow. It is
recorded when PushPullFIFO is destroyed. (e.g. navigating away from the
page.)
</summary>
</histogram>
<histogram name="WebAudio.PushPullFIFO.UnderflowPercentage" units="%"
expires_after="2021-01-06">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
Percentage of FIFO underflow happened due to the the missed deadline of
WebAudio rendering engine. It is recorded when PushPullFIFO is destroyed.
(e.g. navigating away from the page.)
</summary>
</histogram>
</histograms>
</histogram-configuration>