mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-25 19:15:51 +03:00
50 lines
1.4 KiB
ReStructuredText
50 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
|