Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Revert "Merge pull request #3066 from matrix-org/rav/remove_redundant…
Browse files Browse the repository at this point in the history
…_metrics"

We aren't ready to release this yet, so I'm reverting it for now.

This reverts commit d1679a4, reversing
changes made to e089100.
  • Loading branch information
richvdh committed Apr 9, 2018
1 parent 135fc5b commit 13decdb
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 28 deletions.
9 changes: 0 additions & 9 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
Changes in synapse v0.28.0 (2018-xx-xx)
=======================================

As previously advised, this release removes a number of redundant Prometheus
metrics. Administrators may need to update their dashboards and alerting rules
to use the updated metric names, if they have not already done so. See
`docs/metrics-howto.rst <docs/metrics-howto.rst#deprecated-metrics-removed-in-0-28-0>`_
for more details.

Changes in synapse v0.27.2 (2018-03-26)
=======================================

Expand Down
9 changes: 1 addition & 8 deletions UPGRADE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,21 +52,14 @@ Upgrading to $NEXT_VERSION
====================

This release expands the anonymous usage stats sent if the opt-in
``report_stats`` configuration is set to ``true``. We now capture RSS memory
``report_stats`` configuration is set to ``true``. We now capture RSS memory
and cpu use at a very coarse level. This requires administrators to install
the optional ``psutil`` python module.

We would appreciate it if you could assist by ensuring this module is available
and ``report_stats`` is enabled. This will let us see if performance changes to
synapse are having an impact to the general community.

This release also removes a number of redundant Prometheus metrics.
Administrators may need to update their dashboards and alerting rules to use
the updated metric names, if they have not already done so. See
`docs/metrics-howto.rst <docs/metrics-howto.rst#deprecated-metrics-removed-in-0-28-0>`_
for more details.


Upgrading to v0.15.0
====================

Expand Down
11 changes: 0 additions & 11 deletions docs/metrics-howto.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,6 @@ How to monitor Synapse metrics using Prometheus
Restart prometheus.


Deprecated metrics removed in 0.28.0
------------------------------------

Synapse 0.28.0 removes all of the metrics deprecated by 0.27.0, which are those
listed under "Old name" below. This has been done to reduce the bandwidth used
by gathering metrics and the storage requirements for the Prometheus server, as
well as reducing CPU overhead for both Synapse and Prometheus.

Administrators should update any alerts or monitoring dashboards to use the
"New name" listed below.

Block and response metrics renamed for 0.27.0
---------------------------------------------

Expand Down
26 changes: 26 additions & 0 deletions synapse/http/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,17 @@
response_count = metrics.register_counter(
"response_count",
labels=["method", "servlet", "tag"],
alternative_names=(
# the following are all deprecated aliases for the same metric
metrics.name_prefix + x for x in (
"_requests",
"_response_time:count",
"_response_ru_utime:count",
"_response_ru_stime:count",
"_response_db_txn_count:count",
"_response_db_txn_duration:count",
)
)
)

requests_counter = metrics.register_counter(
Expand All @@ -62,24 +73,39 @@
response_timer = metrics.register_counter(
"response_time_seconds",
labels=["method", "servlet", "tag"],
alternative_names=(
metrics.name_prefix + "_response_time:total",
),
)

response_ru_utime = metrics.register_counter(
"response_ru_utime_seconds", labels=["method", "servlet", "tag"],
alternative_names=(
metrics.name_prefix + "_response_ru_utime:total",
),
)

response_ru_stime = metrics.register_counter(
"response_ru_stime_seconds", labels=["method", "servlet", "tag"],
alternative_names=(
metrics.name_prefix + "_response_ru_stime:total",
),
)

response_db_txn_count = metrics.register_counter(
"response_db_txn_count", labels=["method", "servlet", "tag"],
alternative_names=(
metrics.name_prefix + "_response_db_txn_count:total",
),
)

# seconds spent waiting for db txns, excluding scheduling time, when processing
# this request
response_db_txn_duration = metrics.register_counter(
"response_db_txn_duration_seconds", labels=["method", "servlet", "tag"],
alternative_names=(
metrics.name_prefix + "_response_db_txn_duration:total",
),
)

# seconds spent waiting for a db connection, when processing this request
Expand Down
25 changes: 25 additions & 0 deletions synapse/util/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,28 +31,53 @@
block_counter = metrics.register_counter(
"block_count",
labels=["block_name"],
alternative_names=(
# the following are all deprecated aliases for the same metric
metrics.name_prefix + x for x in (
"_block_timer:count",
"_block_ru_utime:count",
"_block_ru_stime:count",
"_block_db_txn_count:count",
"_block_db_txn_duration:count",
)
)
)

block_timer = metrics.register_counter(
"block_time_seconds",
labels=["block_name"],
alternative_names=(
metrics.name_prefix + "_block_timer:total",
),
)

block_ru_utime = metrics.register_counter(
"block_ru_utime_seconds", labels=["block_name"],
alternative_names=(
metrics.name_prefix + "_block_ru_utime:total",
),
)

block_ru_stime = metrics.register_counter(
"block_ru_stime_seconds", labels=["block_name"],
alternative_names=(
metrics.name_prefix + "_block_ru_stime:total",
),
)

block_db_txn_count = metrics.register_counter(
"block_db_txn_count", labels=["block_name"],
alternative_names=(
metrics.name_prefix + "_block_db_txn_count:total",
),
)

# seconds spent waiting for db txns, excluding scheduling time, in this block
block_db_txn_duration = metrics.register_counter(
"block_db_txn_duration_seconds", labels=["block_name"],
alternative_names=(
metrics.name_prefix + "_block_db_txn_duration:total",
),
)

# seconds spent waiting for a db connection, in this block
Expand Down

0 comments on commit 13decdb

Please sign in to comment.