Source code
Revision control
Copy as Markdown
Other Tools
(mach-telemetry)=
# Mach Telemetry
defined in the `metrics.yaml` files in-tree.
These files are all documented in a single {ref}`generated file here<metrics>`.
```{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<metrics>` will need to be updated:
```
./mach doc mach-telemetry
```