第 381 章 Zipkin 组件
可从 Camel 2.18 开始
camel-zipkin 组件用于使用 zipkin 来跟踪和计时的 Camel 消息。
事件(span)捕获用于传入和发送到 Camel 中的/传出消息。
在 Camel 2.22.0 中,计划重构 Camel-zipkin,使其不使用 zipkin-scribe,但使用默认的 http 传输。此操作可能会导致向后兼容。
这意味着您需要配置哪个 Camel 端点映射到 zipkin 服务名称。
映射可通过以下方式进行配置:
- 路由 id - Camel 路由 id
- endpoint url - Camel 端点 url
对于这两种类型,您可以使用通配符和正则表达式来匹配,使用来自 Intercept 的规则。
要匹配您可以模式中使用 * 的所有 Camel 消息,并将其配置为相同的服务名称。
如果没有配置映射,Camel 将回退,并使用端点 uri 作为服务名称。
但是,建议您配置服务映射,以便您可以在名称中使用人类可读的名称而不是 Camel 端点 uri。
Camel 将自动配置一个 span 报告程序,但没有明确配置,如果到 zipkin 收集程序的主机名和端口都被配置为环境变量
- ZIPKIN_COLLECTOR_HTTP_SERVICE_HOST - http 主机名
- ZIPKIN_COLLECTOR_HTTP_SERVICE_PORT - 端口号
或者
- ZIPKIN_COLLECTOR_THRIFT_SERVICE_HOST - Scribe (Thrift RPC) hostname
- ZIPKIN_COLLECTOR_THRIFT_SERVICE_PORT - 端口号
这使得在平台可以在 linux 容器中运行应用程序的容器平台中很容易使用 camel-zipkin,其中服务配置作为环境变量提供。
381.1. 选项
选项 | 默认值 | 描述 |
---|---|---|
速率限制 | 1.0f | 配置一个速率,决定通过 zipkin 跟踪多少事件。速率表示为百分比(1.0f = 100%,0.5f 为 50%,0.1f 为 10%。 |
spanReporter | 必需: 用于将 zipkin span 事件发送到 zipkin 服务器的报告程序。 | |
serviceName | 使用与所有 Camel 事件匹配的全局服务名称 | |
clientServiceMappings | 将与 Camel 事件匹配的 客户端 服务映射设置为给定的 zipkin 服务名称。内容是一个 Map<String,String>,其中键是模式,值是服务名称。该模式使用来自 Intercept 的规则。 | |
serverServiceMappings | 将与 Camel 事件匹配的 服务器 服务映射设置为给定的 zipkin 服务名称。内容是一个 Map<String,String>,其中键是模式,值是服务名称。该模式使用来自 Intercept 的规则。 | |
excludePatterns | 设置 exclude pattern (s),使用 zipkin 为模式匹配的 Camel 消息禁用追踪。内容是一个 Set<String>,其中键是一个模式。该模式使用来自 Intercept 的规则。 | |
includeMessageBody | false | 是否在 zipkin trace 中包含 Camel 消息正文。不建议在生产环境中使用,或者当有大有效负载时。您可以通过配置 max debug 日志大小 来限制大小。 |
includeMessageBodyStreams | false | 是否包括了基于 zipkin trace 的消息正文。这需要对 CamelContext 的路由或全局启用流缓存。不建议在生产环境中使用,或者当有大有效负载时。您可以通过配置 max debug 日志大小 来限制大小。 |