当前位置: 首页 > 知识库问答 >
问题:

如何将 Azure Monitor 基于 Open遥测的自动检测添加到Spring启动应用程序?

宗政浩慨
2023-03-14

将 Azure Monitor 开放遥测添加到 Java 应用程序的有文档记录的方法是下载应用程序洞察代理 3.2.11.jar并使用以下命令:-javaagent:路径/收件人/应用程序洞察-代理-3.2.11.jar。

因此,在Spring Boot中,它可能的运行方式是:

java -javaagent:path/to/applicationinsights-agent-3.2.11.jar -jar

但如果这条路径发生变化,会发生什么呢?

问题取决于它运行的系统,并且使用maven (pom.xml)来获得工件,既然maven存储工件的位置从用户帐户和计算机改变,我们如何用application insights-agent-3 . 2 . 11 . jar启用opentelemetry?

此外,如何指定配置applicationinsights.json文件的相对路径(因为Azure在applicationinsights-agent-3.2.11.jar目录中查找此文件)?

如果指定相对路径,它将相对于applicationinsights-agent-3.2.11.jar所在的目录进行解析。

更新关于建议,如何在java中定义相对路径和另一个建议的问题,我不打算从相对路径中读取文件。需要使用特定参数调用Spring boot应用程序,该参数需要知道maven下载app洞察力jar文件的位置。然后,当应用程序启动时,app洞察力会根据applicationinsights.json文件自动配置,该文件可能会因位置而异。


共有1个答案

计和顺
2023-03-14
匿名用户

请注意,最新的applicationinsights代理*。jar可以通过GitHub获得,而不是通过Maven存储库。因此,我不认为它可以作为使用pom.xml的项目的依赖项下载

现在,这里的问题并不是针对ApplicationInsights代理,而是针对用于监视的任何java代理。-javaagent参数与路径一起提供给JVM(javacommandline)。因此,必须在JVM启动时提供。设置方式取决于所使用的服务器(或独立应用程序)及其启动机制。这里讨论了一个这样的解决方案:如何将java代理附加到正在运行的Spring Boot应用程序上。由于应用程序可以通过多种方式部署/运行,因此相对路径会因其而异。

如果您正在运行standlone springboot应用程序,您还可以修改< code>mvnw或< code>mvnw.cmd脚本,以将< code>%MAVEN_OPTS%与< code >-javaagent = agent path 一起包含,其中path可以相对于其中定义的某个变量,如< code > % MAVEN _ project basedir %

关于应用程序insights.json文件,您可以将其与代理 jar 放在同一目录中,也可以设置环境变量以从中获取设置(而不是拥有 json 文件)。您可以参考此链接,了解有关配置代理的可用环境变量的详细信息。这些环境变量可以根据在JVM初始化之前如何/在哪里部署/运行应用程序来设置,以使其可用于javaagent。

 类似资料:
  • 问题内容: 我的问题很简单,我该如何识别首次申请?我认为可以通过在RMS中保存一些值并在应用启动时读取它并决定要做什么来实现。 但是没有更简单的解决方案吗? 问题答案: 据我所知,没有比这更简单的方法了,但这还是很容易的。

  • 要求: Spring启动应用程序与Spring狐狸 将基本身份验证添加到 Swagger 传递所有其他请求 代码:已实现 然而,这段代码无法工作-您可以自由浏览/炫耀ui。html#/没有任何授权。 问题是-为什么BASIC身份验证和用户不适用于swagger uiendpoint?

  • 我正在尝试将测试添加到我的Spring Boot应用程序,但当我这样做时,应用程序无法启动。 我有一个自定义的jwt授权类来验证jwt,我不确定这是否会导致任何问题? 以下是我使用服务器的安全配置类: 下面是堆栈跟踪: 不知道从哪里开始,我在这里没有找到任何解决的线程。请向我解释一下,将不胜感激! 编辑:我有一个常规app.properties: 还有一个正在测试/资源:

  • 我有一个建立在Spring启动基础上的后端,然后我学校的一些定制代码建立在这个基础上。前端是纯粹的角度应用程序,我从不同的服务器上通过一大口服务提供。他们只通过REST调用连接。 后端已经运行了一个身份验证模块,现在我需要从后端运行的同一tomcat服务器为这个角应用程序提供服务,这样它也可以使用这个身份验证模块。 我发现这是关于多个连接器的,所以我将其复制为以下类来设置多个连接器: 问题是我没有

  • 问题内容: 我写了一个简单的守护程序。当我运行任何程序时,该守护程序都应响应。这个怎么做?在大守护程序循环中: 当我运行新程序(创建新进程)时,在Linux中要调用什么函数? 问题答案: 我不知道是否存在更好的方法,但是您可以定期扫描文件系统。 例如,是到流程可执行文件的符号链接。 在我的系统(Ubuntu / RedHat)上,包含正在运行的进程数(正斜杠后的数字)以及最近启动的进程的pid。如

  • 我正在使用一个Java应用程序,并尝试使用OpenTelemetrys Java autoinstrumentation。看起来,autoinstrumentation只对来自应用程序本身的代码直接调用起作用,而依赖项没有被检测? 该项目使用一个依赖项,该依赖项本身使用Apache HttpClient向远程服务器发送请求。然而,这些请求似乎没有被检测。当直接在我的应用程序中执行请求时,它也能正常