forked from mirrors/gecko-dev
		
	 63022efc7a
			
		
	
	
		63022efc7a
		
	
	
	
	
		
			
			This removes the `@CommandProvider` decorator and the need to implement mach commands inside subclasses of `MachCommandBase`, and moves all existing commands out from classes to module level functions. Differential Revision: https://phabricator.services.mozilla.com/D121512
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. _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<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:
 | |
| 
 | |
| #. Parameterize your ``@Command`` annotation with ``metrics_path``.
 | |
| #. 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
 |