From 509a25b9ba874ca65f902a9c95cd880e69ec4d86 Mon Sep 17 00:00:00 2001 From: Charles Hall Date: Wed, 5 Jun 2024 07:18:31 -0700 Subject: [PATCH] count federation requests by server name This resuls in very high cardinality, so probably not something to run for a long period of time. --- src/api/server_server.rs | 5 +++++ src/observability.rs | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/src/api/server_server.rs b/src/api/server_server.rs index dba10580..0a91d50b 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -12,6 +12,7 @@ use std::{ use axum::{response::IntoResponse, Json}; use axum_extra::headers::{Authorization, HeaderMapExt}; use get_profile_information::v1::ProfileField; +use opentelemetry::KeyValue; use ruma::{ api::{ client::error::{Error as RumaError, ErrorKind}, @@ -703,6 +704,10 @@ pub(crate) async fn send_transaction_message_route( let sender_servername = body.sender_servername.as_ref().expect("server is authenticated"); + METRICS + .federation_requests + .add(1, &[KeyValue::new("server_name", sender_servername.to_string())]); + let mut resolved_map = BTreeMap::new(); let pub_key_map = RwLock::new(BTreeMap::new()); diff --git a/src/observability.rs b/src/observability.rs index 546f9bdf..d6d085c3 100644 --- a/src/observability.rs +++ b/src/observability.rs @@ -155,6 +155,9 @@ pub(crate) struct Metrics { /// Counts where data is found from lookup: opentelemetry::metrics::Counter, + + /// Counts incoming federation requests by origin + pub(crate) federation_requests: opentelemetry::metrics::Counter, } impl Metrics { @@ -205,10 +208,16 @@ impl Metrics { .with_description("Counts where data is found from") .init(); + let federation_requests = meter + .u64_counter("federation_requests") + .with_description("Counts incoming federation requests by origin") + .init(); + Metrics { otel_state: (registry, provider), http_requests_histogram, lookup, + federation_requests, } }