Lightbend遥测只有在通过终端执行程序时才会触发



我正在尝试使用Scala开发一个Akka应用程序,我想使用Lightbend Telemetry:Chinnamon Grafana+Prometheus记录应用程序的行为。

我按照本教程设置了sbt的所有内容https://developer.lightbend.com/docs/telemetry/current//setup/cinnamon-agent-sbt.html

Evething运行良好,但Cinnamon只有在我使用从命令行运行应用程序时才启动

sbt clean compile
sbt run

我可以在控制台中看到日志

[info] [INFO] [02/14/2022 10:58:15.480] [main-1] [Cinnamon] Agent version 2.16.2
[info] [INFO] [02/14/2022 10:58:16.362] [main-1] [Cinnamon] Agent found Java Futures version: 1.8.0_311
[info] [INFO] [02/14/2022 10:58:16.436] [main-1] [Cinnamon] Agent found Scala version: 2.13.8
[info] [INFO] [02/14/2022 10:58:16.436] [main-1] [Cinnamon] Agent found Scala Futures version: 2.13.8

当我从IntelliJ(run(运行它时,或者当我通过set assembly构建fat jar并使用java-jar运行时,Cinnamon不会启动。

有谁能帮我理解为什么?

它可以归结为在启动jvm时传递-javaagent开关。

当你通过sbt run运行应用程序时,sbt可以为你做到这一点。当您从intellij或打包的jar运行它时,该开关不会传递给jvm,因此Cinnamon没有运行。

在intellij中,您可以转到运行配置并在配置中添加-javaagent path/to/cinnamon-agent.jar。如果您通过java jar your-jar.jar运行jar,只需将开关添加到命令行即可。

最新更新