@@ -661,6 +661,27 @@ create_mf_test() ->
661661 prometheus_model_helpers :create_mf (<<" fast_path" >>, <<" help" >>, gauge , [PrebuiltMetric ])
662662 ).
663663
664+ % % Test that prometheus_metric:metrics/2 normalizes old-format ETS entries
665+ % % (2-tuple {Labels, Help}) into the new 3-tuple {Labels, HelpBin, NameBin}.
666+ % % This covers the backward-compat clause in normalize_mf_row/1, reachable
667+ % % during hot upgrades from nodes that predate the pre-computed binary change.
668+ normalize_mf_row_backward_compat_test () ->
669+ Table = ? PROMETHEUS_GAUGE_TABLE ,
670+ Registry = test_compat_registry ,
671+ Name = test_compat_metric ,
672+ Labels = [label_a ],
673+ Help = " Old format help" ,
674+ OldTuple = {{Registry , mf , Name }, {Labels , Help }, [], undefined , undefined },
675+ ets :insert (Table , OldTuple ),
676+ try
677+ [[Name , {Labels , HelpBin , NameBin }, [], undefined , undefined ]] =
678+ prometheus_metric :metrics (Table , Registry ),
679+ ? assertEqual (<<" Old format help" >>, HelpBin ),
680+ ? assertEqual (<<" test_compat_metric" >>, NameBin )
681+ after
682+ ets :delete (Table , {Registry , mf , Name })
683+ end .
684+
664685collect_metrics (g1 , _Data ) ->
665686 prometheus_model_helpers :gauge_metric (g1_value ).
666687
0 commit comments