Fix oldest_pdu_in_federation_staging (#10455)

If the staging area was empty we'd report an age of 51 years, which is
not true or helpful.
This commit is contained in:
Erik Johnston 2021-07-27 18:01:04 +01:00 committed by GitHub
parent 076deade02
commit 5b22d5ee03
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 2 deletions

1
changelog.d/10455.bugfix Normal file
View file

@ -0,0 +1 @@
Fix `synapse_federation_server_oldest_inbound_pdu_in_staging` Prometheus metric to not report a max age of 51 years when the queue is empty.

View file

@ -1227,12 +1227,15 @@ class EventFederationWorkerStore(EventsWorkerStore, SignatureWorkerStore, SQLBas
(count,) = txn.fetchone() (count,) = txn.fetchone()
txn.execute( txn.execute(
"SELECT coalesce(min(received_ts), 0) FROM federation_inbound_events_staging" "SELECT min(received_ts) FROM federation_inbound_events_staging"
) )
(received_ts,) = txn.fetchone() (received_ts,) = txn.fetchone()
age = self._clock.time_msec() - received_ts # If there is nothing in the staging area default it to 0.
age = 0
if received_ts is not None:
age = self._clock.time_msec() - received_ts
return count, age return count, age