0

我有一个 Spring Boot 应用程序,我想自动生成跟踪以使用 OpenTelemetry Java 代理,然后将这些跟踪上传到 Google Cloud Trace。

我已将以下代码添加到我的应用程序的入口点以发送跟踪:

OpenTelemetrySdk.builder()
    .setTracerProvider(
        SdkTracerProvider.builder()
            .addSpanProcessor(
                SimpleSpanProcessor.create(TraceExporter.createWithDefaultConfiguration())
            )
            .build()
    )
    .buildAndRegisterGlobal();

...并且我正在使用以下系统属性运行我的应用程序:

-javaagent:path/to/opentelemetry-javaagent-all.jar \
-jar myapp.jar

...但我不知道如何将两者联系起来。

我可以应用一些代理配置吗?就像是:

-Dotel.traces.exporter=google_cloud_trace
4

1 回答 1

2

我最终解决了这个问题:

  1. 克隆GoogleCloudPlatform / opentelemetry-operations-java 存储

git clone git@github.com:GoogleCloudPlatform/opentelemetry-operations-java.git

  1. 构建exporter-auto项目

./gradlew clean :exporter-auto:shadowJar

  1. 将生成的 jar 复制exporter-auto/build/libs到我的目标项目中

  2. 使用以下参数运行应用程序:

-javaagent:path/to/opentelemetry-javaagent-all.jar
-Dotel.javaagent.experimental.extensions=[artifact-from-step-3].jar
-Dotel.traces.exporter=google_cloud_trace
-Dotel.metrics.exporter=none
-jar myapp.jar

注意:此设置不需要在目标代码库中进行任何显式代码更改。

于 2021-09-14T23:00:24.923 回答