(“This Week in Glean” is a series of blog posts that the Glean Team at Mozilla is using to try to communicate better about our work. They could be release notes, documentation, hopes, dreams, or whatever: so long as it is inspired by Glean. You can find an [index of all TWiG posts online](https://mozilla.github.io/glean/book/appendix/twig.html).)
Last week's blog post: [This Week in Glean: Glean in Private](https://chuttenblog.wordpress.com/2019/11/22/this-week-in-glean-glean-in-private/) by chutten.
Currently my team is responsible for the Telemetry framework inside Firefox on Desktop and also [the Glean SDK](https://github.com/mozilla/glean), targeting our mobile products.
We're working on bringing the Glean experience to Firefox on Desktop, but in the meantime [Telemetry](https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/index.html) is what we have,
need to support and sometimes implement new features on.
I'm speaking of the [`deletion-request` ping](https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/data/deletion-request-ping.html) here.
When a user opts out of Telemetry we take this as a signal to also delete associated data from our pipeline.
Implementation in Firefox Desktop was merely renaming [an existing ping](https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/obsolete/optout-ping.html) that is triggered when the user disables "Data Collection and Use" (`about:preferences` -> Privacy & Security). It contains no additional data.
Implementation in Glean was not much harder either. Glean already supports [custom pings](https://mozilla.github.io/glean/book/user/pings/custom.html): Pings that can be defined and send by the application using Glean.
Glean's internal pings follow the same pattern, they are just pre-defined.
The biggest difference?
It's called `deletion_request` ping instead.
Glean also enforces the payload schema of pings.
Glean itself controls portion of the data, including a sequence number, date field
and a bit of metadata about the application its running in (see [the ping sections](https://mozilla.github.io/glean/book/user/pings/index.html#ping-sections)).
The rest of the payload consists of [metrics](https://mozilla.github.io/glean/book/user/metrics/index.html) as defined by users of Glean.
While implementing the new ping I stumbled upon another small detail of Glean: Pings won't be sent out if they would not contain any metrics.