19
19
use std:: collections:: HashMap ;
20
20
use std:: sync:: Arc ;
21
21
22
+ use once_cell:: sync:: Lazy ;
22
23
use prometheus:: core:: Collector ;
23
24
use prometheus:: proto:: MetricFamily ;
24
25
use prometheus:: IntGaugeVec ;
@@ -172,15 +173,15 @@ pub fn delete_stats(stream_name: &str, format: &'static str) -> prometheus::Resu
172
173
let event_labels = event_labels ( stream_name, format) ;
173
174
let storage_size_labels = storage_size_labels ( stream_name) ;
174
175
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) ;
184
185
185
186
delete_with_label_prefix ( & EVENTS_INGESTED_DATE , & event_labels) ;
186
187
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
189
190
Ok ( ( ) )
190
191
}
191
192
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:?}\n with error- {e}" ) ;
197
+ }
198
+ }
199
+
192
200
fn delete_with_label_prefix ( metrics : & IntGaugeVec , prefix : & [ & str ] ) {
193
201
let families: Vec < MetricFamily > = metrics. collect ( ) . into_iter ( ) . collect ( ) ;
194
202
for metric in families. iter ( ) . flat_map ( |m| m. get_metric ( ) ) {
0 commit comments