Add metrics for number of outgoing EDUs, by type (#4695)

This commit is contained in:
Richard van der Hoff 2019-02-20 14:13:14 +00:00 committed by GitHub
parent a06614bd2a
commit 82ca6d1f9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 6 deletions

1
changelog.d/4695.feature Normal file
View File

@ -0,0 +1 @@
Add prometheus metrics for number of outgoing EDUs, by type.

View File

@ -33,7 +33,6 @@ from synapse.metrics import (
event_processing_loop_counter, event_processing_loop_counter,
event_processing_loop_room_count, event_processing_loop_room_count,
events_processed_counter, events_processed_counter,
sent_edus_counter,
sent_transactions_counter, sent_transactions_counter,
) )
from synapse.metrics.background_process_metrics import run_as_background_process from synapse.metrics.background_process_metrics import run_as_background_process
@ -47,10 +46,24 @@ from .units import Edu, Transaction
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
sent_pdus_destination_dist_count = Counter( sent_pdus_destination_dist_count = Counter(
"synapse_federation_client_sent_pdu_destinations:count", "" "synapse_federation_client_sent_pdu_destinations:count",
"Number of PDUs queued for sending to one or more destinations",
) )
sent_pdus_destination_dist_total = Counter( sent_pdus_destination_dist_total = Counter(
"synapse_federation_client_sent_pdu_destinations:total", "" "synapse_federation_client_sent_pdu_destinations:total", ""
"Total number of PDUs queued for sending across all destinations",
)
sent_edus_counter = Counter(
"synapse_federation_client_sent_edus",
"Total number of EDUs successfully sent",
)
sent_edus_by_type = Counter(
"synapse_federation_client_sent_edus_by_type",
"Number of sent EDUs successfully sent, by event type",
["type"],
) )
@ -360,8 +373,6 @@ class TransactionQueue(object):
logger.info("Not sending EDU to ourselves") logger.info("Not sending EDU to ourselves")
return return
sent_edus_counter.inc()
if key: if key:
self.pending_edus_keyed_by_dest.setdefault( self.pending_edus_keyed_by_dest.setdefault(
destination, {} destination, {}
@ -496,6 +507,9 @@ class TransactionQueue(object):
) )
if success: if success:
sent_transactions_counter.inc() sent_transactions_counter.inc()
sent_edus_counter.inc(len(pending_edus))
for edu in pending_edus:
sent_edus_by_type.labels(edu.edu_type).inc()
# Remove the acknowledged device messages from the database # Remove the acknowledged device messages from the database
# Only bother if we actually sent some device messages # Only bother if we actually sent some device messages
if device_message_edus: if device_message_edus:

View File

@ -274,8 +274,6 @@ pending_calls_metric = Histogram(
# Federation Metrics # Federation Metrics
# #
sent_edus_counter = Counter("synapse_federation_client_sent_edus", "")
sent_transactions_counter = Counter("synapse_federation_client_sent_transactions", "") sent_transactions_counter = Counter("synapse_federation_client_sent_transactions", "")
events_processed_counter = Counter("synapse_federation_client_events_processed", "") events_processed_counter = Counter("synapse_federation_client_events_processed", "")