启用Azure App Insight后Dynatrace无法采集Azure Web App日志问题求助
解决Azure Web App中App Insights与Dynatrace OneAgent共存时的追踪冲突问题
问题场景
- 环境:Azure Web App(MVC/C#应用),同时启用Azure App Insights、安装Dynatrace OneAgent扩展
- 现象:Dynatrace无法展示MVC/C#相关追踪日志;禁用App Insights后,Dynatrace追踪恢复正常
- 前置排查:已提交微软工单,确认App Insights端无问题,建议排查Dynatrace侧
排查与解决步骤
1. 检查Dynatrace OneAgent版本兼容性
先确认你用的Dynatrace OneAgent是适配Azure Web App环境的最新稳定版,旧版本很可能存在和App Insights的追踪抢占冲突。直接在Azure门户的Web App扩展页面,把OneAgent更到最新版再测试。
2. 调整.NET追踪提供者优先级
App Insights和Dynatrace都靠.NET的ActivitySource/DiagnosticSource拦截追踪数据,二者可能抢资源。试试在代码里显式配置,让Dynatrace优先拿到追踪数据:
// 在Program.cs中添加配置 builder.Services.AddHttpClient(); ActivitySource.AddActivityListener(new ActivityListener { ShouldListenTo = source => source.Name.StartsWith("Dynatrace") || source.Name.StartsWith("Microsoft.AspNetCore"), Sample = (ref ActivityCreationOptions<ActivityContext> options) => ActivitySamplingResult.AllData, ActivityStarted = activity => {}, ActivityStopped = activity => {} });
3. 限制App Insights的追踪范围
虽然微软说App Insights没问题,但可以先缩小它的追踪范围,减少冲突概率:
在appsettings.json里修改配置,暂时禁用部分重叠的追踪模块,测试Dynatrace是否恢复:
{ "ApplicationInsights": { "ConnectionString": "你的连接字符串", "EnableDependencyTracking": false, "EnableRequestTracking": false } }
测试正常后再逐步恢复配置,找出具体冲突的模块。
4. 检查Dynatrace端的监控配置
登录Dynatrace控制台,针对这个Web App做以下检查:
- 确认已经启用了
.NET应用的全栈追踪,MVC请求、控制器方法这些都要纳入追踪范围 - 排查是否有针对App Insights的过滤规则,导致相关日志被误过滤
- 去Azure Web App的Kudu站点,查看OneAgent的日志(路径:
D:\home\SiteExtensions\Dynatrace.OneAgent\logs),有没有报错信息
5. 验证Azure Web App的环境变量
检查Web App的环境变量设置:
- 确认
DOTNET_STARTUP_HOOKS已经被OneAgent扩展正确设置,保证Dynatrace的启动钩子能加载 - 添加
DT_DISABLE_INSTRUMENTATION=false环境变量,强制启用Dynatrace的代码注入
内容的提问来源于stack exchange,提问作者Sagar
相关产品推荐
相关产品推荐

