OpenTelemetry java 手动检测,无需导出器

问题描述 投票:0回答:1

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

基本上:

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

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

2) 我需要在 SdkTracerProvider 中有一个跨度处理器才能让 Otel 工作吗?

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

说实话,我想要实现的是:

  • 不要使用代理
  • 不要使用收集器(网关/本地)
  • 不要使用出口商
  • 仅在日志(logback)中填充spanId和traceId(当前配置为%X{trace_id}和%X{span_id},但目前尚未填充,所以想知道是否还必须在每个日志中手动包含代码)

不确定这是否可行。

logging trace open-telemetry open-telemetry-java
1个回答
1
投票

我能够使用以下命令和最新的 java 代理和 Log4j 来实现您想要实现的目标。 我没有看到任何导出错误,并且可以在日志中看到跟踪 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 代理。

© www.soinside.com 2019 - 2024. All rights reserved.