2

如何启用Jaeger jdbc跟踪Quarkus?我已按照Quarkus指南进行操作Opentracing,但没有看到任何有关此的信息。

我正在使用Quarkus具有以下扩展名的 v0.21.2:

 -quarkus-smallrye-opentracing
 -quarkus-resteasy
 -quarkus-resteasy-jackson
 -quarkus-hibernate-orm-panache
 -quarkus-jdbc-postgresql
 -quarkus-smallrye-openapi

我的代码只是一个基本的 Rest 端点,它调用我实体的 Panache CRUD 操作。

任何帮助表示赞赏。

我尝试了以下方法,但没有奏效:

 - added @Traced to my entity
 - changed quarkus.jaeger.sampler-type=const into quarkus.jaeger.sampler-type=remote

我期望的Jaeger是,1 个跟踪有 2 个跨度,一个用于 REST 调用,另一个用于JDBC调用。

但我看到的只是 REST 调用的 1 个跨度。

4

1 回答 1

3

您可以使用 opentracing java-jdbc扩展,它将在 Quarkus 中工作(我没有测试原生模式)。

您需要使用 0.0.12 版本,因为最新版本基于 Opentracing 0.33,但 Quarkus 使用 0.31 版本。

  1. 将依赖项添加到您的 pom.xml:

    <dependency>
      <groupId>io.opentracing.contrib</groupId>
      <artifactId>opentracing-jdbc</artifactId>
      <version>0.0.12</version>
    </dependency>
    
  2. 更新您的 application.properties 以使用 opentracing-jdbc 驱动程序,以下是 Postgres 数据库:

quarkus.datasource.url = jdbc:tracing:postgresql://localhost:5433/mydatabase
quarkus.datasource.driver = io.opentracing.contrib.jdbc.TracingDriver
quarkus.hibernate-orm.dialect = org.hibernate.dialect.PostgreSQLDialect

然后,您将在 Jaeger 中将 SQL 查询视为跨度。

于 2019-09-09T14:02:34.203 回答