From 2084863d352fd059ee0f6abfef7965beb6b9c74e Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 9 Apr 2022 00:31:36 +0200 Subject: surtr: synapse metrics --- hosts/surtr/matrix/default.nix | 10 +++++ hosts/surtr/prometheus/default.nix | 11 +++++ hosts/surtr/prometheus/synapse-v2.rules | 78 +++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 hosts/surtr/prometheus/synapse-v2.rules (limited to 'hosts/surtr') diff --git a/hosts/surtr/matrix/default.nix b/hosts/surtr/matrix/default.nix index b690ec9a..9c9c3565 100644 --- a/hosts/surtr/matrix/default.nix +++ b/hosts/surtr/matrix/default.nix @@ -27,6 +27,16 @@ with lib; type = "http"; x_forwarded = true; } + { bind_addresses = ["::1" "127.0.0.1"]; + port = 9092; + resources = [ + { names = [ "metrics" ]; + compress = false; + } + ]; + tls = false; + type = "http"; + } ]; tls_certificate_path = "/run/credentials/matrix-synapse.service/synapse.li.pem"; diff --git a/hosts/surtr/prometheus/default.nix b/hosts/surtr/prometheus/default.nix index e38fdcb2..0f0cf586 100644 --- a/hosts/surtr/prometheus/default.nix +++ b/hosts/surtr/prometheus/default.nix @@ -136,6 +136,14 @@ in { ]; scrape_interval = "5s"; } + { job_name = "synapse"; + metrics_path = "/_synapse/metrics"; + static_configs = [ + { targets = ["localhost:9092"]; } + ]; + relabel_configs = relabelHosts; + scrape_interval = "5s"; + } ]; rules = [ @@ -144,6 +152,9 @@ in { ]; }) ]; + ruleFiles = [ + ./synapse-v2.rules + ]; }; users.users.${config.services.prometheus.exporters.unbound.user} = { description = "Prometheus unbound exporter service user"; diff --git a/hosts/surtr/prometheus/synapse-v2.rules b/hosts/surtr/prometheus/synapse-v2.rules new file mode 100644 index 00000000..7e405bf7 --- /dev/null +++ b/hosts/surtr/prometheus/synapse-v2.rules @@ -0,0 +1,78 @@ +groups: +- name: synapse + rules: + - record: "synapse_federation_transaction_queue_pendingEdus:total" + expr: "sum(synapse_federation_transaction_queue_pendingEdus or absent(synapse_federation_transaction_queue_pendingEdus)*0)" + - record: "synapse_federation_transaction_queue_pendingPdus:total" + expr: "sum(synapse_federation_transaction_queue_pendingPdus or absent(synapse_federation_transaction_queue_pendingPdus)*0)" + - record: 'synapse_http_server_request_count:method' + labels: + servlet: "" + expr: "sum(synapse_http_server_request_count) by (method)" + - record: 'synapse_http_server_request_count:servlet' + labels: + method: "" + expr: 'sum(synapse_http_server_request_count) by (servlet)' + + - record: 'synapse_http_server_request_count:total' + labels: + servlet: "" + expr: 'sum(synapse_http_server_request_count:by_method) by (servlet)' + + - record: 'synapse_cache:hit_ratio_5m' + expr: 'rate(synapse_util_caches_cache:hits[5m]) / rate(synapse_util_caches_cache:total[5m])' + - record: 'synapse_cache:hit_ratio_30s' + expr: 'rate(synapse_util_caches_cache:hits[30s]) / rate(synapse_util_caches_cache:total[30s])' + + - record: 'synapse_federation_client_sent' + labels: + type: "EDU" + expr: 'synapse_federation_client_sent_edus + 0' + - record: 'synapse_federation_client_sent' + labels: + type: "PDU" + expr: 'synapse_federation_client_sent_pdu_destinations:count + 0' + - record: 'synapse_federation_client_sent' + labels: + type: "Query" + expr: 'sum(synapse_federation_client_sent_queries) by (job)' + + - record: 'synapse_federation_server_received' + labels: + type: "EDU" + expr: 'synapse_federation_server_received_edus + 0' + - record: 'synapse_federation_server_received' + labels: + type: "PDU" + expr: 'synapse_federation_server_received_pdus + 0' + - record: 'synapse_federation_server_received' + labels: + type: "Query" + expr: 'sum(synapse_federation_server_received_queries) by (job)' + + - record: 'synapse_federation_transaction_queue_pending' + labels: + type: "EDU" + expr: 'synapse_federation_transaction_queue_pending_edus + 0' + - record: 'synapse_federation_transaction_queue_pending' + labels: + type: "PDU" + expr: 'synapse_federation_transaction_queue_pending_pdus + 0' + + - record: synapse_storage_events_persisted_by_source_type + expr: sum without(type, origin_type, origin_entity) (synapse_storage_events_persisted_events_sep{origin_type="remote"}) + labels: + type: remote + - record: synapse_storage_events_persisted_by_source_type + expr: sum without(type, origin_type, origin_entity) (synapse_storage_events_persisted_events_sep{origin_entity="*client*",origin_type="local"}) + labels: + type: local + - record: synapse_storage_events_persisted_by_source_type + expr: sum without(type, origin_type, origin_entity) (synapse_storage_events_persisted_events_sep{origin_entity!="*client*",origin_type="local"}) + labels: + type: bridges + - record: synapse_storage_events_persisted_by_event_type + expr: sum without(origin_entity, origin_type) (synapse_storage_events_persisted_events_sep) + - record: synapse_storage_events_persisted_by_origin + expr: sum without(type) (synapse_storage_events_persisted_events_sep) + -- cgit v1.2.3