.NET 8 中的 ASP.NET Core 指标与 Grafana 仪表板入门
.NET 8 中的 ASP.NET Core 指标与 Grafana 仪表板入门
指标数据报告关于你的应用的诊断信息。.NET 8 为 ASP.NET Core 增加了超过一打的有价值的指标数据:
- HTTP 请求计数与持续时间
- 活动的 HTTP 请求数量
- 路由匹配结果
- 限速租约与队列持续时间
- SignalR 传输使用状况
- 来自 Kestrel 的底层连接与 TLS 使用状况
- 错误处理诊断信息
- 其它
指标是伴随着时间推移所报告的数值度量值。例如,每个由 ASP.NET Core 处理的 HTTP 请求拥有一个记录在 http.server.request.duration 中的持续时间。诸如 .NET OpenTelemetry SDK 这样的工具可以通过对应用的配置,来将这些测量数据导出遥测的存储中,例如 Prometheus 或者 Azure Monitor 中。指标作为 OpenTelemetry 标准的一部分,所有现代的工具都支持它们。
指标数据在与工具结合使用时非常有用,可以监视应用的运行状况和活动:
- 通过在仪表板上展示的图形来观察应用随时间的变化。例如,查看使用该应用的用户的活动。
- 如果应用超过阈值,则实时触发警报。例如,如果请求持续时间或错误计数超过限制,请发送电子邮件。
使用指标 Metrics
ASP.NET Core 的内置指标 是被自动记录的。如何使用这些指标取决于你。下面让我们浏览一些可用的指标。
.NET Aspire 仪表板
.NET Aspire 使用构建可观测性的很有想法的软件栈。Aspire 仪表板包括一个简单、用户友好的界面,用来查看结构化日志、跟踪和指标。Aspire 应用会自动配置为将开发过程中的的遥测数据发送给仪表板。
从这里你可以看到可用的指标数据集合,提供了名称、描述和数值的图形。Aspire UI 包括了指标过滤器。可以使用指标的强大的特性:属性来进行过滤。
每当有数据被记录下来,它会被使用被称为属性的元数据进行标注。例如,http.server.request.duration 记录 HTTP 请求的持续时间,伴随着该请求的属性:server.address, HTTP 请求方法,匹配的路由,响应状态码等等。然后,通过查询属性可以获得有关请求的详细数据:
- 针对应用特定端点的 HTTP 请求持续时间,例如 /product/
- 响应状态码是 4XX 的请求数量
- 一段时间中抛出服务器端异常的请求数量
- 对比 HTTP 与 HTTPS 请求持续时间
- 对比使用 HTTP/1.1 与 HTTP/2 的访问者数量
ASP.NET Core Grafana 仪表板
Grafana 是用来构建仪表板和预警的强大工具。它支持你创建可交互的,可定制的仪表板,它由各种面板、图形和图表所构建。一旦构建完成,仪表板可以将展示遥测所存储的数据。Grafana 是用来监控产品应用的最佳工具之一,仪表板提供了一个关于应用健康和使用状态的实时视图。
Grafana 提供了构建你所需要的仪表板的强大功能,但是构建高质量的仪表板需要一点时间。作为添加各种指标到 .NET 8 的一部分,我们提供了一些预先构建的仪表板,用来监视 ASP.NET Core 应用的健康与活动。
用于 ASP.NET Core 的 Grafana 仪表板在 GitHub 上开源。可以通过 grafana.com 中的下载。你可以直接使用这些仪表板,或者根据你的需求进行定制。
可以通过 .NET Aspire 指标示例应用 来尝试 Grafana + ASP.NET Core。
更多内容
- 不限于内置的 .NET 指标,你可以 创建自定指标
- dotnet-counters 是一个用来监视 .NET 应用的命令行工具, 它可以在后台实时监视应用的性能指标。不需要设置,使得它对于本地的调查或者检查指标测量正常工作非常方便。
- 在 单元测试 中测试指标, ASP.NET Core 集成测试,MetricCollector 和 IMeterFactory 可以组合使用来断言测试数据。
现在就开始尝试
.NET 8, ASP.NET Core Grafana 仪表板和 .NET Aspire 仪表板现在就可以使用。今天就尝试使用指标,并告诉我们你的想法:
- 下载最新的 .NET 8 正式版
- 在你选择的工具中使用指标
- 更多关于 .NET Aspire 仪表板 和 使用入门
- 下载 ASP.NET Core Grafana 仪表板
- 安装 dotnet-counters 命令行工具
希望动手练习一下?请访问位于 Microsoft Learn 中的新的 云原生培训模块
感谢您试用 .NET 8 和指标!