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?
老实说,我想要达到的目标是:
- 不使用代理
- 不使用收集器 (gateway/local)
- 不要使用出口商
- 仅在日志 (logback) 中填充 spanId 和 traceId(当前配置有 %X{trace_id} 和 %X{span_id},但目前没有被填充,所以想知道是否还必须在每个日志中手动包含代码)
不确定这是否可能。
我能够使用以下命令和最新的 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
关注文档可在此处获得。
我不确定 MDC 部分是否适用于手动检测,因为在上面的文档中提到了 java 代理。
目前我正在尝试为 Web 项目 POC OpenTelemetry (war) 在阅读了很多不同的文档后,我仍然对某些问题没有正确的把握,想知道是否有人可以帮助指出正确的方向?
基本上:
1) 是否可以在没有任何导出器的情况下使用 OpenTelemetry?
我已经使用配置来执行此操作(OTEL_TRACES_EXPORTER=none、OTEL_METRICS_EXPORTER=none)。没有任何出口商“工作”吗?
2) Otel 是否需要在 SdkTracerProvider 中有一个 span 处理器才能工作?
在构建 SdkTracerProvider 时,我想知道我是否必须设置一个 spanProcessor(例如带有 LoggingSpanExporter 的 BatchSpanProcessor),或者因为我不想使用导出器,所以不设置 spanProcessor?
老实说,我想要达到的目标是:
- 不使用代理
- 不使用收集器 (gateway/local)
- 不要使用出口商
- 仅在日志 (logback) 中填充 spanId 和 traceId(当前配置有 %X{trace_id} 和 %X{span_id},但目前没有被填充,所以想知道是否还必须在每个日志中手动包含代码)
不确定这是否可能。
我能够使用以下命令和最新的 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
关注文档可在此处获得。
我不确定 MDC 部分是否适用于手动检测,因为在上面的文档中提到了 java 代理。