diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2021-08-24 10:17:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-24 09:17:51 +0000 |
commit | 15db8b7c7f13f33ca49104183e0642892c3b83f1 (patch) | |
tree | 4f6a5027d588c9d92e320b7ed9aa163d0e80daa6 /synapse/handlers/register.py | |
parent | doc: add django-oauth-toolkit to oidc doc (#10192) (diff) | |
download | synapse-15db8b7c7f13f33ca49104183e0642892c3b83f1.tar.xz |
Correctly initialise the `synapse_user_logins` metric. (#10677)
Fix a bug where the prometheus metrics for SSO logins wouldn't be initialised until the first user logged in with a given auth provider.
Diffstat (limited to 'synapse/handlers/register.py')
-rw-r--r-- | synapse/handlers/register.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py index 8cf614136e..0ed59d757b 100644 --- a/synapse/handlers/register.py +++ b/synapse/handlers/register.py @@ -56,6 +56,22 @@ login_counter = Counter( ) +def init_counters_for_auth_provider(auth_provider_id: str) -> None: + """Ensure the prometheus counters for the given auth provider are initialised + + This fixes a problem where the counters are not reported for a given auth provider + until the user first logs in/registers. + """ + for is_guest in (True, False): + login_counter.labels(guest=is_guest, auth_provider=auth_provider_id) + for shadow_banned in (True, False): + registration_counter.labels( + guest=is_guest, + shadow_banned=shadow_banned, + auth_provider=auth_provider_id, + ) + + class LoginDict(TypedDict): device_id: str access_token: str @@ -96,6 +112,8 @@ class RegistrationHandler(BaseHandler): self.session_lifetime = hs.config.session_lifetime self.access_token_lifetime = hs.config.access_token_lifetime + init_counters_for_auth_provider("") + async def check_username( self, localpart: str, |