如何在 Quarkus 中启用 Jaeger JDBC 跟踪

How do I enable Jaeger JDBC tracing in Quarkus

如何在 Quarkus 中启用 Jaeger jdbc 跟踪?我已遵循 OpentracingQuarkus 指南,但没有看到任何相关信息。

我正在使用具有以下扩展的 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 个跨度。

您可以使用 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 查询作为跨度。