2.88. OpenTelemetry


使用 OpenTelemetry 的分布式追踪

2.88.1. 什么是内部

有关用法和配置详情,请参阅上述链接。

2.88.2. Maven 协调

在 code.quarkus.redhat.com 上使用此扩展创建新项目

或者将协调添加到现有项目中:

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-opentelemetry</artifactId>
</dependency>

2.88.3. 使用方法

扩展会自动创建 Camel OpenTelemetryTracer,并将其绑定到 Camel registry。

要将捕获的 trace 发送到追踪系统,您需要在 application.properties 中配置一些属性,如下所示。

# Identifier for the origin of spans created by the application
quarkus.application.name=my-camel-application

# OTLP exporter endpoint
quarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://localhost:4317

如需完整的配置选项列表,请参阅 Quarkus OpenTelemetry 指南

通过在 application.properties 中配置名为 quarkus.camel.opentelemetry.exclude-patterns 的属性,可以从追踪中排除路由端点。例如:

# Exclude all direct & netty-http endpoints from tracing
quarkus.camel.opentelemetry.exclude-patterns=direct:*,netty-http:*

2.88.3.1. Exporters

Quarkus OpenTelemetry 默认为 OpenTelemetry 中定义的标准 OTLP exporter。额外的导出器将在 Quarkiverse quarkus-opentelemetry-exporter 项目中提供。

2.88.3.2. 追踪 CDI bean 方法执行

当检测从 Camel 路由执行 CDI bean 方法时,您应该使用 io.opentelemetry.extension.annotations.WithSpan 标注此类方法。标注了 @WithSpan 的方法将创建一个新的 Span,并与当前的 Trace 上下文建立任何必要的关系。

例如,若要检测 Camel 路由中的 CDI bean,首先要确保使用 @WithTrace 标注适当的方法。

@ApplicationScoped
@Named("myBean")
public class MyBean {
    @WithSpan
    public String greet() {
        return "Hello World!";
    }
}

接下来,在 Camel 路由中使用 bean。

重要

为确保记录的 span 序列正确,您必须使用 full to ("bean:") 端点 URI,而不是简短的 .bean () EIP DSL 方法。

public class MyRoutes extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("direct:executeBean")
                .to("bean:myBean?method=greet");
    }
}

Quarkus OpenTelemetry 指南中的 CDI 检测的更多信息。

2.88.4. 其他 Camel Quarkus 配置

Expand
配置属性类型default

quarkus.camel.opentelemetry.encoding

设置是否需要编码标头名称。当 OpenTelemetry propagators 可能以与目标系统不兼容的格式设置标头名称值时,可以使用它。例如,对于规范强制标头名称是有效的 Java 标识符的 JMS。

布尔值

false

quarkus.camel.opentelemetry.exclude-patterns

设置是否为与给定逗号分隔模式匹配的端点 URI 或 Processor id 禁用追踪。模式可以采用以下格式:

1.端点 URI 上完全匹配。例如 platform-http:/some/path

2.通配符匹配。例如 platform-http:*

3.与端点 URI 匹配的正则表达式。例如 platform-http:/prefix/.*

字符串

 

quarkus.camel.opentelemetry.trace-processors

设置是否为每个 Camel Processor 创建新的 OpenTelemetry span。使用 excludePatterns 属性来过滤 Processors。

布尔值

false

在构建时修复的配置属性。所有其他配置属性可在运行时覆盖。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部