Vertx OpenTracing
Vert.x 借助 Jaeger 的支持集成了 OpenTracing 。
您可以使用Jaeger客户端的下列配置项来配置 Vert.x 环境。
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new OpenTracingOptions()
)
);
您也可以传递一个自定义的`Tracer`来更好地调控 配置项
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new OpenTracingOptions(tracer)
)
);
HTTP tracing
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)
);
要启动客户端调用的追踪, 您需要先创建它并使得 Vert.x 通过使用 OpenTracingUtil.setSpan 留意到这一点:
Span span = tracer.buildSpan("my-operation")
.withTag("some-key", "some-value")
.start();
OpenTracingUtil.setSpan(span);
// 做一些事,例如客户端发送请求
span.finish();
在包含有两个Vert.x服务的HTTP场景中,将会在客户端创建一个跨度, 而后追踪上下文将在服务器端传播,另一个跨度将添加到追踪中。
事件总线追踪
Vert.x 事件总线围绕消息交换报告跨度。
默认的追踪策略是 PROPAGATE
,
您可以使用`setTracingPolicy` 来调配该策略.
DeliveryOptions options = new DeliveryOptions().setTracingPolicy(TracingPolicy.ALWAYS);
vertx.eventBus().send("the-address", "foo", options);