OpenTelemetry java 没有导出器的手动检测

OpenTelemetry java manual instrumentation without exporter

目前我正在尝试为 Web 项目 POC OpenTelemetry (war) 在阅读了很多不同的文档后,我仍然对某些问题没有正确的把握,想知道是否有人可以帮助指出正确的方向?

基本上:

1) 是否可以在没有任何导出器的情况下使用 OpenTelemetry?

我已经使用配置来执行此操作(OTEL_TRACES_EXPORTER=none、OTEL_METRICS_EXPORTER=none)。没有任何出口商“工作”吗?

2) Otel 是否需要在 SdkTracerProvider 中有一个 span 处理器才能工作?

在构建 SdkTracerProvider 时,我想知道我是否必须设置一个 spanProcessor(例如带有 LoggingSpanExporter 的 BatchSpanProcessor),或者因为我不想使用导出器,所以不设置 spanProcessor?

老实说,我想要达到的目标是:

不确定这是否可能。

我能够使用以下命令和最新的 java 代理和 Log4j 实现您想要实现的目标。 我没有看到任何导出错误,并且可以在日志中看到 trace-id 和跨度 ID。

java -javaagent:opentelemetry-javaagent.jar \
-Dotel.traces.exporter=none \
-Dotel.metrics.exporter=none \
-Dotel.resource.attributes=service.name=Test-service \
-jar spring-app-0.0.1-SNAPSHOT.jar

关注文档可在此处获得。

https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/logger-mdc-instrumentation.md

我不确定 MDC 部分是否适用于手动检测,因为在上面的文档中提到了 java 代理。