检测应用以进行监视

已完成

就基础级别而言,“检测”只是使应用程序能够捕获遥测数据。 有两种检测应用程序的方法:

  • 自动检测
  • 手动检测

自动检测通过配置启用遥测数据收集,而不会触及应用程序的代码。 虽然非常方便,但其可配置性较低。 并且只提供部分语言版本。 请参阅自动检测支持的环境和语言。 当自动检测可用时,这是启用 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 与两个以前常用的开源遥测项目 OpenCensusOpenTracing 的项目利益干系人合作。 我们互帮互助,携手创建了 OpenTelemetry 这一项目。 OpenTelemetry 包括所有主要云和应用程序性能管理 (APM) 供应商发布的内容,并由云原生计算基金会 (CNCF) 运营。 Microsoft 是 CNCF 的白金成员。

由于 OpenTelemetry 上的行业整合,Application Insights 中的一些旧术语会引起混淆问题。 下表突出显示这些差异。 OpenTelemetry 术语将替换 Application Insights 术语。

Application Insights OpenTelemetry
自动收集器 检测库
通道 导出程序
无代码/基于代理 自动检测
跟踪 日志
请求 服务器跨度
依赖项 其他跨度类型(客户端、内部等)
操作 ID 跟踪 ID
ID 或父级操作 ID Span ID