Skip to content

Commit

Permalink
Add b3multi option to OTEL_PROPAGATORS
Browse files Browse the repository at this point in the history
According to [OTEL Spec][1] there are `b3` and `b3multi`. The latter is
supposed to be used when [Multi B3 format][2] is used. This is exactly
what b3_propagators() currently is doing.

[1]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md#general-sdk-configuration
[2]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/api-propagators.md#b3-extract
  • Loading branch information
indrekj committed Sep 10, 2021
1 parent 67f02df commit 7a68b5c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 2 additions & 0 deletions apps/opentelemetry/src/otel_configuration.erl
Expand Up @@ -174,6 +174,8 @@ transform(propagators, PropagatorsString) when is_list(PropagatorsString) ->

transform(propagator, "tracecontext") ->
fun otel_tracer_default:w3c_propagators/0;
transform(propagator, "b3multi") ->
fun otel_tracer_default:b3_propagators/0;
transform(propagator, "baggage") ->
fun otel_baggage:get_text_map_propagators/0;
transform(propagator, Propagator) ->
Expand Down
16 changes: 15 additions & 1 deletion apps/opentelemetry/test/otel_configuration_SUITE.erl
Expand Up @@ -16,7 +16,8 @@
all() ->
[empty_os_environment, sampler, sampler_parent_based, sampler_parent_based_zero,
sampler_trace_id, sampler_trace_id_default, sampler_parent_based_one,
log_level, propagators, otlp_exporter, jaeger_exporter, zipkin_exporter, none_exporter].
log_level, propagators, propagators_b3multi, otlp_exporter, jaeger_exporter,
zipkin_exporter, none_exporter].

init_per_testcase(empty_os_environment, Config) ->
Vars = [],
Expand All @@ -32,6 +33,12 @@ init_per_testcase(propagators, Config) ->

setup_env(Vars),

[{os_vars, Vars} | Config];
init_per_testcase(propagators_b3multi, Config) ->
Vars = [{"OTEL_PROPAGATORS", "b3multi"}],

setup_env(Vars),

[{os_vars, Vars} | Config];
init_per_testcase(sampler, Config) ->
Vars = [{"OTEL_TRACES_SAMPLER", "parentbased_always_off"}],
Expand Down Expand Up @@ -168,6 +175,13 @@ propagators(_Config) ->

ok.

propagators_b3multi(_Config) ->
?assertIsSubset([{log_level, error},
{propagators, [fun otel_tracer_default:b3_propagators/0]}],
otel_configuration:merge_with_os([{log_level, error}])),

ok.

otlp_exporter(_Config) ->
?assertMatch({traces_exporter, {opentelemetry_exporter, #{}}},
lists:keyfind(traces_exporter, 1, otel_configuration:merge_with_os([]))),
Expand Down

0 comments on commit 7a68b5c

Please sign in to comment.