2.93. OpenTelemetry
使用 OpenTelemetry 的分布式追踪
2.93.1. 什么是内部 复制链接链接已复制到粘贴板!
有关用法和配置详情,请参阅上述链接。
2.93.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-opentelemetry</artifactId>
</dependency>
2.93.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:*
不需要使用 OpenTelemetry 代理 ,也不推荐使用。Quarkus 扩展及其提供的库直接检测。另外,代理也无法在原生模式下工作。
2.93.3.1. Exporters 复制链接链接已复制到粘贴板!
Quarkus OpenTelemetry 默认为 OpenTelemetry 中定义的标准 OTLP exporter。额外的导出器将在 Quarkiverse quarkus-opentelemetry-exporter 项目中提供。
2.93.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.93.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | default |
|---|---|---|
|
设置是否需要编码标头名称。当 OpenTelemetry propagators 可能以与目标系统不兼容的格式设置标头名称值时,可以使用它。例如,对于规范强制标头名称是有效的 Java 标识符的 JMS。 |
|
|
|
设置是否为与给定逗号分隔模式匹配的端点 URI 或 Processor id 禁用追踪。模式可以采用以下格式: 1.端点 URI 上完全匹配。E.g platform-http:/some/path 2.通配符匹配。例如 platform-http:* 3.与端点 URI 匹配的正则表达式。例如 platform-http:/prefix/.* |
| |
|
设置是否为每个 Camel Processor 创建新的 OpenTelemetry span。使用 excludePatterns 属性来过滤 Processors。 |
|
|
在构建时修复的配置属性。所有其他配置属性可在运行时覆盖。