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
 |