检测应用以进行监视
在基本级别,“检测”只是使应用程序能够捕获遥测数据。 检测应用程序有两种方法:
- 自动检测
- 手动检测
自动检测通过配置启用遥测数据收集,而不会触及应用程序的代码。 虽然该方法更方便,但其可配置性较低。 它也不适用于所有语言。 请参阅自动检测支持的环境和语言。 当自动检测可用时,这是启用 Azure Monitor Application Insights 的最简单方法。
手动检测对 Application Insights 或 OpenTelemetry API 进行编码。 在用户的上下文中,它通常是指在应用程序中安装特定于语言的 SDK。 这意味着必须自行管理更新到最新包版本的工作。 如果需要进行自定义依赖项调用或 API 调用,这些调用默认未使用自动调用捕获,则可以使用此选项。 手动检测有两个选项:
通过 Application Insights SDK 启用
只需在以下情况下安装 Application Insights SDK:
- 需要自定义事件和指标
- 需要控制遥测流
- 自动检测不可用(通常是因为存在语言或平台限制)
若要使用 SDK,需要在应用中安装一个小型检测包,然后检测 Web 应用、任何后台组件和网页中的 JavaScript。 应用及其组件不必托管在 Azure 中。 检测使用唯一令牌监视应用并将遥测数据定向到 Application Insights 资源。
GitHub 上托管 SDK 版本和名称的列表。 有关详细信息,请访问 SDK 版本。
通过 OpenTelemetry 启用
Microsoft 与两个以前常用的开源遥测项目(OpenCensus 和 OpenTracing)中的项目利益干系人合作。 我们一起帮助创建了一个项目 OpenTelemetry。 OpenTelemetry 包括所有主要云和应用程序性能管理 (APM) 供应商发布的内容,并由云原生计算基金会 (CNCF) 运营。 Microsoft 是 CNCF 的白金成员。
由于 OpenTelemetry 上的行业整合,Application Insights 中的一些旧术语会引起混淆问题。 下表突出显示了这些差异。 OpenTelemetry 术语将替换 Application Insights 术语。
| Application Insights | OpenTelemetry |
|---|---|
| 自动收集器 | 检测库 |
| 频道 | 导出程序 |
| 无代码/基于代理 | 自动检测 |
| 跟踪 | 日志 |
| 请求 | 服务器范围 |
| 依赖项 | 其他范围类型(客户端、内部等) |
| 操作 ID | 跟踪 ID |
| ID 或操作父级 ID | 范围 ID |