第 255 章 OpenTracing 组件
可作为 Camel 2.19 提供
从 Camel 2.21 开始,需要使用与 OpenTracing Java API 版本 0.31 或更高版本兼容的 OpenTracing 错误跟踪器。
camel-opentracing 组件用于使用 OpenTracing 进行追踪和传入和传出的 Camel 消息。
事件(span)捕获用于传入和发送到 Camel 的传出消息。
如需受支持的 tracers 列表,请参阅 OpenTracing 网站。
255.1. 配置
OpenTracing 跟踪器的配置属性有:
选项 | 默认值 | 描述 |
---|---|---|
excludePatterns | 设置 exclude 模式,它将为与 模式匹配的 Camel 消息禁用追踪。内容是一个 Set<String>,其中键是一个模式。该模式使用来自 Intercept 的规则。 |
可以将 OpenTracing 跟踪器配置为为 Camel 应用提供分布式追踪方法:
255.1.1. explicit
在您的 POM 中包含 camel-opentracing
组件,以及与所选 OpenTracing 兼容 Tracer 关联的特定依赖项。
若要显式配置 OpenTracing 支持,可实例化 OpenTracingTracer
并初始化 camel 上下文。您可以选择指定一个 Tracer
,或使用 Registry
或 ServiceLoader
隐式发现它。
OpenTracingTracer ottracer = new OpenTracingTracer(); // By default it uses a Noop Tracer, but you can override it with a specific OpenTracing implementation. ottracer.setTracer(...); // And then initialize the context ottracer.init(camelContext);
若要在 XML 中使用 OpenTracingTracer,您需要做的一点就是定义 OpenTracing tracer Bean。Camel 将自动发现并使用它们。
<bean id="tracer" class="..."/> <bean id="ottracer" class="org.apache.camel.opentracing.OpenTracingTracer"> <property name="tracer" ref="tracer"/> </bean>
255.1.2. Spring Boot
如果使用 Spring Boot,可以添加 camel-opentracing-starter
依赖项,并使用 @CamelOpenTracing
标注主类来打开 OpenTracing。
Tracer
将从 camel 上下文 的 Registry
或 ServiceLoader
隐式获取,除非应用程序定义了 Tracer
bean。
255.1.3. Java Agent
第三种方式是使用 Java 代理自动配置 OpenTracing 支持。
在您的 POM 中包含 camel-opentracing
组件,以及与所选 OpenTracing 兼容 Tracer 关联的特定依赖项。
OpenTracing Java 代理与以下依赖项关联:
<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-agent</artifactId> </dependency>
使用的 Tracer
将从 camel 上下文 Registry
或 ServiceLoader
中隐式加载。
如何使用此代理来特定于如何执行您的应用程序。camel-example-opentracing 将代理下载到本地文件夹中,然后使用 exec-maven-plugin
使用 -javaagent
命令行选项启动服务。