Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new OpenTelemetryOptions()
)
);
Vertx OpenTelemetry
Vert.x 与 OpenTelemetry 的集成。
您还可以传递自定义的 OpenTelemetry
,以对配置进行更精细的控制。
Vertx vertx = Vertx.vertx(new VertxOptions()
.setTracingOptions(
new OpenTelemetryOptions(openTelemetry)
)
);
如果只添加此库,您将获得一个默认的 noop
Tracer 的 OpenTelemetry API 访问权限,它会为跟踪和 Span ID 提供虚拟值(全零)。要获取正确的值,需要 OpenTelemetry SDK。
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder().build();
OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()
.setTracerProvider(sdkTracerProvider)
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
.buildAndRegisterGlobal();
vertxOptions.setTracingOptions(new OpenTelemetryOptions(openTelemetry));
本项目提供了一个 OpenTelemetry 如果 classpath 上存在多个 |
HTTP 追踪
Vert.x HTTP 服务器和客户端围绕 HTTP 请求报告 span。
-
name
:HTTP 方法 -
标签
-
http.method
:HTTP 方法 -
http.url
:请求 URL -
http.status_code
:HTTP 状态码(String
类型)
默认的 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);