Azure中未加代码时Application Insights Provider如何加载并上报日志?
Azure App Service自动向Application Insights发送日志的工作机制
核心依赖:内置的Application Insights Agent
当你在App Service设置面板开启Application Insights时,系统会自动安装并启用Application Insights Agent(旧称Status Monitor v2)站点扩展,全程不需要手动添加SDK或OpenTelemetry代码。数据采集的具体方式
- 针对.NET应用:Agent通过CLR的
EventSource、ETW(EventTracing for Windows)以及进程注入技术,自动附着在你的应用进程上,捕获标准的.NET运行时事件(比如ASP.NET请求日志、GC回收事件、异常信息等),不需要应用做任何代码改造。 - 针对Python/Node.js等其他语言:Agent会通过语言专属的注入机制(比如Python的sitecustomize.py自动注入、Node.js的加载钩子),接入应用运行时,自动收集日志、请求追踪和性能数据。
- 针对.NET应用:Agent通过CLR的
数据转发流程
Agent捕获到数据后,会直接使用你在App Service配置里的Application Insights连接字符串,将数据批量聚合后发送到Azure Monitor后端。整个数据上报过程由Agent独立完成,不需要你的应用进程参与转发。关于EventSource的作用
你的推测是正确的:.NET应用的核心运行日志和追踪数据会通过内置的EventSource暴露,Agent会主动订阅这些EventSource的事件流,将原始事件转换为Application Insights兼容的格式后上报。比如ASP.NET Core的Microsoft.AspNetCore.Hosting、System.Net.Http等官方EventSource都会被Agent监听采集。
内容的提问来源于stack exchange,提问作者Tahir Hassan
相关产品推荐
相关产品推荐

