OpenTelemetry Java 代理未从 SBT Build 接收参数

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

我目前面临一个问题,OpenTelemetry Java Agent 没有收到我在 SBT 构建文件中传递给它的参数。这是我的构建文件中的一个片段:

val buildOpenTelemtryJavaAgent: JavaAgent.AgentModule = {
  val attributes = "service.name=MY_SERVICE,environment=development"
  val argsStr = s"""otel.exporter=otlp otel.exporter.otlp.endpoint=http://198.51.100.1:4317 otel.resource.attributes="$attributes""""

  print(argsStr)
  JavaAgent(
    module = openTelemetryAgentPrefix % openTelemetryAgentModuleName % openTelemetryAgentVersion % "runtime",
    name = openTelemetryAgentName,
    scope = JavaAgent.AgentScope(true, true, true, true),
    arguments = argsStr
  )
}

我正在使用 com.lightbend.sbt.javaagent (https://github.com/sbt/sbt-javaagent) 包中的 JavaAgent 案例类将 OpenTelemetry Java 代理附加到我的应用程序。我将一串参数传递给代理,但是当我运行我的应用程序时,出现以下错误:

[otel.javaagent 2023-05-16 06:45:58:127 +0000] [OkHttp http://localhost:4317/...] ERROR io.opentelemetry.exporter.internal.grpc.OkHttpGrpcExporter - Failed to export spans. The request could not be executed. Full error message: Failed to connect to localhost/127.0.0.1:4317

此错误消息表明代理未从我的参数中接收到正确的端点,而是尝试连接到 localhost:4317。无论我在 SBT 构建文件中设置什么 IP 地址,都会发生这种情况。

但是,当我使用以下命令手动运行代理时,它可以正常工作:

-javaagent:/Users/[MY_USER]/dev/git/[MY_PROJECT]/target/scala-2.12/opentelemetry-javaagent.jar -Dotel.exporter=otlp -Dotel.exporter.otlp.endpoint=http://198.51.100.1:4317 -Dotel.resource.attributes="service.name=MY_SERVICE,environment=development"

如果能深入了解这里可能出现的问题,我将不胜感激。我在 SBT 构建文件中传递参数的方式有问题,还是代理如何解释它们有问题?

提前感谢您的帮助。

java scala sbt open-telemetry javaagents
© www.soinside.com 2019 - 2024. All rights reserved.