summary refs log tree commit diff
path: root/docs/metrics-howto.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/metrics-howto.rst')
-rw-r--r--docs/metrics-howto.rst49
1 files changed, 49 insertions, 0 deletions
diff --git a/docs/metrics-howto.rst b/docs/metrics-howto.rst
new file mode 100644
index 0000000000..b3e71fc770
--- /dev/null
+++ b/docs/metrics-howto.rst
@@ -0,0 +1,49 @@
+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: arrange for synapse.html to appear in prometheus's "consoles"
+   directory - symlink might be easiest to ensure `git pull` keeps it
+   updated.
+
+5: arrange for synapse.rules to be invoked from the main
+   prometheus.conf and add a synapse target. 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