Skip to content

Commit 9d1750c

Browse files
committed
stats removal order fix
1 parent 79e5424 commit 9d1750c

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/stats.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use std::collections::HashMap;
2020
use std::sync::Arc;
2121

22+
use once_cell::sync::Lazy;
2223
use prometheus::core::Collector;
2324
use prometheus::proto::MetricFamily;
2425
use prometheus::IntGaugeVec;
@@ -172,15 +173,15 @@ pub fn delete_stats(stream_name: &str, format: &'static str) -> prometheus::Resu
172173
let event_labels = event_labels(stream_name, format);
173174
let storage_size_labels = storage_size_labels(stream_name);
174175

175-
EVENTS_INGESTED.remove_label_values(&event_labels)?;
176-
EVENTS_INGESTED_SIZE.remove_label_values(&event_labels)?;
177-
STORAGE_SIZE.remove_label_values(&storage_size_labels)?;
178-
EVENTS_DELETED.remove_label_values(&event_labels)?;
179-
EVENTS_DELETED_SIZE.remove_label_values(&event_labels)?;
180-
DELETED_EVENTS_STORAGE_SIZE.remove_label_values(&storage_size_labels)?;
181-
LIFETIME_EVENTS_INGESTED.remove_label_values(&event_labels)?;
182-
LIFETIME_EVENTS_INGESTED_SIZE.remove_label_values(&event_labels)?;
183-
LIFETIME_EVENTS_STORAGE_SIZE.remove_label_values(&storage_size_labels)?;
176+
remove_label_values(&EVENTS_INGESTED, &event_labels);
177+
remove_label_values(&EVENTS_INGESTED_SIZE, &event_labels);
178+
remove_label_values(&STORAGE_SIZE, &storage_size_labels);
179+
remove_label_values(&EVENTS_DELETED, &event_labels);
180+
remove_label_values(&EVENTS_DELETED_SIZE, &event_labels);
181+
remove_label_values(&DELETED_EVENTS_STORAGE_SIZE, &storage_size_labels);
182+
remove_label_values(&LIFETIME_EVENTS_INGESTED, &event_labels);
183+
remove_label_values(&LIFETIME_EVENTS_INGESTED_SIZE, &event_labels);
184+
remove_label_values(&LIFETIME_EVENTS_STORAGE_SIZE, &storage_size_labels);
184185

185186
delete_with_label_prefix(&EVENTS_INGESTED_DATE, &event_labels);
186187
delete_with_label_prefix(&EVENTS_INGESTED_SIZE_DATE, &event_labels);
@@ -189,6 +190,13 @@ pub fn delete_stats(stream_name: &str, format: &'static str) -> prometheus::Resu
189190
Ok(())
190191
}
191192

193+
#[inline]
194+
fn remove_label_values(lazy_static: &Lazy<IntGaugeVec>, event_labels: &[&str]) {
195+
if let Err(e) = lazy_static.remove_label_values(event_labels) {
196+
warn!("Unable to delete labels- {event_labels:?}\nwith error- {e}");
197+
}
198+
}
199+
192200
fn delete_with_label_prefix(metrics: &IntGaugeVec, prefix: &[&str]) {
193201
let families: Vec<MetricFamily> = metrics.collect().into_iter().collect();
194202
for metric in families.iter().flat_map(|m| m.get_metric()) {

0 commit comments

Comments
 (0)