排查 Application Insights 自动化检测问题

本文可帮助你排查影响 Application Insights 中自动监控的问题。

注意

自动结构在 2021 年 10 月之前被称为 无代码附加

启用自动化工具后,遥测数据不会报告

如果为应用服务启用了 Application Insights 自动监测功能,但没有看到遥测数据报告,请查看以下部分中的常见情况。

之前已安装 Application Insights SDK

如果 .NET 和 .NET Core 应用程序已经安装了 Application Insights SDK,那么自动化监测将会失败。

若要能够自动化监测您的应用程序,请删除 Application Insights SDK。

应用是使用不支持的 .NET 或 .NET Core 版本发布的

验证支持版本的 .NET 或 .NET Core 是否用于生成和发布应用程序。

若要确定版本是否受支持,请参阅以下 .NET 或 .NET Core 文档:

检测到诊断库

如果自动化检测到以下库,则自动化检测失败:

  • System.Diagnostics.DiagnosticSource
  • Microsoft.AspNet.TelemetryCorrelation
  • Microsoft.ApplicationInsights

若要成功运行自动结构,必须删除这些库。

启用自动检测后遇到 SDK 问题

如果在启用自动检测后遇到 Application Insights SDK 本身导致的问题,请收集自我诊断日志来诊断问题。 有关详细信息,请参阅 如何收集 Application Insights SDK 的自我诊断日志。

为 VM 和虚拟机规模集部署 Application Insights 监视代理扩展时遇到问题

注意

这些故障排除提示适用于 .NET 应用程序。

如果在部署扩展时遇到问题,请查看扩展记录在以下目录中的文件中的执行输出日志:

C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\

如果扩展已成功部署,但你看不到遥测数据,则可能发生了代理故障排除中介绍的以下问题之一:

  • 应用程序 bin 目录中存在冲突的动态链接库(DLL)。
  • 与 IIS 共享配置冲突。

在 Azure Functions 上运行的 Java 应用的问题

启动时间缓慢

如果在 2023 年 2 月之前采用此功能,则 Java 函数的启动时间可能很慢。 在函数应用的 概述 窗格中,从导航菜单选择 配置。 然后,选择 “应用程序设置” ,并使用以下步骤来解决此问题。

  1. 检查是否存在以下设置并删除它们:

    XDT_MicrosoftApplicationInsights_Java -> 1
    ApplicationInsightsAgent_EXTENSION_VERSION -> ~2
    
  2. 通过添加此设置启用最新版本:

    APPLICATIONINSIGHTS_ENABLE_AGENT: true
    

重复日志

如果使用 log4jlogback 用于控制台日志记录,则 Java Functions 的分布式跟踪会创建重复的日志。 然后将这些重复的日志发送到 Application Insights。 若要避免此行为,请使用以下解决方法。

Log4j

将以下筛选器添加到 log4j.xml:

<Filters>
  <ThresholdFilter level="ALL" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>

示例:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
      <Filters>
        <ThresholdFilter level="ALL" onMatch="DENY" onMismatch="NEUTRAL"/>
      </Filters>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

Logback

将以下筛选器添加到 logback.xml:

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  <level>OFF</level>
</filter>  

示例:

<configuration debug="true">
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are  by default assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>OFF</level>
      </filter>  
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

详细信息

如果您对 Application Insights 自动检测有其他问题,可以在 我们的Microsoft问答页面上提出这些问题。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区

第三方联系人免责声明

Microsoft 会提供第三方联系信息来帮助你查找有关本主题的其他信息。 该联系信息可能会在不通知的情况下更改。 Microsoft 不保证第三方联系信息的准确性。