检测应用以进行监视
就基础级别而言,“检测”只是使应用程序能够捕获遥测数据。 有两种检测应用程序的方法:
- 自动检测
- 手动检测
自动检测通过配置启用遥测数据收集,而不会触及应用程序的代码。 虽然非常方便,但其可配置性较低。 并且只提供部分语言版本。 请参阅自动检测支持的环境和语言。 当自动检测可用时,这是启用 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 | Span ID |