为 vertx reactive 在 quarkus 上禁用 OpenTelemetry 跟踪

Disable OpenTelemetry tracing on quarkus for vertx reactive

我目前正在尝试将 openTelemetry 跟踪添加到我的 quarkus 项目中。它是一个 lambda,可以访问数据源并进行一些处理。目前,我们正在使用反应式 pgadmin,但是当我尝试在使用 quarkus-opentelemetry-exporter-otlp 导入时进行查询时,我收到此错误 class io.vertx.sqlclient.impl.tracing.QueryRequest cannot be cast to class io.vertx.core.spi.observability.HttpRequest (io.vertx.sqlclient.impl.tracing.QueryRequest and io.vertx.core.spi.observability.HttpRequest are in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @4b3ed2f0)。当 OpenTelemetry 未包含在此项目的 pom.xml 中时,此代码不会显示此错误。

我希望这个请求能够通过,或者只是关闭对顶点请求的开放跟踪。但是,我已经通读了 quarkus 文档,但不确定该怎么做。我能想到的一种方法是创建一个提供程序来创建 PgPool,因为我可以在 PGPoolConnectionOptions.

中设置 TracingPolicy.IGNORE

这是我的代码堆栈:

pom.xml
<quarkus-plugin.version>2.6.0.Final</quarkus-plugin.version>

<dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-opentelemetry-exporter-otlp</artifactId>
</dependency>
 <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-reactive-pg-client</artifactId>
        </dependency>
Code:

import io.vertx.mutiny.pgclient.PgPool;

@Inject
@ReactiveDataSource("important")
PgPool pool;

pool.preparedQuery(QUERY.sql()).executeAndAwait(...

TLDR:如何在 openetelemetry quarkus 堆栈上为顶点查询打开跟踪。

您提到的异常已在 https://github.com/quarkusio/quarkus/pull/22809 中修复,它首先在 Quarkus 2.6 中可用。3.Final