Просмотр исходного кода

fix(otel): message.qos override only for PUBLISH packet

- follow #14364
JimMoen 1 год назад
Родитель
Сommit
21bbf2e223
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      apps/emqx_opentelemetry/src/emqx_otel_trace.erl

+ 6 - 1
apps/emqx_opentelemetry/src/emqx_otel_trace.erl

@@ -766,7 +766,7 @@ stop_outgoing_trace(Packet, Attrs) when is_record(Packet, mqtt_packet) ->
     %% The current outgoing Packet SHOULD NOT be modified
     %% The current outgoing Packet SHOULD NOT be modified
     ok = outgoing_maybe_awaiting_next(Packet, Attrs),
     ok = outgoing_maybe_awaiting_next(Packet, Attrs),
     Ctx = get_ctx(Packet),
     Ctx = get_ctx(Packet),
-    ok = add_span_attrs(#{'message.qos' => emqx_packet:qos(Packet)}, Ctx),
+    ok = maybe_override_message_qos(Packet, Ctx),
     end_span(Ctx);
     end_span(Ctx);
 stop_outgoing_trace(Any, _Attrs) ->
 stop_outgoing_trace(Any, _Attrs) ->
     end_span(get_ctx(Any)).
     end_span(get_ctx(Any)).
@@ -816,6 +816,11 @@ outgoing_maybe_awaiting_next(_, _) ->
     %% TODO: Awaiting AUTH
     %% TODO: Awaiting AUTH
     ok.
     ok.
 
 
+maybe_override_message_qos(?PUBLISH_PACKET(QoS), Ctx) ->
+    ok = add_span_attrs(#{'message.qos' => QoS}, Ctx);
+maybe_override_message_qos(_, _Ctx) ->
+    ok.
+
 start_awaiting_trace(AwaitingType, PacketId, Packet, Attrs) ->
 start_awaiting_trace(AwaitingType, PacketId, Packet, Attrs) ->
     AwaitingCtxKey = internal_extra_key(AwaitingType, PacketId),
     AwaitingCtxKey = internal_extra_key(AwaitingType, PacketId),
     ParentCtx = get_ctx(Packet),
     ParentCtx = get_ctx(Packet),