diff --git a/apps/emqx/src/emqx_external_trace.erl b/apps/emqx/src/emqx_external_trace.erl index 7f8823903..fb32b8248 100644 --- a/apps/emqx/src/emqx_external_trace.erl +++ b/apps/emqx/src/emqx_external_trace.erl @@ -39,12 +39,12 @@ -define(PROVIDER, {?MODULE, trace_provider}). --define(with_provider(IfRegisitered, IfNotRegisired), +-define(with_provider(IfRegistered, IfNotRegistered), case persistent_term:get(?PROVIDER, undefined) of undefined -> - IfNotRegisired; + IfNotRegistered; Provider -> - Provider:IfRegisitered + Provider:IfRegistered end ). diff --git a/apps/emqx_opentelemetry/rebar.config b/apps/emqx_opentelemetry/rebar.config index 383ce1ba0..3f215ff40 100644 --- a/apps/emqx_opentelemetry/rebar.config +++ b/apps/emqx_opentelemetry/rebar.config @@ -3,13 +3,13 @@ {deps, [{emqx, {path, "../emqx"}} %% trace - , {opentelemetry_api, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.3-emqx"}, "apps/opentelemetry_api"}} - , {opentelemetry, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.3-emqx"}, "apps/opentelemetry"}} + , {opentelemetry_api, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.4-emqx"}, "apps/opentelemetry_api"}} + , {opentelemetry, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.4-emqx"}, "apps/opentelemetry"}} %% log metrics - , {opentelemetry_experimental, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.3-emqx"}, "apps/opentelemetry_experimental"}} - , {opentelemetry_api_experimental, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.3-emqx"}, "apps/opentelemetry_api_experimental"}} + , {opentelemetry_experimental, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.4-emqx"}, "apps/opentelemetry_experimental"}} + , {opentelemetry_api_experimental, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.4-emqx"}, "apps/opentelemetry_api_experimental"}} %% export - , {opentelemetry_exporter, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.3-emqx"}, "apps/opentelemetry_exporter"}} + , {opentelemetry_exporter, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.4-emqx"}, "apps/opentelemetry_exporter"}} ]}. {edoc_opts, [{preprocess, true}]}. diff --git a/apps/emqx_opentelemetry/src/emqx_otel_metrics.erl b/apps/emqx_opentelemetry/src/emqx_otel_metrics.erl index 9ca1c5deb..7d3c9fa69 100644 --- a/apps/emqx_opentelemetry/src/emqx_otel_metrics.erl +++ b/apps/emqx_opentelemetry/src/emqx_otel_metrics.erl @@ -102,12 +102,12 @@ cleanup() -> safe_stop_default_metrics() -> try - _ = opentelemetry_experimental:stop_default_metrics() + _ = opentelemetry_experimental:stop_default_metrics(), + ok catch %% noramal scenario, metrics supervisor is not started exit:{noproc, _} -> ok - end, - ok. + end. create_metric_views() -> Meter = opentelemetry_experimental:get_meter(), diff --git a/apps/emqx_opentelemetry/src/emqx_otel_trace.erl b/apps/emqx_opentelemetry/src/emqx_otel_trace.erl index 0c78f0abd..5220f1e8d 100644 --- a/apps/emqx_opentelemetry/src/emqx_otel_trace.erl +++ b/apps/emqx_opentelemetry/src/emqx_otel_trace.erl @@ -37,7 +37,6 @@ -include_lib("opentelemetry_api/include/otel_tracer.hrl"). -define(EMQX_OTEL_CTX, otel_ctx). -%% NOTE: it's possible to use trace_flags to set is_sampled flag -define(IS_ENABLED, emqx_enable). -define(USER_PROPERTY, 'User-Property'). @@ -115,13 +114,11 @@ trace_process_publish(Packet, Channel, ProcessFun) -> Ctx = otel_tracer:set_current_span(RootCtx1, SpanCtx), %% put ctx to packet, so it can be further propagated Packet1 = put_ctx_to_packet(Ctx, Packet), - %% TODO: consider getting rid of propagating Ctx through process dict as it's anyway seems to have - %% very limited usage - otel_ctx:attach(Ctx), + _ = otel_ctx:attach(Ctx), try ProcessFun(Packet1, Channel) after - ?end_span(), + _ = ?end_span(), clear() end end. @@ -261,7 +258,8 @@ clear() -> safe_stop_default_tracer() -> try - _ = opentelemetry:stop_default_tracer_provider() + _ = opentelemetry:stop_default_tracer_provider(), + ok catch %% noramal scenario, opentelemetry supervisor is not started exit:{noproc, _} -> ok