From 09703609fc2432ecf086b8fe45d6b324c5a923c9 Mon Sep 17 00:00:00 2001 From: Tom Lant Date: Mon, 14 Aug 2017 14:35:25 +0100 Subject: [PATCH 1/7] Create ISSUE_TEMPLATE.md A new issue template proposed to try and steer people towards #matrix:matrix.org for support queries relating to running their own homeserver. --- ISSUE_TEMPLATE.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 ISSUE_TEMPLATE.md diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..61d8b59eb --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,36 @@ + + +### Description + +Describe here the problem that you are experiencing, or the feature you are requesting. + +### Steps to reproduce + +- For bugs, list the steps +- that reproduce the bug +- using hyphens as bullet points + +Describe how what happens differs from what you expected. + +### Version information + + + +- **Homeserver**: was this issue identified on matrix.org or another homeserver? +- **Platform**: tell us about the environment in which your homeserver is operating + - distro, hardware, if it's running in a vm/container, etc. From b524dd4c355700e449ff5806514527e7b040ac5c Mon Sep 17 00:00:00 2001 From: Tom Lant Date: Mon, 14 Aug 2017 14:36:49 +0100 Subject: [PATCH 2/7] Update ISSUE_TEMPLATE.md Oops capital L. --- ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 61d8b59eb..e5415a202 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@ ### Description From 012875258c7c8ad7db4dcb8825684f2e8034e650 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Wed, 16 Aug 2017 15:31:44 +0100 Subject: [PATCH 4/7] Add prometheus config ... from https://github.com/matrix-org/synapse-prometheus-config. --- contrib/prometheus/README | 20 ++ contrib/prometheus/consoles/synapse.html | 395 +++++++++++++++++++++++ contrib/prometheus/synapse.rules | 21 ++ 3 files changed, 436 insertions(+) create mode 100644 contrib/prometheus/README create mode 100644 contrib/prometheus/consoles/synapse.html create mode 100644 contrib/prometheus/synapse.rules diff --git a/contrib/prometheus/README b/contrib/prometheus/README new file mode 100644 index 000000000..eb91db2de --- /dev/null +++ b/contrib/prometheus/README @@ -0,0 +1,20 @@ +This directory contains some sample monitoring config for using the +'Prometheus' monitoring server against synapse. + +To use it, first install prometheus by following the instructions at + + http://prometheus.io/ + +Then add a new job to the main prometheus.conf file: + + job: { + name: "synapse" + + target_group: { + target: "http://SERVER.LOCATION.HERE:PORT/_synapse/metrics" + } + } + +Metrics are disabled by default when running synapse; they must be enabled +with the 'enable-metrics' option, either in the synapse config file or as a +command-line option. diff --git a/contrib/prometheus/consoles/synapse.html b/contrib/prometheus/consoles/synapse.html new file mode 100644 index 000000000..e23d8a1fc --- /dev/null +++ b/contrib/prometheus/consoles/synapse.html @@ -0,0 +1,395 @@ +{{ template "head" . }} + +{{ template "prom_content_head" . }} +

System Resources

+ +

CPU

+
+ + +

Memory

+
+ + +

File descriptors

+
+ + +

Reactor

+ +

Total reactor time

+
+ + +

Average reactor tick time

+
+ + +

Pending calls per tick

+
+ + +

Storage

+ +

Queries

+
+ + +

Transactions

+
+ + +

Transaction execution time

+
+ + +

Database scheduling latency

+
+ + +

Cache hit ratio

+
+ + +

Cache size

+
+ + +

Requests

+ +

Requests by Servlet

+
+ +

 (without EventStreamRestServlet or SyncRestServlet)

+
+ + +

Average response times

+
+ + +

All responses by code

+
+ + +

Error responses by code

+
+ + + +

CPU Usage

+
+ + + +

DB Usage

+
+ + + +

Average event send times

+
+ + +

Federation

+ +

Sent Messages

+
+ + +

Received Messages

+
+ + +

Pending

+
+ + +

Clients

+ +

Notifiers

+
+ + +

Notified Events

+
+ + +{{ template "prom_content_tail" . }} + +{{ template "tail" }} diff --git a/contrib/prometheus/synapse.rules b/contrib/prometheus/synapse.rules new file mode 100644 index 000000000..b6f84174b --- /dev/null +++ b/contrib/prometheus/synapse.rules @@ -0,0 +1,21 @@ +synapse_federation_transaction_queue_pendingEdus:total = sum(synapse_federation_transaction_queue_pendingEdus or absent(synapse_federation_transaction_queue_pendingEdus)*0) +synapse_federation_transaction_queue_pendingPdus:total = sum(synapse_federation_transaction_queue_pendingPdus or absent(synapse_federation_transaction_queue_pendingPdus)*0) + +synapse_http_server_requests:method{servlet=""} = sum(synapse_http_server_requests) by (method) +synapse_http_server_requests:servlet{method=""} = sum(synapse_http_server_requests) by (servlet) + +synapse_http_server_requests:total{servlet=""} = sum(synapse_http_server_requests:by_method) by (servlet) + +synapse_cache:hit_ratio_5m = rate(synapse_util_caches_cache:hits[5m]) / rate(synapse_util_caches_cache:total[5m]) +synapse_cache:hit_ratio_30s = rate(synapse_util_caches_cache:hits[30s]) / rate(synapse_util_caches_cache:total[30s]) + +synapse_federation_client_sent{type="EDU"} = synapse_federation_client_sent_edus + 0 +synapse_federation_client_sent{type="PDU"} = synapse_federation_client_sent_pdu_destinations:count + 0 +synapse_federation_client_sent{type="Query"} = sum(synapse_federation_client_sent_queries) by (job) + +synapse_federation_server_received{type="EDU"} = synapse_federation_server_received_edus + 0 +synapse_federation_server_received{type="PDU"} = synapse_federation_server_received_pdus + 0 +synapse_federation_server_received{type="Query"} = sum(synapse_federation_server_received_queries) by (job) + +synapse_federation_transaction_queue_pending{type="EDU"} = synapse_federation_transaction_queue_pending_edus + 0 +synapse_federation_transaction_queue_pending{type="PDU"} = synapse_federation_transaction_queue_pending_pdus + 0 From ec3a2dc773d70e6d19e4c1f75571b5f2a313cb16 Mon Sep 17 00:00:00 2001 From: Tom Lant Date: Thu, 17 Aug 2017 11:00:51 +0100 Subject: [PATCH 5/7] Update ISSUE_TEMPLATE.md Responding to review comments. --- ISSUE_TEMPLATE.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index a3ca19ff7..a03285bc4 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -27,10 +27,17 @@ Describe here the problem that you are experiencing, or the feature you are requ Describe how what happens differs from what you expected. +If you can identify any relevant log snippets from _homeserver.log_, please include +those here (please be careful to remove any personal or private data): + ### Version information -- **Homeserver**: was this issue identified on matrix.org or another homeserver? -- **Platform**: tell us about the environment in which your homeserver is operating - - distro, hardware, if it's running in a vm/container, etc. +- **Homeserver**: Was this issue identified on matrix.org or another homeserver? + +If not matrix.org: +- **Version**: What version of Synapse is running? +- **Install method**: package manager/git clone/pip +- **Platform**: Tell us about the environment in which your homeserver is operating + - distro, hardware, if it's running in a vm/container, etc. From 413c2707236aa0a7e96e23eae1f760826163cc5a Mon Sep 17 00:00:00 2001 From: Tom Lant Date: Thu, 17 Aug 2017 11:14:35 +0100 Subject: [PATCH 6/7] Update ISSUE_TEMPLATE.md Added instructions for checking server version. --- ISSUE_TEMPLATE.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index a03285bc4..d2050a3e4 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -37,7 +37,11 @@ those here (please be careful to remove any personal or private data): - **Homeserver**: Was this issue identified on matrix.org or another homeserver? If not matrix.org: -- **Version**: What version of Synapse is running? +- **Version**: What version of Synapse is running? - **Install method**: package manager/git clone/pip - **Platform**: Tell us about the environment in which your homeserver is operating - distro, hardware, if it's running in a vm/container, etc. From dff396de0f91e6c1647b865fdb310228aefca2cb Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Fri, 1 Sep 2017 10:06:21 +0100 Subject: [PATCH 7/7] Set --python when running sytest .. because I want to make the 'install_and_run' script useful for non-synapse jobs, which do not accept --python. In any case we set up the path here, so sytest shouldn't be guessing it. --- jenkins-dendron-haproxy-postgres.sh | 1 + jenkins-dendron-postgres.sh | 1 + jenkins-postgres.sh | 1 + jenkins-sqlite.sh | 1 + 4 files changed, 4 insertions(+) diff --git a/jenkins-dendron-haproxy-postgres.sh b/jenkins-dendron-haproxy-postgres.sh index d64b2d2c9..07979bf8b 100755 --- a/jenkins-dendron-haproxy-postgres.sh +++ b/jenkins-dendron-haproxy-postgres.sh @@ -17,6 +17,7 @@ export HAPROXY_BIN=/home/haproxy/haproxy-1.6.11/haproxy ./sytest/jenkins/prep_sytest_for_postgres.sh ./sytest/jenkins/install_and_run.sh \ + --python $WORKSPACE/.tox/py27/bin/python \ --synapse-directory $WORKSPACE \ --dendron $WORKSPACE/dendron/bin/dendron \ --haproxy \ diff --git a/jenkins-dendron-postgres.sh b/jenkins-dendron-postgres.sh index 37ae746f4..3b932fe34 100755 --- a/jenkins-dendron-postgres.sh +++ b/jenkins-dendron-postgres.sh @@ -15,5 +15,6 @@ export SYNAPSE_CACHE_FACTOR=1 ./sytest/jenkins/prep_sytest_for_postgres.sh ./sytest/jenkins/install_and_run.sh \ + --python $WORKSPACE/.tox/py27/bin/python \ --synapse-directory $WORKSPACE \ --dendron $WORKSPACE/dendron/bin/dendron \ diff --git a/jenkins-postgres.sh b/jenkins-postgres.sh index f2ca8ccdf..1afb73639 100755 --- a/jenkins-postgres.sh +++ b/jenkins-postgres.sh @@ -14,4 +14,5 @@ export SYNAPSE_CACHE_FACTOR=1 ./sytest/jenkins/prep_sytest_for_postgres.sh ./sytest/jenkins/install_and_run.sh \ + --python $WORKSPACE/.tox/py27/bin/python \ --synapse-directory $WORKSPACE \ diff --git a/jenkins-sqlite.sh b/jenkins-sqlite.sh index 84613d979..baf4713a0 100755 --- a/jenkins-sqlite.sh +++ b/jenkins-sqlite.sh @@ -12,4 +12,5 @@ export SYNAPSE_CACHE_FACTOR=1 ./jenkins/clone.sh sytest https://github.com/matrix-org/sytest.git ./sytest/jenkins/install_and_run.sh \ + --python $WORKSPACE/.tox/py27/bin/python \ --synapse-directory $WORKSPACE \