(mach-telemetry)= # Mach Telemetry [Glean](https://mozilla.github.io/glean/) is used to collect telemetry, and uses the metrics defined in the `metrics.yaml` files in-tree. These files are all documented in a single {ref}`generated file here`. ```{toctree} :maxdepth: 1 metrics ``` ## Adding Metrics to a new Command If you would like to submit telemetry metrics from your mach `@Command`, you should take two steps: 1. Parameterize your `@Command` annotation with `metrics_path`. 2. Use the `command_context.metrics` handle provided by `MachCommandBase` For example: ``` METRICS_PATH = os.path.abspath(os.path.join(__file__, '..', '..', 'metrics.yaml')) @Command('custom-command', metrics_path=METRICS_PATH) def custom_command(command_context): command_context.metrics.custom.foo.set('bar') ``` ## Updating Generated Metrics Docs When a `metrics.yaml` is added/changed/removed, {ref}`the metrics document` will need to be updated: ``` ./mach doc mach-telemetry ```