Skip to content

Commit 366871e

Browse files
RoadRunnralbertored
authored andcommitted
fixup: deterministic datapoint order in eunit tests
1 parent cc7f9bf commit 366871e

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

apps/opentelemetry_experimental/src/otel_metric_exporter_prometheus.erl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121
-record(opts,{
2222
add_scope_info :: boolean(),
23-
add_total_suffix :: boolean()
23+
add_total_suffix :: boolean(),
24+
order :: maps:iterator_order()
2425
}).
2526

2627
-export([init/1,
@@ -42,7 +43,8 @@
4243
init(Opts) ->
4344
{ok, #opts{
4445
add_scope_info = maps:get(add_scope_info, Opts, true),
45-
add_total_suffix = maps:get(add_total_suffix, Opts, true)
46+
add_total_suffix = maps:get(add_total_suffix, Opts, true),
47+
order = maps:get(order, Opts, undefined)
4648
}}.
4749

4850
export(metrics, Metrics, Resource, Opts) ->
@@ -54,7 +56,7 @@ force_flush() ->
5456
shutdown(_) ->
5557
ok.
5658

57-
parse_metrics(Metrics, Resource, Opts) ->
59+
parse_metrics(Metrics, Resource, #opts{order=Order} = Opts) ->
5860
ParsedMetrics = lists:foldl(
5961
fun(#metric{scope=Scope} = Metric, Acc) ->
6062
Acc1 = case Opts of
@@ -74,7 +76,8 @@ parse_metrics(Metrics, Resource, Opts) ->
7476
TargetInfoMetric = fake_info_metric(target, #instrumentation_scope{}, ResourceAttributes, <<"Target metadata">>),
7577
ParsedMetrics1 = parse_and_accumulate_metric(TargetInfoMetric, ParsedMetrics, Opts),
7678

77-
maps:fold(fun(_Name, #{preamble := Preamble, data := Data}, Acc) -> [[Preamble | Data] | Acc] end, [], ParsedMetrics1).
79+
ParsedMetricsIter = maps:iterator(ParsedMetrics1, Order),
80+
maps:fold(fun(_Name, #{preamble := Preamble, data := Data}, Acc) -> [[Preamble | Data] | Acc] end, [], ParsedMetricsIter).
7881

7982
parse_and_accumulate_metric(#metric{name=Name, description=Description, data=Data, unit=Unit, scope=Scope}, Acc, Opts) ->
8083
FixedUnit = fix_unit(Unit),

0 commit comments

Comments
 (0)