在我的应用程序中查看跟踪 asp.net core 捕获的选项有哪些?

问题描述

我最近一直在阅读有关 asp.net core 中分布式跟踪的主题。我正在使用 asp.net core 5,可以看到它正在自动创建与 W3C 上下文跟踪兼容的跟踪信息。我计划使用此信息来帮助改进我的标准日志记录,但是,我也想知道我有哪些选项可以记录此跟踪信息以用于可视化工具。

我猜 Application Insights 与此无缝集成(如果错了请纠正我),但是除了 AI 之外我还有什么选择?我通常使用 AWS 服务来处理所有事情,因为我的客户在 AWS 云中,但看起来 AWS X-Ray 的 .net 核心库会滚动他们自己的跟踪数据,并且不会发送 .net 已经捕获的跟踪信息,这有点烦。

这个追踪信息除了AI还有什么地方可以发送查看?或者是否可以使用 AWS X-Ray 做到这一点,而我只是没有找到有关如何实现的答案?

解决方法

我想我找到了完美的答案。重新阅读 OpenTelemetry 文档,它看起来像是与 .net core > 3 中存在的 asp.net core 活动功能无缝集成。

来自https://opentelemetry.io/docs/net/getting-started/

用于 .NET 的 OpenTelemetry 在 OpenTelemetry 实现中是独一无二的,因为它与 .NET System.Diagnostics 库集成。在较高的层面上,您可以将 OpenTelemetry for .NET 视为通过 System.Diagnostics 提供的遥测与更大的 OpenTelemetry 生态系统(例如 OpenTelemetry Protocol (OTLP) 和 OpenTelemetry Collector)之间的桥梁。

这使我能够导出到许多不同的跟踪提供程序,例如 Jaeger 和 Zipkin,但是在 OpenTelemetry 的 NuGet 包中我还注意到它有一个 AWS X-Ray 导出器,如果它可以工作,那就太棒了嗯。