forked from MirrorHub/synapse
Add metrics for tracking 3PID /requestToken requests. (#8712)
The main use case is to see how many requests are being made, and how many are second/third/etc attempts. If there are large number of retries then that likely indicates a delivery problem.
This commit is contained in:
parent
1b15a3d92c
commit
427ede619f
4 changed files with 33 additions and 0 deletions
1
changelog.d/8712.misc
Normal file
1
changelog.d/8712.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add metrics the allow the local sysadmin to track 3PID `/requestToken` requests.
|
|
@ -502,6 +502,16 @@ build_info.labels(
|
||||||
|
|
||||||
last_ticked = time.time()
|
last_ticked = time.time()
|
||||||
|
|
||||||
|
# 3PID send info
|
||||||
|
threepid_send_requests = Histogram(
|
||||||
|
"synapse_threepid_send_requests_with_tries",
|
||||||
|
documentation="Number of requests for a 3pid token by try count. Note if"
|
||||||
|
" there is a request with try count of 4, then there would have been one"
|
||||||
|
" each for 1, 2 and 3",
|
||||||
|
buckets=(1, 2, 3, 4, 5, 10),
|
||||||
|
labelnames=("type", "reason"),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ReactorLastSeenMetric:
|
class ReactorLastSeenMetric:
|
||||||
def collect(self):
|
def collect(self):
|
||||||
|
|
|
@ -38,6 +38,7 @@ from synapse.http.servlet import (
|
||||||
parse_json_object_from_request,
|
parse_json_object_from_request,
|
||||||
parse_string,
|
parse_string,
|
||||||
)
|
)
|
||||||
|
from synapse.metrics import threepid_send_requests
|
||||||
from synapse.push.mailer import Mailer
|
from synapse.push.mailer import Mailer
|
||||||
from synapse.util.msisdn import phone_number_to_msisdn
|
from synapse.util.msisdn import phone_number_to_msisdn
|
||||||
from synapse.util.stringutils import assert_valid_client_secret, random_string
|
from synapse.util.stringutils import assert_valid_client_secret, random_string
|
||||||
|
@ -143,6 +144,10 @@ class EmailPasswordRequestTokenRestServlet(RestServlet):
|
||||||
# Wrap the session id in a JSON object
|
# Wrap the session id in a JSON object
|
||||||
ret = {"sid": sid}
|
ret = {"sid": sid}
|
||||||
|
|
||||||
|
threepid_send_requests.labels(type="email", reason="password_reset").observe(
|
||||||
|
send_attempt
|
||||||
|
)
|
||||||
|
|
||||||
return 200, ret
|
return 200, ret
|
||||||
|
|
||||||
|
|
||||||
|
@ -411,6 +416,10 @@ class EmailThreepidRequestTokenRestServlet(RestServlet):
|
||||||
# Wrap the session id in a JSON object
|
# Wrap the session id in a JSON object
|
||||||
ret = {"sid": sid}
|
ret = {"sid": sid}
|
||||||
|
|
||||||
|
threepid_send_requests.labels(type="email", reason="add_threepid").observe(
|
||||||
|
send_attempt
|
||||||
|
)
|
||||||
|
|
||||||
return 200, ret
|
return 200, ret
|
||||||
|
|
||||||
|
|
||||||
|
@ -481,6 +490,10 @@ class MsisdnThreepidRequestTokenRestServlet(RestServlet):
|
||||||
next_link,
|
next_link,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
threepid_send_requests.labels(type="msisdn", reason="add_threepid").observe(
|
||||||
|
send_attempt
|
||||||
|
)
|
||||||
|
|
||||||
return 200, ret
|
return 200, ret
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ from synapse.http.servlet import (
|
||||||
parse_json_object_from_request,
|
parse_json_object_from_request,
|
||||||
parse_string,
|
parse_string,
|
||||||
)
|
)
|
||||||
|
from synapse.metrics import threepid_send_requests
|
||||||
from synapse.push.mailer import Mailer
|
from synapse.push.mailer import Mailer
|
||||||
from synapse.util.msisdn import phone_number_to_msisdn
|
from synapse.util.msisdn import phone_number_to_msisdn
|
||||||
from synapse.util.ratelimitutils import FederationRateLimiter
|
from synapse.util.ratelimitutils import FederationRateLimiter
|
||||||
|
@ -163,6 +164,10 @@ class EmailRegisterRequestTokenRestServlet(RestServlet):
|
||||||
# Wrap the session id in a JSON object
|
# Wrap the session id in a JSON object
|
||||||
ret = {"sid": sid}
|
ret = {"sid": sid}
|
||||||
|
|
||||||
|
threepid_send_requests.labels(type="email", reason="register").observe(
|
||||||
|
send_attempt
|
||||||
|
)
|
||||||
|
|
||||||
return 200, ret
|
return 200, ret
|
||||||
|
|
||||||
|
|
||||||
|
@ -234,6 +239,10 @@ class MsisdnRegisterRequestTokenRestServlet(RestServlet):
|
||||||
next_link,
|
next_link,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
threepid_send_requests.labels(type="msisdn", reason="register").observe(
|
||||||
|
send_attempt
|
||||||
|
)
|
||||||
|
|
||||||
return 200, ret
|
return 200, ret
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue