Skip to content

Commit

Permalink
feat(spooler): Add metric to track cached envelopes
Browse files Browse the repository at this point in the history
  • Loading branch information
iambriccardo committed Oct 9, 2024
1 parent 4b58953 commit 9213542
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
12 changes: 12 additions & 0 deletions relay-server/src/services/buffer/envelope_repository/sqlite.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ impl SqliteEnvelopeRepository {
.push(envelope);

self.cached_envelopes_size += 1;
relay_statsd::metric!(
histogram(RelayHistograms::BufferCachedEnvelopes) = self.cached_envelopes_size
);

Ok(())
}
Expand Down Expand Up @@ -127,6 +130,9 @@ impl SqliteEnvelopeRepository {
}

self.cached_envelopes_size += envelopes.len() as u64;
relay_statsd::metric!(
histogram(RelayHistograms::BufferCachedEnvelopes) = self.cached_envelopes_size
);
self.envelope_stacks
.entry(project_key_pair)
.or_default()
Expand Down Expand Up @@ -154,6 +160,9 @@ impl SqliteEnvelopeRepository {
if let Some(envelope) = envelope {
// We only decrement the counter when removing data from the in memory buffer.
self.cached_envelopes_size -= 1;
relay_statsd::metric!(
histogram(RelayHistograms::BufferCachedEnvelopes) = self.cached_envelopes_size
);
return Ok(Some(envelope));
}

Expand Down Expand Up @@ -296,6 +305,9 @@ impl SqliteEnvelopeRepository {
let envelope_iter = self.envelope_stacks.values_mut().flat_map(|e| {
e.check_disk = true;
self.cached_envelopes_size -= e.cached_envelopes.len() as u64;
relay_statsd::metric!(
histogram(RelayHistograms::BufferCachedEnvelopes) = self.cached_envelopes_size
);
relay_statsd::metric!(
histogram(RelayHistograms::BufferInMemoryEnvelopesPerKeyPair) =
e.cached_envelopes.len() as u64
Expand Down
3 changes: 3 additions & 0 deletions relay-server/src/statsd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ pub enum RelayHistograms {
BufferBackpressureEnvelopesCount,
/// Number of envelopes in the buffer per key pair of projects.
BufferInMemoryEnvelopesPerKeyPair,
/// Number of cached envelopes in the buffer.
BufferCachedEnvelopes,
/// The number of batches emitted per partition.
BatchesPerPartition,
/// The number of buckets in a batch emitted.
Expand Down Expand Up @@ -314,6 +316,7 @@ impl HistogramMetric for RelayHistograms {
RelayHistograms::BufferInMemoryEnvelopesPerKeyPair => {
"buffer.in_memory_envelopes_per_key_pair"
}
RelayHistograms::BufferCachedEnvelopes => "buffer.cached_envelopes",
RelayHistograms::ProjectStatePending => "project_state.pending",
RelayHistograms::ProjectStateAttempts => "project_state.attempts",
RelayHistograms::ProjectStateRequestBatchSize => "project_state.request.batch_size",
Expand Down

0 comments on commit 9213542

Please sign in to comment.