# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Adding a new metric? We have docs for that!
# https://firefox-source-docs.mozilla.org/toolkit/components/glean/user/new_definitions_file.html

---
$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
$tags:
  - 'Core :: WebRTC'

rtcrtpsender:
  count:
    type: counter
    description: >
      The number of RTCRtpSenders created.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  count_setparameters_compat:
    type: counter
    description: >
      The number of RTCRtpSenders created that use the compatibility mode for
      setParameters.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  used_sendencodings:
    type: rate
    description: >
      The proportion of RTCRtpSenders that were created by an addTransceivers
      call that was passed a sendEncodings.
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

rtcrtpsender.setparameters:
  warn_no_getparameters:
    type: rate
    description: >
      The proportion of RTCRtpSenders configured with the setParameters compat
      mode that have warned at least once about a setParameters call because
      [[LastReturnedParameters]] was not set.  (ie; there was not a recent
      enough call to getParameters)
    denominator_metric: rtcrtpsender.count_setparameters_compat
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  blame_no_getparameters:
    type: labeled_counter
    description: >
      The number of RTCRtpSenders that have warned at least once about
      a `setParameters` call because `[[LastReturnedParameters]]` was not set,
      broken down by the eTLD+1 of the site. (ie; there was not a recent
      enough call to `getParameters`) Collected only on EARLY_BETA_OR_EARLIER.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1831343
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1831343
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - web_activity
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  warn_length_changed:
    type: rate
    description: >
      The proportion of RTCRtpSenders configured with the setParameters compat
      mode that have warned at least once about a setParameters call that
      attempted to change the number of encodings.
    denominator_metric: rtcrtpsender.count_setparameters_compat
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  blame_length_changed:
    type: labeled_counter
    description: >
      The number of RTCRtpSenders that have warned at least once about a
      `setParameters` call that attempted to change the number of encodings,
      broken down by the eTLD+1 of the site. Collected only on
      EARLY_BETA_OR_EARLIER.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1831343
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1831343
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - web_activity
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  warn_no_transactionid:
    type: rate
    description: >
      The proportion of RTCRtpSenders configured with the setParameters compat
      mode that have warned at least once about a setParameters call that did
      not set the transactionId field.
    denominator_metric: rtcrtpsender.count_setparameters_compat
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  blame_no_transactionid:
    type: labeled_counter
    description: >
      The number of RTCRtpSenders that have warned at least once about a
      `setParameters` call that did not set the transactionId field, broken down
      by the eTLD+1 of the site. Collected only on EARLY_BETA_OR_EARLIER.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1831343
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1831343
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - web_activity
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_length_changed:
    type: rate
    description: >
      The proportion of RTCRtpSenders that have thrown an error at least once
      about a setParameters call that attempted to change the number of
      encodings.
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_rid_changed:
    type: rate
    description: >
      The proportion of RTCRtpSenders that have thrown an error at least once
      about a setParameters call that attempted to change the rid on an
      encoding (note that we only check this if the encoding count did not
      change, see fail_length_changed).
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_no_getparameters:
    type: rate
    description: >
      The proportion of RTCRtpSenders that have thrown an error at least once
      about a setParameters call because [[LastReturnedParameters]] was not set.
      (ie; there was not a recent enough call to getParameters)
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_no_transactionid:
    type: rate
    description: >
      The proportion of RTCRtpSenders that have thrown an error at least once
      about a setParameters call that did not set the transactionId field.
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_stale_transactionid:
    type: rate
    description: >
      The proportion of RTCRtpSenders that have thrown an error at least once
      about a setParameters call that used a stale transaction id.
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_no_encodings:
    type: rate
    description: >
      The proportion of RTCRtpSenders configured with the setParameters compat
      mode that have thrown an error at least once about a setParameters call
      that had no encodings (we do not measure this against the general
      population of RTCRtpSenders, since without the compat mode this failure
      is never observed, because it fails the length change check).
    denominator_metric: rtcrtpsender.count_setparameters_compat
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  fail_other:
    type: rate
    description: >
      The proportion of RTCRtpSenders that have thrown an error at least once
      about a setParameters call that had no encodings.
    denominator_metric: rtcrtpsender.count
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1401592
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832459
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881403
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

codec.stats:
  ulpfec_negotiated:
    type: labeled_counter
    description: >
      Counts the number of times that ulpfec is negotiated or not negotiated
      on the first negotiation for each video transceiver.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132
    labels:
      - negotiated
      - not_negotiated

  other_fec_signaled:
    type: labeled_counter
    description: >
      Count how many other fec options are being offered.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  video_preferred_codec:
    type: labeled_counter
    description: >
      Counts the preferred video codec being signaled to us to identify preferred video codec.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

  audio_preferred_codec:
    type: labeled_counter
    description: >
      Counts the preferred audio codec being signaled to us to identify preferred audio codec.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1858213
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1881396
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 132

webrtcdtls:
  protocol_version:
    type: labeled_counter
    description: >
      The version of DTLS used for each webrtc connection. Can be 1.0, 1.2, or 1.3 (there is no 1.1 version of DTLS)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 135

  cipher:
    type: labeled_counter
    description: >
      The CipherSuite used for each webrtc DTLS connection, as a string
      representation of the CipherSuite's ID in 4 hex digits (eg;
      TLS_DHE_RSA_WITH_AES_128_CBC_SHA would be "0x0033")
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 135

  srtp_cipher:
    type: labeled_counter
    description: >
      The SRTPProtectionProfile (see RFC 5764) used for each webrtc SRTP
      connection, as a string representation of the SRTPProtectionProfile's ID
      in 4 hex digits (eg; SRTP_AES128_CM_HMAC_SHA1_80 would be "0x0001")
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 135

  client_handshake_result:
    type: labeled_counter
    description: >
      The result of each webrtc client DTLS handshake as a string containing
      either the name of the error code (eg; SSL_ERROR_BAD_CERTIFICATE),
      SUCCESS for successful handshakes, ALPN_FAILURE when ALPN negotiation
      fails, or CERT_FAILURE when cert validation fails.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 135

  server_handshake_result:
    type: labeled_counter
    description: >
      The result of each webrtc server DTLS handshake, as the name of the error
      code (eg; SSL_ERROR_BAD_CERTIFICATE), the empty string for successful
      handshakes, ALPN_FAILURE when ALPN negotiation fails, or CERT_FAILURE when
      cert validation fails.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1884140
    data_sensitivity:
      - technical
    notification_emails:
      - webrtc-telemetry-alerts@mozilla.com
    expires: 135
