2022 年 8 月 9 日

Prisma 对跟踪和指标的支持现已进入预览阶段

阅读时长 5 分钟

我们很高兴推出两项全新的预览功能:跟踪(Tracing)和指标(Metrics)。这两项功能将帮助您有效地监控和排查各种性能问题。快来试试吧,并分享您的反馈

Prisma Support for Tracing and Metrics Is Now in Preview

开发者都想知道“为什么我的应用会慢?”。现代软件系统是分布式且复杂的,这使得诊断影响客户体验的问题变得越来越困难。

我们设计新的跟踪和指标功能时考虑了这些问题。这些功能使 Prisma 更具可观察性,也更容易监控和调试。

通过跟踪获取每个 Prisma 操作的详细信息

Prisma 中的跟踪功能提供了 Prisma Client 执行的每个查询的详细视图,包括执行每个查询所需的时间。这对于调试性能问题、识别瓶颈以及了解数据库操作行为非常有用。

将跟踪可视化为瀑布图

使用 JaegerHoneycomb 等跟踪工具,可以将跟踪可视化为如下所示的瀑布图:

Visualization of a single trace. A single trace consists of multiple spans. Each span represents the time taken by a certain stage of the total operation.

Prisma 跟踪符合 OpenTelemetry 标准

跟踪是一个强大的工具,可以帮助您跟踪请求在应用中的流向。这对于调试分布式系统特别有用,因为每个请求可能涉及多个服务。为了充分发挥跟踪的功能,它应该在您的整个应用中端到端地实现。

Prisma 中的跟踪功能完全符合 OpenTelemetry 标准,因此您可以将其无缝集成到您的端到端应用跟踪设置中。这也意味着您可以将跟踪数据导出到任何兼容 OpenTelemetry 的跟踪系统,例如 JaegerZipkinHoneycombDatadog 等。

Prisma tracing can be used with any OpenTelemetry-compatible tracing system

要开始使用跟踪,请查看跟踪文档

使用指标监控系统健康和性能

指标是一项新功能,可让您监控 Prisma 与数据库的交互方式。指标公开了一组计数器仪表直方图,这些指标提供了有关 Prisma 和数据库连接状态的信息。我们公开的指标包括:

  • 执行的 Prisma Client 查询总数 (prisma_client_queries_total)
  • 执行的 SQL 或 MongoDB 查询总数 (prisma_datasource_queries_total)
  • 活动数据库连接数 (prisma_pool_connections_open)
  • 包含所有执行的 Prisma Client 查询持续时间的直方图 (prisma_client_queries_duration_histogram_ms_bucket)
  • ...等等!

注意:公开的指标完整列表可在指标文档中找到。

Prisma 常常感觉像一个黑盒,它神奇地代表您与数据库交互。当出现问题时,这种对 Prisma 内部工作缺乏透明度可能会成为问题。借助指标,我们旨在让您更好地了解 Prisma 在幕后执行的操作,以便您更轻松地诊断和排查问题。

指标可以与外部监控系统集成

指标可以直接由您的应用分析,也可以发送到外部监控系统和时序数据库,例如 PrometheusStatsD。与这些外部系统的集成可以显著提高您的监控能力,因为它提供了以下开箱即用的功能:

  • 通过可视化和仪表盘进行实时性能监控
  • 历史数据的查询和分析
  • 针对故障和性能下降的精确自动化警报

例如,通过将流行的可视化工具 Grafana 集成到您的指标管道中,您可以创建详细的仪表盘和图表: 使用 Grafana 进行 Prisma 指标可视化

总之,指标可以帮助您分析和监控应用的健康状况。它还有助于识别性能问题和配置错误,以便您可以快速采取必要的行动。

要开始使用指标,请查看指标文档

跟踪 vs 指标 — 何时使用什么?

跟踪对于获取每个操作生命周期的精细信息很有帮助。在分布式环境中,跟踪尤其宝贵,因为一个请求可以穿过多个服务。

如果您需要用于监控应用健康和性能的聚合数值数据,那么请考虑使用指标。

同样重要的是要注意,跟踪和指标是互补的功能。它们可以一起使用来提高系统的可观察性。

开始使用跟踪和指标

要开始使用跟踪和指标:

分享您的反馈

我们渴望听到您的意见!请试用这些功能,并告诉我们您的想法。

📊 分享您对跟踪的反馈

📈 分享您对指标的反馈

🚀 如果您计划将这些功能用于关键任务应用,请联系我们讨论您的用例。

不要错过下一篇文章!

订阅 Prisma 新闻通讯