本文可帮助你排查影响 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.DiagnosticSourceMicrosoft.AspNet.TelemetryCorrelationMicrosoft.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 函数的启动时间可能很慢。 在函数应用的 概述 窗格中,从导航菜单选择 配置。 然后,选择 “应用程序设置” ,并使用以下步骤来解决此问题。
检查是否存在以下设置并删除它们:
XDT_MicrosoftApplicationInsights_Java -> 1 ApplicationInsightsAgent_EXTENSION_VERSION -> ~2通过添加此设置启用最新版本:
APPLICATIONINSIGHTS_ENABLE_AGENT: true
重复日志
如果使用 log4j 或 logback 用于控制台日志记录,则 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 不保证第三方联系信息的准确性。