@@ -362,22 +362,7 @@ value(Registry, Name, LabelValues) ->
362362values (Registry , Name ) ->
363363 case prometheus_metric :check_mf_exists (? TABLE , Registry , Name ) of
364364 false -> [];
365- MF ->
366- DU = prometheus_metric :mf_duration_unit (MF ),
367- Labels = prometheus_metric :mf_labels (MF ),
368- Bounds = prometheus_metric :mf_data (MF ),
369-
370- MFValues = load_all_values (Registry , Name , Bounds ),
371- LabelValuesMap = reduce_label_values (MFValues ),
372- maps :fold (
373- fun (LabelValues , [ISum , FSum | BCounters ], L ) ->
374- Bounds1 = lists :zipwith (fun (Bound , Bucket ) ->
375- {Bound , Bucket }
376- end ,
377- Bounds , BCounters ),
378- [{lists :zip (Labels , LabelValues ), Bounds1 ,
379- prometheus_time :maybe_convert_to_du (DU , ISum + FSum )}|L ]
380- end , [], LabelValuesMap )
365+ MF -> mf_values (Registry , Name , MF )
381366 end .
382367
383368% % @equiv buckets(default, Name, [])
@@ -419,7 +404,7 @@ collect_metrics(Name, {CLabels, Labels, Registry, DU, Bounds}) ->
419404 LabelValuesMap = reduce_label_values (MFValues ),
420405 maps :fold (
421406 fun (LabelValues , Stat , L ) ->
422- [create_histogram_metric (CLabels , Labels , DU , Bounds , LabelValues , Stat )|L ]
407+ [create_histogram_metric (CLabels , Labels , DU , Bounds , LabelValues , Stat )|L ]
423408 end , [], LabelValuesMap ).
424409
425410% %====================================================================
@@ -568,11 +553,28 @@ key(Registry, Name, LabelValues) ->
568553reduce_label_values (MFValues ) ->
569554 lists :foldl (
570555 fun ([Labels | V ], ResAcc ) when is_map_key (Labels , ResAcc ) ->
571- PrevSum = maps :get (Labels , ResAcc ),
572- ResAcc #{Labels => [lists :sum (C ) || C <- transpose ([PrevSum , V ])]};
556+ PrevSum = maps :get (Labels , ResAcc ),
557+ ResAcc #{Labels => [lists :sum (C ) || C <- transpose ([PrevSum , V ])]};
573558 ([Labels | V ], ResAcc ) ->
574- ResAcc #{Labels => V }
559+ ResAcc #{Labels => V }
575560 end , #{}, MFValues ).
576561
562+ mf_values (Registry , Name , MF ) ->
563+ DU = prometheus_metric :mf_duration_unit (MF ),
564+ Labels = prometheus_metric :mf_labels (MF ),
565+ Bounds = prometheus_metric :mf_data (MF ),
566+
567+ MFValues = load_all_values (Registry , Name , Bounds ),
568+ LabelValuesMap = reduce_label_values (MFValues ),
569+ maps :fold (
570+ fun (LabelValues , [ISum , FSum | BCounters ], L ) ->
571+ Bounds1 = lists :zipwith (fun (Bound , Bucket ) ->
572+ {Bound , Bucket }
573+ end ,
574+ Bounds , BCounters ),
575+ [{lists :zip (Labels , LabelValues ), Bounds1 ,
576+ prometheus_time :maybe_convert_to_du (DU , ISum + FSum )}|L ]
577+ end , [], LabelValuesMap ).
578+
577579create_histogram (Name , Help , Data ) ->
578580 prometheus_model_helpers :create_mf (Name , Help , histogram , ? MODULE , Data ).
0 commit comments