【发布时间】:2022-06-17 22:18:06
【问题描述】:
将 Azure Monitor OpenTelemetry 添加到 Java 应用程序的记录方法是下载 applicationinsights-agent-3.2.11.jar 并使用以下内容: -javaagent:path/to/applicationinsights-agent-3.2.11.jar.
所以在 Spring Boot 中,它可能的运行方式:
java -javaagent:path/to/applicationinsights-agent-3.2.11.jar -jar <jar-file.jar>.
但是如果这条路径发生变化会发生什么?
问题取决于它正在运行的系统,并使用 maven (pom.xml) 获取工件,我们如何使用 applicationinsights-agent-3.2.11.jar 启用 opentelemetry,因为 Maven 存储工件更改的位置来自用户帐户和计算机?
此外,如何指定 applicationinsights.json 文件的相对路径以进行配置(因为 Azure 在 applicationinsights-agent-3.2.11.jar 目录中查找此文件)?
更新 关于建议,How to define a relative path in java 和这个other suggested question 我不想从相对路径中读取文件。 需要使用特定参数调用 Spring Boot 应用程序,其中需要知道 maven 下载 appinsights jar 文件的位置。 然后,当应用启动时,appinsights 会根据 applicationinsights.json 文件自动配置,该文件可能因位置而异。
【问题讨论】:
-
这能回答你的问题吗? How to define a relative path in java
-
否 @DeepDave-MT,java 代理参数将包含 jar 文件的位置,该位置因计算机和环境而异。另外,在maven下载jar文件的时候,我们只能查看目录,手动进去添加applicationinsights.json文件。但是,它需要针对运行在其中的所有不同环境以及部署/产品中完成。这是我试图克服的问题。希望这是有道理的。
标签: java spring-boot azure azure-application-insights open-telemetry