当前位置: 首页 > 知识库问答 >
问题:

无法在jaeger用户界面上获取详细的跟踪消息(使用夸克)

融宏伟
2023-03-14

运行jaeger服务器和https://github.com/quarkusio/quarkus-quickstarts/tree/master/opentracing-quickstart存储库后,我在http://localhost:16686/search.找到了跟踪,但我只找到了资源类、参数和进程名称,但跟踪详细展开中没有显示“日志”。

步骤很简单:

1、运行jaeger server<代码>docker Run--rm=true--名称erp\u jaeger\u server-e COLLECTOR\u ZIPKIN\u HTTP\u PORT=9411-p 5775:5775/udp-p 6831:6831/udp-p 6832:6832/udp-p 5778:5778-p 16686:16686-p 14268:14268-p 9411:9411 jaegertracing/all-in-one:最新

克隆示例repo并运行它https://github.com/quarkusio/quarkus-quickstarts/tree/master/opentracing-quickstart (无进一步配置)

跑-

访问<代码>http://localhost:8080/hello/

5.探索jaeger用户界面'http://localhost:16686/'

我尝试使用@Slfj,但得到了相同的结果

提前感谢。

共有2个答案

郁博学
2023-03-14

正如iabughosh所说,jaeger的主要关注点是可跟踪性、监控和性能,而不是日志记录。

无论如何,我发现使用@trackedbean注入可以在当前span中插入一个标记,该标记将打印在Jaeger UI上。本例将excpetion的前4行添加到标记seccion。(我在全局ExceptionHandler上使用它来添加有关错误的更多信息):

public abstract class MyExceptionHandler {

@Inject
io.opentracing.Tracer tracer;
/**
 * Will trace the message at jaeger metrics service, only for monitoring and profiling use, not for Logger.
 * @param e
 */
protected void monitorTrace(Exception e) {
    if(tracer!= null && e!=null) {
        StringBuffer sb = new StringBuffer();
        sb.append(e.getCause()+ "\n");
        int deep = 3;
        
        for(int i=0; i< deep;i++) {
            sb.append(e.getStackTrace()[i]+ "\n");
        }
        tracer.activeSpan().setTag("stack ",sb.toString());
    }
}

}

你会在JaegerUI看到小stacktrace。

希望有帮助

严升
2023-03-14

默认情况下,OpenTrace不会自动登录到范围日志中,只有Jaeger认为需要记录并需要跟踪的重要消息才会在那里:)。这个想法是将跟踪和日志管理之间的职责分开,检查这个GitHub讨论。

另一种方法是使用集中式日志管理和打印traceId

 类似资料:
  • Jaeger跟踪沙箱演示使用Jaeger作为跟踪服务程序,为Envoy请求跟踪提供能力。这个沙盒与上面描述的前端代理架构非常类似,但有一点不同:在返回请求响应之前,service1对service2进行API调用。这三个容器将被部署在名为envoymesh的虚拟网络中。 所有的请求都通过前端Envoy代理进行路由,该Envoy充当位于envoymesh网络边缘的反向代理角色。通过docker co

  • 我使用Spring Boot开发了一条Camel路线。现在我想使用Jaeger跟踪路线。我尝试此示例使用组件跟踪路线,但我无法获取Jaeger的踪迹。 我只能在控制台中看到它。我不清楚的一件事是在哪里添加Jaeger URL?任何工作示例都会很有帮助。

  • 我们正在开发一个用Java编写的邮件客户端。它具有相同的功能,如Outlook或雷鸟等。它直接与邮件服务器通信。此外,我们的业务规则要求我们将所有消息存储在数据库中,并且消息应该始终保持同步。我知道那不太适合IMAP,但是我们必须把所有的东西都保存在我们的数据库中。问题出现了,如何跟踪从文件夹A移动到文件夹B的IMAP消息?我们怎样才能知道这件事?如果您从A中删除一条消息,它将从A中删除,并在B中

  • 我正在使用这个库(grpc spring boot starter),所以我可以在spring boot应用程序中使用grpc功能。 我想知道如何正确地将其与Istio Jaeger跟踪集成。 我需要知道发生这种情况所需的依赖关系是什么。 我有两(2)个应用程序,一个用作gRPC客户端,一个用作gRPC服务器, 期望gRPC客户端和gRPC服务器之间的跟踪必须反映在Jaeger中。但是这并没有发生

  • 我在网上搜索这个问题的解决方案,但没有找到任何有效的解决方案。我正在尝试设置基本的Spring Boot OAuth2授权提供程序和客户端。 我按照官方的Spring Boot指令,创建了Facebook和GitHub的单点登录。然后按照说明创建安全的Spring Boot Web应用程序。 以下是记录的内容: 信息2800---[nio-9999-exec-3]O.S.B.A.S.O.R.Use