我使用“DataDog”版本0.93.0lib来使用DataDog跟踪我的方法。
我正在使用spring来使用消息。我想要的是搜索DataDog中的服务,并将JMS作为跟踪来使用,但我只能看到HTTP。
我有一个服务器,通过HTTP请求在队列中发布一条消息,以便另一个服务可以使用它。在这种情况下,由于跟踪是从HTTP请求启动的,所以我能够看到整个链、请求的开始和消息的消耗。但是,如果我使用使用消息的服务,我就看不到JMS中的任何跟踪。
另一件事是,在上面的情况下,在火焰图中,使用的服务有副标题"jms“,而不是服务名称(我在span标记中更正的服务名称)。
如何使DataDog将span显示为服务中的跟踪?
发布于 2022-02-10 15:59:37
Datadog不会使用@Trace自动完成此操作。我要做的是手工创建一个JMS方法的span,并设置标记"service.name“。
@JmsListerner(...)
@Trace
public void receiveMessage(Message message) {
var span = GlobalTracer.get().activeSpan();
if (span != null) {
span.setTag(DDTags.SERVICE_NAME, "servie-name"); // this is the same as "service.name"
}
try {
...
} finally {
if (span != null) span.finish();
}
}https://stackoverflow.com/questions/71021939
复制相似问题