Application Insights
实时应用的应用性能监控 (APM):请求追踪、依赖关系图、异常捕获、实时指标和通过 KQL 的日志分析。
为什么
App Insights 通过一个设置即可自动注入 App Service、Functions 和 AKS,免费获得请求延迟、失败率、依赖调用(SQL、HTTP)和分布式追踪。数据存入 Log Analytics,用 Kusto (KQL) 查询并对任何指标告警。Azure holds 21% cloud market share (Synergy Research Q4 2024)。
Azure 是拥有 Microsoft 365 / Active Directory 资产的企业的默认选择 — 95% 的财富 500 强使用 Azure。AKS 和 Cosmos DB 对 .NET 工作负载是一等公民。
何时使用
从第一天起在每个 Azure 托管应用上启用 App Insights —— 开销极小且无法为过去的事故追溯收集遥测。自定义指标或业务事件用 trackMetric/trackEvent。
日志密集负载需积极采样以控制成本。
如何做
示例
常见问题
- ⚠无数据显示 —— 连接字符串/检测密钥错误或 SDK 未启动;调用 .start() 并在门户验证连接字符串。
- ⚠遥测过多导致高成本 —— 启用自适应采样(Node.js SDK 默认)或对高量应用固定采样 5–10% 以限制摄入成本。
- ⚠跨服务分布式追踪断裂 —— 每个服务须用相同连接字符串并传播 traceparent 头;SDK 对 HTTP 调用自动处理。
最佳实践
- ✓通过 App Service/Functions 设置启用自动检测而非手动添加 SDK —— 零代码覆盖请求、依赖和日志。
- ✓高量应用使用采样(5–10%)控制 Log Analytics 成本,同时保留慢/失败请求的统计显著追踪。
- ✓编写 KQL 告警规则 '5 分钟内失败率 > 5%' 和 'p95 延迟 > 2s',在用户投诉前收到告警。
常见问题解答
什么是Application Insights?它解决什么问题?
实时应用的应用性能监控 (APM):请求追踪、依赖关系图、异常捕获、实时指标和通过 KQL 的日志分析。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。
如何在 5 分钟内上手Application Insights?
两步即可跑通:① 创建 Application Insights 资源(或在 App Service/Functions 上启用,会自动创建)。;② 获取检测密钥或连接字符串。。建议先用免费套餐验证流程,再接入生产环境。
Application Insights 最容易踩的坑是什么?
最高频的问题是:无数据显示 —— 连接字符串/检测密钥错误或 SDK 未启动;调用 .start() 并在门户验证连接字符串。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。
Application Insights 的最佳实践有哪些?
Application Insights 的最佳实践包括:通过 App Service/Functions 设置启用自动检测而非手动添加 SDK —— 零代码覆盖请求、依赖和日志。;高量应用使用采样(5–10%)控制 Log Analytics 成本,同时保留慢/失败请求的统计显著追踪。;编写 KQL 告警规则 '5 分钟内失败率 > 5%' 和 'p95 延迟 > 2s',在用户投诉前收到告警。。其中首条「通过 App Service/Functions 设置启用自动检测而非手动添加 SDK —— 零代码覆盖请求、依赖和日志。」应作为团队默认规范写入 IaC 模板。
Application Insights 如何控制成本与避免账单意外?
三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Application Insights 多数提供免费套餐,先在免费额度内验证再放量。