本文介绍了如何将 Azure 应用服务上部署的 Java 应用程序与 Azure Monitor Application Insights、NewRelic 和 AppDynamics 应用程序性能监视 (APM) 平台进行连接。
Azure 应用服务以三种形式在完全托管的服务上运行 Java Web 应用程序:
- Java Standard Edition (SE):可以运行部署为 Java 存档 (JAR) 包的应用,其中包含嵌入式服务器(例如 Spring Boot、Quarkus、Dropwizard 或具有嵌入式 Tomcat 或 Jetty 服务器的应用)。
- Tomcat:内置 Tomcat 服务器可以运行部署为 Web 应用程序存档(WAR)包的应用。
Azure Monitor Application Insights 是一项云本机应用程序监视服务,它使客户能够观察故障、瓶颈和使用模式,以便提高应用程序性能并减少平均解决时间 (MTTR)。 只需单击几下或使用 CLI 命令,就可以启用对 Node.js 或 Java 应用的监视,自动收集日志、指标和分布式跟踪,而无需在应用中包含 SDK。 若要详细了解可用于配置代理的应用设置,请查看 Application Insights 文档。
要从 Azure 门户启用“Application Insights”,请转到左侧菜单的“Application Insights”,选择“启用 Application Insights”。 默认使用与 Web 应用名称相同的新 Application Insights 资源。 可以选择使用现有的 Application Insights 资源,也可以更改名称。 选择底部的“应用”。
要通过 Azure CLI 启用,需要创建一个 Application Insights 资源并在 Azure 门户上设置几个应用设置,以将 Application Insights 连接到 Web 应用。
启用 Applications Insights 扩展
az extension add -n application-insights
使用下面的 CLI 命令创建 Application Insights 资源。 将占位符替换为所需的资源名称和组。
az monitor app-insights component create --app <resource-name> -g <resource-group> --location chinanorth3 --kind web --application-type web
记下 connectionString
和 instrumentationKey
的值,你将在下一步中使用这些值。
备注
要检索其他位置的列表,请运行 az account list-locations
。
将检测密钥、连接字符串和监视代理版本作为 Web 应用上的应用设置进行设置。 将 <instrumentationKey>
和 <connectionString>
替换为上一步中的值。
az webapp config appsettings set -n <webapp-name> -g <resource-group> --settings "APPINSIGHTS_INSTRUMENTATIONKEY=<instrumentationKey>" "APPLICATIONINSIGHTS_CONNECTION_STRING=<connectionString>" "ApplicationInsightsAgent_EXTENSION_VERSION=~3" "XDT_MicrosoftApplicationInsights_Mode=default"
az webapp config appsettings set -n <webapp-name> -g <resource-group> --settings "APPINSIGHTS_INSTRUMENTATIONKEY=<instrumentationKey>" "APPLICATIONINSIGHTS_CONNECTION_STRING=<connectionString>" "ApplicationInsightsAgent_EXTENSION_VERSION=~3" "XDT_MicrosoftApplicationInsights_Mode=default" "XDT_MicrosoftApplicationInsights_Java=1"
在 NewRelic.com 上创建一个 NewRelic 帐户
从 NewRelic 下载 Java 代理。 它具有类似于 newrelic-java-x.x.x.zip 的文件名。
复制你的许可证密钥,稍后需要用它来配置代理。
通过 SSH 登录到应用服务实例,并创建新目录 /home/site/wwwroot/apm。
将解压缩的 NewRelic Java 代理文件上传到 /home/site/wwwroot/apm 下的一个目录中。 代理的文件应位于 /home/site/wwwroot/apm/newrelic 中。
修改位于 /home/site/wwwroot/apm/newrelic/newrelic.yml 处的 YAML 文件,并将占位符许可证值替换为你自己的许可证密钥。
在 Azure 门户中,浏览到你在应用服务中的应用程序并创建一个新的应用程序设置。
创建一个名为 JAVA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar
的环境变量。
创建一个名为 CATALINA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar
的环境变量。
在 NewRelic.com 上创建一个 NewRelic 帐户
从 NewRelic 下载 Java 代理。 它具有类似于 newrelic-java-x.x.x.zip 的文件名。
复制你的许可证密钥,稍后需要用它来配置代理。
通过 SSH 登录到应用服务实例,并创建新目录 /home/site/wwwroot/apm。
将解压缩的 NewRelic Java 代理文件上传到 /home/site/wwwroot/apm 下的一个目录中。 代理的文件应位于 /home/site/wwwroot/apm/newrelic 中。
修改位于 /home/site/wwwroot/apm/newrelic/newrelic.yml 处的 YAML 文件,并将占位符许可证值替换为你自己的许可证密钥。
在 Azure 门户中,浏览到你在应用服务中的应用程序并创建一个新的应用程序设置。
创建一个名为 JAVA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar
的环境变量。
创建一个名为 CATALINA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar
的环境变量。
在 AppDynamics.com 上创建一个 AppDynamics 帐户
从 AppDynamics 网站下载 Java 代理。 文件名类似于 AppServerAgent-x.x.x.xxxxx.zip
通过 SSH 登录到应用服务实例,并创建新目录 /home/site/wwwroot/apm。
将 Java 代理文件上传到 /home/site/wwwroot/apm 下的一个目录中。 代理的文件应位于 /home/site/wwwroot/apm/appdynamics 中。
在 Azure 门户中,浏览到你在应用服务中的应用程序并创建一个新的应用程序设置。
创建一个名为 JAVA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name>
的环境变量,其中,<app-name>
是你的应用服务名称。 如果你已有 JAVA_OPTS
的环境变量,请将 -javaagent:/...
选项追加到当前值的末尾。
创建一个名为 CATALINA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name>
的环境变量,其中,<app-name>
是你的应用服务名称。 如果你已有 CATALINA_OPTS
的环境变量,请将 -javaagent:/...
选项追加到当前值的末尾。
在 AppDynamics.com 上创建一个 AppDynamics 帐户
从 AppDynamics 网站下载 Java 代理。 文件名类似于 AppServerAgent-x.x.x.xxxxx.zip
使用 Kudu 控制台创建新目录 /home/site/wwwroot/apm。
将 Java 代理文件上传到 /home/site/wwwroot/apm 下的一个目录中。 代理的文件应位于 /home/site/wwwroot/apm/appdynamics 中。
在 Azure 门户中,浏览到你在应用服务中的应用程序并创建一个新的应用程序设置。
创建一个名为 JAVA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name>
的环境变量,其中,<app-name>
是你的应用服务名称。 如果你已有 JAVA_OPTS
的环境变量,请将 -javaagent:/...
选项追加到当前值的末尾。
创建一个名为 CATALINA_OPTS
且值为 -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name>
的环境变量,其中,<app-name>
是你的应用服务名称。 如果你已有 CATALINA_OPTS
的环境变量,请将 -javaagent:/...
选项追加到当前值的末尾。
请访问面向 Java 开发人员的 Azure 中心查找 Azure 快速入门、教程和 Java 参考文档。