51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
| How to monitor Synapse metrics using Prometheus
 | |
| ===============================================
 | |
| 
 | |
| 1: Install prometheus:
 | |
|   Follow instructions at http://prometheus.io/docs/introduction/install/
 | |
| 
 | |
| 2: Enable synapse metrics:
 | |
|   Simply setting a (local) port number will enable it. Pick a port.
 | |
|   prometheus itself defaults to 9090, so starting just above that for
 | |
|   locally monitored services seems reasonable. E.g. 9092:
 | |
| 
 | |
|   Add to homeserver.yaml
 | |
| 
 | |
|     metrics_port: 9092
 | |
| 
 | |
|   Restart synapse
 | |
| 
 | |
| 3: Check out synapse-prometheus-config
 | |
|   https://github.com/matrix-org/synapse-prometheus-config
 | |
| 
 | |
| 4: Add ``synapse.html`` and ``synapse.rules``
 | |
|   The ``.html`` file needs to appear in prometheus's ``consoles`` directory,
 | |
|   and the ``.rules`` file needs to be invoked somewhere in the main config
 | |
|   file. A symlink to each from the git checkout into the prometheus directory
 | |
|   might be easiest to ensure ``git pull`` keeps it updated.
 | |
| 
 | |
| 5: Add a prometheus target for synapse
 | |
|   This is easiest if prometheus runs on the same machine as synapse, as it can
 | |
|   then just use localhost::
 | |
| 
 | |
|     global: {
 | |
|       rule_file: "synapse.rules"
 | |
|     }
 | |
| 
 | |
|     job: {
 | |
|       name: "synapse"
 | |
| 
 | |
|       target_group: {
 | |
|         target: "http://localhost:9092/"
 | |
|       }
 | |
|     }
 | |
| 
 | |
| 6: Start prometheus::
 | |
| 
 | |
|    ./prometheus -config.file=prometheus.conf
 | |
| 
 | |
| 7: Wait a few seconds for it to start and perform the first scrape,
 | |
|    then visit the console:
 | |
| 
 | |
|     http://server-where-prometheus-runs:9090/consoles/synapse.html
 |