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

如何使用Azure CLI脚本将Azure应用程序洞察正确地连接到App Service Spring应用程序?

公羊招
2023-03-14

我使用Azure CLI脚本通过Azure App服务托管Spring Boot应用程序。此外,我在同一个订阅上部署了Azure应用程序洞察和Azure CLI脚本。我的下一步是仅使用az命令和补充文件将App Insights与App Service连接起来。

在查看App服务的配置时,我看到了文档中没有描述的几个新值:

{
  "XDT_MicrosoftApplicationInsights_PreemptSdk": "disabled",
  "XDT_MicrosoftApplicationInsights_Mode": "recommended",
  "XDT_MicrosoftApplicationInsights_BaseExtensions": "disabled",
  "SnapshotDebugger_EXTENSION_VERSION": "disabled",
  "InstrumentationEngine_EXTENSION_VERSION": "disabled",
  "DiagnosticServices_EXTENSION_VERSION": "~3",
  "APPINSIGHTS_PROFILERFEATURE_VERSION": "1.0.0",
  "APPINSIGHTS_INSTRUMENTATIONKEY": "key",
  "APPINSIGHTS_SNAPSHOTFEATURE_VERSION": "1.0.0",
  "ApplicationInsightsAgent_EXTENSION_VERSION": "~2"
}

因此,我的问题是“我如何用我的Azure CLI脚本模拟这个按钮,使它对我的日志和度量有完全相同的影响?”

共有1个答案

柳业
2023-03-14

在将jar文件部署到应用程序服务之前,请确保类路径中有与AI SDK的最新依赖关系。提供Gradle导入的依赖项集:

//    Application Insights
    implementation "com.microsoft.azure:applicationinsights-spring-boot-starter:$appInsightsVersion"
    implementation "com.microsoft.azure:applicationinsights-logging-logback:$appInsightsVersion"
    implementation 'com.microsoft.azure:azure-spring-boot-metrics-starter'

现在,编译完应用程序之后,就该使用以下Azure CLI脚本将应用程序洞察连接到应用程序服务了:

az webapp config appsettings set \
  -n ${APP_NAME} \
  -g ${GROUP_NAME} \
  --settings \
APPINSIGHTS_INSTRUMENTATIONKEY=${APPINSIGHTS_INSTRUMENTATIONKEY} \
JAVA_OPTS="${APP_SERVICE_JAVA_OPTS}"

下面是我的VM环境变量:app_service_java_opts=“-javaagent:/home/site/wwwroot/applicationinsights-agent.jar-dserver.port=80”

cp ./build/libs/app-0.0.1-SNAPSHOT.jar ./deploymentrepo/app.jar
cp ./build/resources/main/applicationinsights-agent*.jar ./deploymentrepo/applicationinsights-agent.jar
cp ./build/resources/main/ApplicationInsights.json ./deploymentrepo/ApplicationInsights.json
cd ./deploymentrepo
zip target.zip -r ./*
az webapp deployment source config-zip \
  --src target.zip \
  -n ${ANALYTICS_APP_NAME} \
  -g ${ANALYTICS_GROUP_NAME}

我的applicationinsights.json如下所示:

{
  "instrumentationSettings": {
    "preview": {
      "roleName": "ApplicationName",
      "heartbeat": {
        "intervalSeconds": 60
      },
      "instrumentation": {
        "logging": {
          "threshold": "INFO"
        },
        "micrometer": {
          "enabled": true
        }
      },
      "selfDiagnostics": {
        "destination": "file",
        "directory": "/var/log/applicationinsights",
        "level": "INFO",
        "maxSizeMB": 10
      }
    }
  }
}
 类似资料:
  • 有没有人有关于如何将Azure应用程序洞察集成到作为控制台应用程序构建的Azure WebJob的示例或文章的链接?

  • 我们是否可以将Azure Applications Insight dashboard嵌入到我们的一个第三方站点中,以允许我们的客户查看它提供的信息? 我还知道,使用API手动构建这些仪表板是可能的,但是,简单地获取Azure门户中创建的度量图的嵌入式代码会更好。 有人能做到吗?

  • 在运行.NET Core3.1控制台应用程序时,我正在尝试获取应用程序的见解,以便在azure批处理作业/任务中工作。 https://docs.microsoft.com/en-us/Azure/Batch/Monitor-Application-Insights https://docs.microsoft.com/en-us/Azure/Azure-monitor/app/worker-se

  • 我在某处读到应用程序洞察应该与结构化日志一起工作,我正在尝试使用iLogger的BeginScope将数据记录到应用程序洞察: 但是,当在Application Insights中检查跟踪时,我不是从BeginScope获取日志数据,在本例中只是“Oh No”。这是一个.NET Core2.0应用程序。Application Insights iLogger的默认实现是否不支持BeginScope

  • 有没有什么简单的方法可以找到哪些应用程序正在使用azure Portal的特定应用程序洞察? 我已经检查了门户中的各种选项,但没有找到任何易于理解的界面,我可以在其中找到正在向特定应用程序Insights发送数据的应用程序列表。

  • 有什么想法会出什么问题吗?