Application Insights
使用 Application Insights SDK 为 Web 应用程序添加检测,探索应用程序映射,并使用实时指标流实时诊断问题。
Application Insights 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
什么是 Application Insights
Application Insights 是 Azure Monitor 的一项功能,为运行中的 Web 应用程序提供应用程序性能监视 (APM)。它会收集请求、依赖项、异常、页面视图和自定义事件等遥测数据。平台指标描述基础设施的运行状况,而 Application Insights 描述应用程序代码正在执行的操作以及最终用户的体验。它支持 .NET、Node.js、Java、Python 和浏览器 JavaScript。
为应用程序添加检测
您可以通过安装 SDK 或使用自动检测(也称为无代码附加)将 Application Insights 添加到应用程序。对于 App Service,从门户启用 Application Insights 后,代理会自动安装,无需修改代码。对于自行管理的应用程序,您需要添加 SDK 包,并从 Application Insights 资源中提供连接字符串(优先于旧版检测密钥)。
# Enable Application Insights on an App Service app
az webapp config appsettings set \
--name myApp \
--resource-group myRG \
--settings APPLICATIONINSIGHTS_CONNECTION_STRING='InstrumentationKey=...' \
ApplicationInsightsAgent_EXTENSION_VERSION='~3'应用程序映射
应用程序映射以可视化方式展示应用程序的组件及其依赖项的拓扑结构。每个节点代表一个组件(您的应用、下游 API、数据库或 Azure 服务),边则显示调用关系,并标注平均响应时间、请求速率和失败率。您可以单击任意节点或边,深入查看单个请求跟踪信息,并确定延迟或失败的来源。
实时指标流
实时指标流以零延迟提供应用程序性能的实时亚秒级视图。您可以实时查看传入请求速率、响应时间、失败率和 CPU 使用率,这对于实时部署或事件调查至关重要。Live Metrics 使用从您的应用程序到 Application Insights 的安全出站连接,因此无需更改入站防火墙规则。
分布式跟踪和端到端事务
分布式跟踪使用共享的 operation_Id 关联多个服务中的遥测数据。当用户请求进入前端应用程序时,Application Insights 会将跟踪上下文标头传播到下游服务。端到端事务详细信息视图会将所有参与服务中的所有跨度整合到单个甘特图时间线中,准确显示微服务架构中各部分所花费的时间。
自定义事件和指标
除了自动收集的遥测数据外,您还可以使用 SDK 跟踪自定义事件和自定义指标。调用 trackEvent() 记录“CheckoutCompleted”或“FeatureFlagEnabled”等业务级事件。调用 trackMetric() 记录队列深度或缓存命中率等应用程序特定的度量值。自定义遥测数据会显示在相同的 Log Analytics 表中,并且可以与平台数据一起使用 KQL 查询。
// Node.js SDK example — tracking a custom event
const appInsights = require('applicationinsights');
appInsights.defaultClient.trackEvent({
name: 'CheckoutCompleted',
properties: { userId: '42', plan: 'premium' },
measurements: { orderValue: 99.99 }
});智能检测和故障异常
智能检测会使用机器学习自动分析您的遥测数据,并在发现异常模式时向您发出警报,例如失败率突然上升、服务器响应时间变差或异常数量异常增加。与需要手动配置的阈值警报不同,智能检测规则会根据应用程序的正常行为进行调整。警报会发送给订阅所有者,并显示在智能检测窗格中。
可用性测试
可用性测试(也称为 Web 测试)按计划从全球多个 Azure 区域向您的应用程序发送合成 HTTP 请求,频率最高可达每分钟一次。测试会检查您的公共终结点是否在超时时间内返回预期的 HTTP 状态代码。如果多个位置同时测试失败,就会触发警报。这使您能够独立于内部基础设施,从外部监视应用程序的可用性。
# Create a URL ping availability test via CLI
az monitor app-insights web-test create \
--name 'HomepagePing' \
--resource-group myRG \
--app-component myAppInsightsResource \
--defined-web-test-kind ping \
--request-url 'https://myapp.azurewebsites.net/' \
--locations '[{"Id":"us-ca-sjc-azr"},{"Id":"emea-gb-db3-azr"}]' \
--frequency 300 \
--timeout 30通过采样控制数据量
采样通过仅记录一部分请求来减少发送到 Application Insights 的遥测数据量,同时保持统计准确性。自适应采样会自动调整采样率,使数据摄取速率保持在目标范围内。固定速率采样则使用固定百分比。经过采样的遥测数据会带有标记,因此指标视图在显示计数和速率时,会自动根据采样因子进行修正。
用户和会话分析
Application Insights 为通过浏览器插桩的应用程序提供内置的使用情况分析功能。用户窗格显示唯一用户数,会话用于跟踪用户历程,漏斗用于直观呈现多步骤流程中的用户流失情况,留存图表则显示一段时间内回访的用户数量。这些工具对于产品团队尤其有用,可以在进行运营监视的同时优化转化率和用户参与度。
Application Insights 和 Log Analytics 表
Application Insights 数据存储在 Log Analytics 工作区的专用表中:requests、exceptions、dependencies、traces、pageViews、customEvents 和 customMetrics。当 Application Insights 配置为基于工作区的模式(新资源的默认模式)时,您可以将这些表与工作区中的其他数据联接,例如,将应用程序异常与记录在 AzureActivity 中的 Key Vault 访问拒绝事件关联起来。
// KQL — find the top 10 slowest dependencies in the last hour
dependencies
| where timestamp > ago(1h)
| where success == false or duration > 2000
| summarize AvgDuration = avg(duration), FailCount = countif(success==false)
by name, type
| top 10 by AvgDuration desc快速检查
测试您对本课程中 Microsoft Azure 基础知识(AZ-900)概念的理解。
课程回顾
在本课程中,您学习了以下内容:Application Insights 提供 APM 级别的请求速率、失败和依赖项遥测数据;Application Map 和分布式跟踪可以端到端地直观呈现微服务拓扑;可用性测试可以从全球多个位置验证公共终结点。接下来,我们将探索 Azure 仪表板和工作簿,了解如何与团队共享运营可见性。
常见问题解答
「Application Insights」课时是免费的吗?
是的 — 「Application Insights」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「Application Insights」这节课中我会学到什么?
使用 Application Insights SDK 为 Web 应用程序添加检测,探索应用程序映射,并使用实时指标流实时诊断问题。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Application Insights」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Azure Monitor 指标和警报
- 日志分析和 KQL 基础
- Application Insights
- Azure 仪表板和工作簿