@@ -273,57 +273,81 @@ impl Metrics {
273273        sample :  PromSample , 
274274    )  { 
275275        match  metric_type { 
276-             MetricType :: SimpleGauge ( metric_name)  => match  metric_name. as_str ( )  { 
277-                 "parseable_events_ingested"  => metrics. parseable_events_ingested  += val, 
278-                 "parseable_events_ingested_size"  => metrics. parseable_events_ingested_size  += val, 
279-                 "parseable_lifetime_events_ingested"  => { 
280-                     metrics. parseable_lifetime_events_ingested  += val
281-                 } 
282-                 "parseable_lifetime_events_ingested_size"  => { 
283-                     metrics. parseable_lifetime_events_ingested_size  += val
284-                 } 
285-                 "parseable_events_deleted"  => metrics. parseable_deleted_events_ingested  += val, 
286-                 "parseable_events_deleted_size"  => { 
287-                     metrics. parseable_deleted_events_ingested_size  += val
288-                 } 
289-                 "parseable_staging_files"  => metrics. parseable_staging_files  += val, 
290-                 "process_resident_memory_bytes"  => metrics. process_resident_memory_bytes  += val, 
291-                 _ => { } 
292-             } , 
293-             MetricType :: StorageSize ( storage_type)  => match  storage_type. as_str ( )  { 
294-                 "staging"  => metrics. parseable_storage_size . staging  += val, 
295-                 "data"  => metrics. parseable_storage_size . data  += val, 
296-                 _ => { } 
297-             } , 
276+             MetricType :: SimpleGauge ( metric_name)  => { 
277+                 Self :: process_simple_gauge ( metrics,  & metric_name,  val) 
278+             } 
279+             MetricType :: StorageSize ( storage_type)  => { 
280+                 Self :: process_storage_size ( metrics,  & storage_type,  val) 
281+             } 
298282            MetricType :: DiskUsage ( volume_type)  => { 
299-                 let  disk_usage = match  volume_type. as_str ( )  { 
300-                     "data"  => & mut  metrics. parseable_data_disk_usage , 
301-                     "staging"  => & mut  metrics. parseable_staging_disk_usage , 
302-                     "hot_tier"  => & mut  metrics. parseable_hot_tier_disk_usage , 
303-                     _ => return , 
304-                 } ; 
305- 
306-                 match  metric_name { 
307-                     "parseable_total_disk"  => disk_usage. total  = val as  u64 , 
308-                     "parseable_used_disk"  => disk_usage. used  = val as  u64 , 
309-                     "parseable_available_disk"  => disk_usage. available  = val as  u64 , 
310-                     _ => { } 
311-                 } 
283+                 Self :: process_disk_usage ( metrics,  & volume_type,  val,  metric_name) 
312284            } 
313-             MetricType :: MemoryUsage ( memory_type)  => match  memory_type . as_str ( )   { 
314-                 "total_memory"  =>  metrics. parseable_memory_usage . total  =  val  as   u64 , 
315-                  "used_memory"  => metrics . parseable_memory_usage . used  = val  as   u64 , 
316-                  "total_swap"   => metrics. parseable_memory_usage . total_swap  =  val  as   u64 , 
317-                  "used_swap"  => metrics . parseable_memory_usage . used_swap  = val  as   u64 , 
318-                 _ =>  { } 
319-              } , 
320-              MetricType :: CpuUsage  =>  { 
321-                  if   let   Some ( cpu_name )  = sample . labels . get ( "cpu_usage" )  { 
322-                     metrics 
323-                          . parseable_cpu_usage 
324-                          . insert ( cpu_name . to_string ( ) ,  val ) ; 
325-                 } 
285+             MetricType :: MemoryUsage ( memory_type)  => { 
286+                 Self :: process_memory_usage ( metrics,   & memory_type ,  val) 
287+             } 
288+             MetricType :: CpuUsage   => Self :: process_cpu_usage ( metrics,   val,  sample ) , 
289+         } 
290+     } 
291+ 
292+     fn   process_simple_gauge ( metrics :   & mut   Metrics ,   metric_name :   & str ,   val :   f64 )  { 
293+         match  metric_name  { 
294+             "parseable_events_ingested"  => metrics . parseable_events_ingested  += val , 
295+             "parseable_events_ingested_size"  => metrics . parseable_events_ingested_size  += val , 
296+             "parseable_lifetime_events_ingested"  =>  { 
297+                 metrics . parseable_lifetime_events_ingested  += val 
326298            } 
299+             "parseable_lifetime_events_ingested_size"  => { 
300+                 metrics. parseable_lifetime_events_ingested_size  += val
301+             } 
302+             "parseable_events_deleted"  => metrics. parseable_deleted_events_ingested  += val, 
303+             "parseable_events_deleted_size"  => { 
304+                 metrics. parseable_deleted_events_ingested_size  += val
305+             } 
306+             "parseable_staging_files"  => metrics. parseable_staging_files  += val, 
307+             "process_resident_memory_bytes"  => metrics. process_resident_memory_bytes  += val, 
308+             _ => { } 
309+         } 
310+     } 
311+ 
312+     fn  process_storage_size ( metrics :  & mut  Metrics ,  storage_type :  & str ,  val :  f64 )  { 
313+         match  storage_type { 
314+             "staging"  => metrics. parseable_storage_size . staging  += val, 
315+             "data"  => metrics. parseable_storage_size . data  += val, 
316+             _ => { } 
317+         } 
318+     } 
319+ 
320+     fn  process_disk_usage ( metrics :  & mut  Metrics ,  volume_type :  & str ,  val :  f64 ,  metric_name :  & str )  { 
321+         let  disk_usage = match  volume_type { 
322+             "data"  => & mut  metrics. parseable_data_disk_usage , 
323+             "staging"  => & mut  metrics. parseable_staging_disk_usage , 
324+             "hot_tier"  => & mut  metrics. parseable_hot_tier_disk_usage , 
325+             _ => return , 
326+         } ; 
327+ 
328+         match  metric_name { 
329+             "parseable_total_disk"  => disk_usage. total  = val as  u64 , 
330+             "parseable_used_disk"  => disk_usage. used  = val as  u64 , 
331+             "parseable_available_disk"  => disk_usage. available  = val as  u64 , 
332+             _ => { } 
333+         } 
334+     } 
335+ 
336+     fn  process_memory_usage ( metrics :  & mut  Metrics ,  memory_type :  & str ,  val :  f64 )  { 
337+         match  memory_type { 
338+             "total_memory"  => metrics. parseable_memory_usage . total  = val as  u64 , 
339+             "used_memory"  => metrics. parseable_memory_usage . used  = val as  u64 , 
340+             "total_swap"  => metrics. parseable_memory_usage . total_swap  = val as  u64 , 
341+             "used_swap"  => metrics. parseable_memory_usage . used_swap  = val as  u64 , 
342+             _ => { } 
343+         } 
344+     } 
345+ 
346+     fn  process_cpu_usage ( metrics :  & mut  Metrics ,  val :  f64 ,  sample :  PromSample )  { 
347+         if  let  Some ( cpu_name)  = sample. labels . get ( "cpu_usage" )  { 
348+             metrics
349+                 . parseable_cpu_usage 
350+                 . insert ( cpu_name. to_string ( ) ,  val) ; 
327351        } 
328352    } 
329353
0 commit comments