冠军

导航

.NET 8 中的 ASP.NET Core 指标与 Grafana 仪表板入门

.NET 8 中的 ASP.NET Core 指标与 Grafana 仪表板入门

原文地址:https://devblogs.microsoft.com/dotnet/introducing-aspnetcore-metrics-and-grafana-dashboards-in-dotnet-8/

指标数据报告关于你的应用的诊断信息。.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 仪表板现在就可以使用。今天就尝试使用指标,并告诉我们你的想法:

希望动手练习一下?请访问位于 Microsoft Learn 中的新的 云原生培训模块

感谢您试用 .NET 8 和指标!

posted on 2024-02-18 10:53  冠军  阅读(241)  评论(0编辑  收藏  举报