Vertx Zipkin 链路追踪
Vert.x 借助 Zipkin Brave client 的支持集成了 Zipkin。
Vert.x 在 Vert.x HTTP Client 中使用 ZipKin HTTP sender 将 span 信息以 JSON 格式
报告给 http://localhost:9411/api/v2/spans
。
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new ZipkinTracingOptions().setServiceName("A cute service")
)
);
service name 必须是合法的 Zipkin 服务名称。如果没有填写,则会被以 a-service
名称替代。
您可以将 sender 配置成使用别的 URL
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new ZipkinTracingOptions()
.setSenderOptions(new HttpSenderOptions().setSenderEndpoint(senderEndpoint))
)
);
缺省的 sender 使用单一的 HTTP 连接发送纯文本(body的内容是经过压缩的)。
您可使用自定义的 HttpClientOptions
来覆盖 HTTP sender 默认选项。
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new ZipkinTracingOptions()
.setSenderOptions(new HttpSenderOptions()
.setSenderEndpoint(senderEndpoint)
.setSsl(true)
.setKeyCertOptions(sslOptions))
)
);
最后,您可以设置一个自定义的 ZipKin Tracing
对象
来实施更进一步的控制。
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new ZipkinTracingOptions(tracing)
)
);
HTTP追踪
Vert.x HTTP 服务端和客户端基于 HTTP 请求来报告 span :
-
operationName
:HTTP 方法 -
tags
-
http.method
:HTTP 方法 -
http.url
:请求的 URL -
http.status_code
:HTTP 状态码
HTTP 服务端的缺省追踪策略是 ALWAYS
, 您可以通过 setTracingPolicy
来配置追踪策略
HttpServer server = vertx.createHttpServer(new HttpServerOptions()
.setTracingPolicy(TracingPolicy.IGNORE)
);
HTTP 客户端的缺省追踪策略是 PROPAGATE
, 您可以通过 setTracingPolicy
来配置追踪策略
HttpClient client = vertx.createHttpClient(new HttpClientOptions()
.setTracingPolicy(TracingPolicy.IGNORE)
);
EventBus 追踪
Vert.x EventBus 在消息交换过程中报告 span 。
发送消息时的缺省追踪策略是 PROPAGATE
,您可以通过 setTracingPolicy
来配置追踪策略。
DeliveryOptions options = new DeliveryOptions().setTracingPolicy(TracingPolicy.ALWAYS);
vertx.eventBus().send("the-address", "foo", options);