.NET 分布式跟踪
分布式跟踪是一种诊断技术,可帮助工程师本地化应用程序中的故障和性能问题,尤其是可能分布在多台计算机或进程中的故障和性能问题。 此技术通过应用程序跟踪请求,将不同应用程序组件完成的工作关联起来,并将其与应用程序可能为并发请求执行的其他工作区分开来。 例如,负载均衡器可能首先收到对典型 Web 服务的请求,然后转发到 Web 服务器进程,然后向数据库发出多个查询。 使用分布式跟踪,工程师可以区分这些步骤是否失败、每个步骤花费的时间,以及每个步骤运行时可能记录的消息。
.NET 应用开发人员开始指南
关键的 .NET 库经过仪器化处理,以自动生成分布式跟踪信息。 但是,需要收集和存储此信息,以便以后可供查看。 通常,应用开发人员选择一个遥测服务来存储这些跟踪信息,然后使用相应的库将分布式跟踪遥测传输到所选服务:
- OpenTelemetry 是一个支持多个服务的供应商中立库。 有关详细信息,请参阅使用 OpenTelemetry 收集分布式跟踪。
- Application Insights 是Microsoft提供的一项功能齐全的服务。 有关详细信息,请参阅使用 Application Insights 收集分布式跟踪。
- 有许多提供集成 .NET 解决方案的高质量第三方应用程序性能监视(APM)供应商。
有关详细信息,请参阅 了解分布式跟踪概念 和以下指南:
对于第三方遥测收集服务,请按照供应商提供的设置说明进行操作。
.NET 发出的内置活动
有关 .NET 中内置的活动的综合列表,请参阅 .NET中的
.NET 库开发人员入门
.NET 库不需要关注遥测最终的收集方式,只涉及如何生成遥测数据。 如果希望库的使用者能够在分布式跟踪中看到库所做的详细工作,请添加分布式跟踪检测以提供支持。
有关详细信息,请参阅 了解分布式跟踪概念 和 添加自定义分布式跟踪检测 指南。