From bff5c7557eded58eb4e3a97467dd4041295c213c Mon Sep 17 00:00:00 2001
From: Nico Schottelius <nico@nico-notebook.schottelius.org>
Date: Thu, 23 Nov 2023 12:15:41 +0100
Subject: [PATCH] enable metrics for runa

---
 .../files/synapse/config/homeserver.yaml          |  9 ++++++++-
 .../files/synapse/nginx/synapse.conf              | 15 +++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/ansible/roles/docker-compose/files/synapse/config/homeserver.yaml b/ansible/roles/docker-compose/files/synapse/config/homeserver.yaml
index 03ee1bc..ec30fcd 100755
--- a/ansible/roles/docker-compose/files/synapse/config/homeserver.yaml
+++ b/ansible/roles/docker-compose/files/synapse/config/homeserver.yaml
@@ -310,6 +310,13 @@ listeners:
     resources:
      - names: [replication]
 
+  - port: 9000
+    type: metrics
+    tls: false
+    x_forwarded: true
+    resources:
+     - names: [metrics]
+       compress: false
 
     # example additional_resources:
     #
@@ -1513,7 +1520,7 @@ account_validity:
 
 # Enable collection and rendering of performance metrics
 #
-#enable_metrics: false
+enable_metrics: true
 
 # Enable sentry integration
 # NOTE: While attempts are made to ensure that the logs don't contain
diff --git a/ansible/roles/docker-compose/files/synapse/nginx/synapse.conf b/ansible/roles/docker-compose/files/synapse/nginx/synapse.conf
index 038f52c..397f3aa 100644
--- a/ansible/roles/docker-compose/files/synapse/nginx/synapse.conf
+++ b/ansible/roles/docker-compose/files/synapse/nginx/synapse.conf
@@ -44,6 +44,21 @@ server {
       proxy_pass http://synapse-worker-generic:8008;
    }
 
+    # Metrics to master
+    location ~ /_synapse/metrics {
+      proxy_set_header X-Forwarded-For $remote_addr;
+      proxy_set_header X-Forwarded-Proto $scheme;
+      proxy_set_header Host $http_host;
+      proxy_pass http://synapse-main:9000;
+
+      allow 10.161.228.115;
+      allow 10.161.228.116;
+      allow 10.161.228.117;
+      allow 10.161.228.118;
+      allow 10.161.228.119;
+      deny all;
+    }
+
     # All other matrix/synapse requests go to main
     location ~ /_matrix|/_synapse {
       proxy_set_header X-Forwarded-For $remote_addr;