# 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/.

# This file is for Internal FOG Use Only.
# Please don't add anything here unless you have the permission of a
# Telemetry Module Peer.

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

fog:
  initialization:
    type: timespan
    time_unit: nanosecond
    description: |
      Time the FOG initialization takes.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1662123
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1662123#c3
    data_sensitivity:
      - technical
    notification_emails:
      - jrediger@mozilla.com
      - glean-team@mozilla.com
    expires: never

  failed_idle_registration:
    type: boolean
    lifetime: application
    description: |
      True if we failed to register with the idle service. Absent otherwise.
      Means IPC probably isn't working well.
      Child-process data will likely be absent, or incomplete.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1694739
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1694739#c5
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never

  inits_during_shutdown:
    type: counter
    lifetime: ping
    description: |
      Counts the number of times init had to be called during shutdown.
      Should never have a value for any session long enough to grow idle.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1839433
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1839433
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never

  max_pings_per_minute:
    type: quantity
    unit: int
    description: |
      Value of the configurable rate limit, in pings per minute, for Glean pings as set at init.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1834792
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1834792
    data_sensitivity:
      - technical
    notification_emails:
      - pmcmanis@mozilla.com
      - glean-team@mozilla.com
    expires: never

fog.ipc:
  replay_failures:
    type: counter
    description: |
      The number of times the ipc buffer failed to be replayed in the
      parent process.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1664461
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1664461
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never

  buffer_sizes:
    type: memory_distribution
    memory_unit: byte
    description: |
      The number and size of the IPC buffers being received over FOG IPC.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1694739
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1694739#c5
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never

  flush_durations:
    type: timing_distribution
    time_unit: microsecond
    description: |
      The length of time between asking the child processes for their
      IPC buffers and all of them being received by the parent.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1694739
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1694739#c5
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never

  flush_failures:
    type: counter
    description: |
      The number of times we failed to flush all non-parent-process data,
      throwing even partial results into the trash.
      If this number is high, we might consider writing custom `MozPromise`-
      handling code instead of using `MozPromise::All`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1729026
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1729026
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never

  shutdown_registration_failures:
    type: counter
    description: |
      The number of times we tried to register shutdown flush routines for
      content child processes, and failed (probably because there was no main
      thread).
      As a result there may be data loss from content child processes.
      Large or rising number of clients experiencing this indicates we should
      perhaps refactor content child shutdown in FOG to try harder to register
      flush operations.
      Will likely be obsoleted by bug 1641989.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1766977
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1766977
    data_sensitivity:
      - technical
    notification_emails:
      - chutten@mozilla.com
      - glean-team@mozilla.com
    expires: never
