From c4fcff5c92d09d5c97f3d1906789e0cd9837d031 Mon Sep 17 00:00:00 2001 From: Joris Bayer Date: Fri, 18 Oct 2024 11:32:20 +0200 Subject: [PATCH] instr(buffer): Measure envelope size --- relay-server/src/services/buffer/envelope_buffer/mod.rs | 5 +++++ relay-server/src/statsd.rs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/relay-server/src/services/buffer/envelope_buffer/mod.rs b/relay-server/src/services/buffer/envelope_buffer/mod.rs index 0ff0bc2b7e..6352d15a51 100644 --- a/relay-server/src/services/buffer/envelope_buffer/mod.rs +++ b/relay-server/src/services/buffer/envelope_buffer/mod.rs @@ -78,6 +78,11 @@ impl PolymorphicEnvelopeBuffer { /// Adds an envelope to the buffer. pub async fn push(&mut self, envelope: Box) -> Result<(), EnvelopeBufferError> { + relay_statsd::metric!( + histogram(RelayHistograms::BufferEnvelopeBodySize) = + envelope.items().map(Item::len).sum() + ); + relay_statsd::metric!(timer(RelayTimers::BufferPush), { match self { Self::Sqlite(buffer) => buffer.push(envelope).await, diff --git a/relay-server/src/statsd.rs b/relay-server/src/statsd.rs index 3526e30b0a..e7f3a498db 100644 --- a/relay-server/src/statsd.rs +++ b/relay-server/src/statsd.rs @@ -181,6 +181,11 @@ pub enum RelayHistograms { /// Number of envelopes in the backpressure buffer between the envelope buffer /// and the project cache. BufferBackpressureEnvelopesCount, + /// The amount of bytes in the item payloads of an envelope pushed to the envelope buffer. + /// + /// This is not quite the same as the actual size of a serialized envelope, because it ignores + /// the envelope header and item headers. + BufferEnvelopeBodySize, /// The number of batches emitted per partition. BatchesPerPartition, /// The number of buckets in a batch emitted. @@ -309,6 +314,7 @@ impl HistogramMetric for RelayHistograms { RelayHistograms::BufferBackpressureEnvelopesCount => { "buffer.backpressure_envelopes_count" } + RelayHistograms::BufferEnvelopeBodySize => "buffer.envelope_body_size", RelayHistograms::ProjectStatePending => "project_state.pending", RelayHistograms::ProjectStateAttempts => "project_state.attempts", RelayHistograms::ProjectStateRequestBatchSize => "project_state.request.batch_size",