@@ -307,57 +307,81 @@ impl Metrics {
307307        sample :  PromSample , 
308308    )  { 
309309        match  metric_type { 
310-             MetricType :: SimpleGauge ( metric_name)  => match  metric_name. as_str ( )  { 
311-                 "parseable_events_ingested"  => metrics. parseable_events_ingested  += val, 
312-                 "parseable_events_ingested_size"  => metrics. parseable_events_ingested_size  += val, 
313-                 "parseable_lifetime_events_ingested"  => { 
314-                     metrics. parseable_lifetime_events_ingested  += val
315-                 } 
316-                 "parseable_lifetime_events_ingested_size"  => { 
317-                     metrics. parseable_lifetime_events_ingested_size  += val
318-                 } 
319-                 "parseable_events_deleted"  => metrics. parseable_deleted_events_ingested  += val, 
320-                 "parseable_events_deleted_size"  => { 
321-                     metrics. parseable_deleted_events_ingested_size  += val
322-                 } 
323-                 "parseable_staging_files"  => metrics. parseable_staging_files  += val, 
324-                 "process_resident_memory_bytes"  => metrics. process_resident_memory_bytes  += val, 
325-                 _ => { } 
326-             } , 
327-             MetricType :: StorageSize ( storage_type)  => match  storage_type. as_str ( )  { 
328-                 "staging"  => metrics. parseable_storage_size . staging  += val, 
329-                 "data"  => metrics. parseable_storage_size . data  += val, 
330-                 _ => { } 
331-             } , 
310+             MetricType :: SimpleGauge ( metric_name)  => { 
311+                 Self :: process_simple_gauge ( metrics,  & metric_name,  val) 
312+             } 
313+             MetricType :: StorageSize ( storage_type)  => { 
314+                 Self :: process_storage_size ( metrics,  & storage_type,  val) 
315+             } 
332316            MetricType :: DiskUsage ( volume_type)  => { 
333-                 let  disk_usage = match  volume_type. as_str ( )  { 
334-                     "data"  => & mut  metrics. parseable_data_disk_usage , 
335-                     "staging"  => & mut  metrics. parseable_staging_disk_usage , 
336-                     "hot_tier"  => & mut  metrics. parseable_hot_tier_disk_usage , 
337-                     _ => return , 
338-                 } ; 
339- 
340-                 match  metric_name { 
341-                     "parseable_total_disk"  => disk_usage. total  = val as  u64 , 
342-                     "parseable_used_disk"  => disk_usage. used  = val as  u64 , 
343-                     "parseable_available_disk"  => disk_usage. available  = val as  u64 , 
344-                     _ => { } 
345-                 } 
317+                 Self :: process_disk_usage ( metrics,  & volume_type,  val,  metric_name) 
346318            } 
347-             MetricType :: MemoryUsage ( memory_type)  => match  memory_type. as_str ( )  { 
348-                 "total_memory"  => metrics. parseable_memory_usage . total  = val as  u64 , 
349-                 "used_memory"  => metrics. parseable_memory_usage . used  = val as  u64 , 
350-                 "total_swap"  => metrics. parseable_memory_usage . total_swap  = val as  u64 , 
351-                 "used_swap"  => metrics. parseable_memory_usage . used_swap  = val as  u64 , 
352-                 _ => { } 
353-             } , 
354-             MetricType :: CpuUsage  => { 
355-                 if  let  Some ( cpu_name)  = sample. labels . get ( "cpu_usage" )  { 
356-                     metrics
357-                         . parseable_cpu_usage 
358-                         . insert ( cpu_name. to_string ( ) ,  val) ; 
359-                 } 
319+             MetricType :: MemoryUsage ( memory_type)  => { 
320+                 Self :: process_memory_usage ( metrics,  & memory_type,  val) 
321+             } 
322+             MetricType :: CpuUsage  => Self :: process_cpu_usage ( metrics,  val,  sample) , 
323+         } 
324+     } 
325+ 
326+     fn  process_simple_gauge ( metrics :  & mut  Metrics ,  metric_name :  & str ,  val :  f64 )  { 
327+         match  metric_name { 
328+             "parseable_events_ingested"  => metrics. parseable_events_ingested  += val, 
329+             "parseable_events_ingested_size"  => metrics. parseable_events_ingested_size  += val, 
330+             "parseable_lifetime_events_ingested"  => { 
331+                 metrics. parseable_lifetime_events_ingested  += val
332+             } 
333+             "parseable_lifetime_events_ingested_size"  => { 
334+                 metrics. parseable_lifetime_events_ingested_size  += val
360335            } 
336+             "parseable_events_deleted"  => metrics. parseable_deleted_events_ingested  += val, 
337+             "parseable_events_deleted_size"  => { 
338+                 metrics. parseable_deleted_events_ingested_size  += val
339+             } 
340+             "parseable_staging_files"  => metrics. parseable_staging_files  += val, 
341+             "process_resident_memory_bytes"  => metrics. process_resident_memory_bytes  += val, 
342+             _ => { } 
343+         } 
344+     } 
345+ 
346+     fn  process_storage_size ( metrics :  & mut  Metrics ,  storage_type :  & str ,  val :  f64 )  { 
347+         match  storage_type { 
348+             "staging"  => metrics. parseable_storage_size . staging  += val, 
349+             "data"  => metrics. parseable_storage_size . data  += val, 
350+             _ => { } 
351+         } 
352+     } 
353+ 
354+     fn  process_disk_usage ( metrics :  & mut  Metrics ,  volume_type :  & str ,  val :  f64 ,  metric_name :  & str )  { 
355+         let  disk_usage = match  volume_type { 
356+             "data"  => & mut  metrics. parseable_data_disk_usage , 
357+             "staging"  => & mut  metrics. parseable_staging_disk_usage , 
358+             "hot_tier"  => & mut  metrics. parseable_hot_tier_disk_usage , 
359+             _ => return , 
360+         } ; 
361+ 
362+         match  metric_name { 
363+             "parseable_total_disk"  => disk_usage. total  = val as  u64 , 
364+             "parseable_used_disk"  => disk_usage. used  = val as  u64 , 
365+             "parseable_available_disk"  => disk_usage. available  = val as  u64 , 
366+             _ => { } 
367+         } 
368+     } 
369+ 
370+     fn  process_memory_usage ( metrics :  & mut  Metrics ,  memory_type :  & str ,  val :  f64 )  { 
371+         match  memory_type { 
372+             "total_memory"  => metrics. parseable_memory_usage . total  = val as  u64 , 
373+             "used_memory"  => metrics. parseable_memory_usage . used  = val as  u64 , 
374+             "total_swap"  => metrics. parseable_memory_usage . total_swap  = val as  u64 , 
375+             "used_swap"  => metrics. parseable_memory_usage . used_swap  = val as  u64 , 
376+             _ => { } 
377+         } 
378+     } 
379+ 
380+     fn  process_cpu_usage ( metrics :  & mut  Metrics ,  val :  f64 ,  sample :  PromSample )  { 
381+         if  let  Some ( cpu_name)  = sample. labels . get ( "cpu_usage" )  { 
382+             metrics
383+                 . parseable_cpu_usage 
384+                 . insert ( cpu_name. to_string ( ) ,  val) ; 
361385        } 
362386    } 
363387
0 commit comments