summary refs log blame commit diff
path: root/docs/metrics-howto.rst
blob: c1f5ae217481413945673a05ce3e4e4571c60a72 (plain) (tree)
1
2
3
4
5
6
7

                                               
                      
                                                                        
                          








                                                                     
                                      
                                                         



                                                                             
 

                                                                              











                                        
                     

                                            
                                                                   

                                                                  
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