37.2. 配置

AWS XRay tracer 的配置属性是:

选项默认值描述

addExcludePatterns

 

设置 exclude 模式,它将为与 模式匹配的 Camel 消息禁用追踪。内容是一个 Set<String>,其中密钥是匹配的 routeId。该模式使用来自 Intercept 的规则。

setTracingStrategy

NoopTracingStrategy

可以提供自定义 Camel InterceptStrategy 来跟踪 BeanDefinitionProcessDefinition 等调用的处理器定义。TraceAnnotatedTracingStrategy 将跟踪通过 .bean (…​).process (…​) 调用的所有类,并在类级别包含 @XRayTrace 注解。

目前,只有 AWS XRay tracer 可以配置为为 Camel 应用程序提供分布式追踪:

37.2.1. explicit

在您的 POM 中包含 camel-aws-xray 组件,以及与 AWS XRay Tracer 相关的任何特定依赖项。

要明确配置 AWS XRay 支持,实例化 XRayTracer 并初始化 camel 上下文。您可以选择指定一个 Tracer,或使用 RegistryServiceLoader 隐式发现它。

XRayTracer xrayTracer = new XRayTracer();
// By default it uses a NoopTracingStrategy, but you can override it with a specific InterceptStrategy implementation.
xrayTracer.setTracingStrategy(...);
// And then initialize the context
xrayTracer.init(camelContext);

要在 XML 中使用 XRayTracer,所有您需要做的就是定义 AWS XRay tracer bean。Camel 将自动发现并使用它。

  <bean id="tracingStrategy" class="..."/>
  <bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer" />
    <property name="tracer" ref="tracingStrategy"/>
  </bean>

如果默认 NoopTracingStrategy 只跟踪并删除交换,则不会调用某些 Bean 或 EIP 模式。