开发者都想知道“为什么我的应用会慢?”。现代软件系统是分布式且复杂的,这使得诊断影响客户体验的问题变得越来越困难。
我们设计新的跟踪和指标功能时考虑了这些问题。这些功能使 Prisma 更具可观察性,也更容易监控和调试。
通过跟踪获取每个 Prisma 操作的详细信息
Prisma 中的跟踪功能提供了 Prisma Client 执行的每个查询的详细视图,包括执行每个查询所需的时间。这对于调试性能问题、识别瓶颈以及了解数据库操作行为非常有用。
将跟踪可视化为瀑布图
使用 Jaeger 或 Honeycomb 等跟踪工具,可以将跟踪可视化为如下所示的瀑布图:
Prisma 跟踪符合 OpenTelemetry 标准
跟踪是一个强大的工具,可以帮助您跟踪请求在应用中的流向。这对于调试分布式系统特别有用,因为每个请求可能涉及多个服务。为了充分发挥跟踪的功能,它应该在您的整个应用中端到端地实现。
Prisma 中的跟踪功能完全符合 OpenTelemetry 标准,因此您可以将其无缝集成到您的端到端应用跟踪设置中。这也意味着您可以将跟踪数据导出到任何兼容 OpenTelemetry 的跟踪系统,例如 Jaeger、Zipkin、Honeycomb、Datadog 等。
要开始使用跟踪,请查看跟踪文档。
使用指标监控系统健康和性能
指标是一项新功能,可让您监控 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 在幕后执行的操作,以便您更轻松地诊断和排查问题。
指标可以与外部监控系统集成
指标可以直接由您的应用分析,也可以发送到外部监控系统和时序数据库,例如 Prometheus 或 StatsD。与这些外部系统的集成可以显著提高您的监控能力,因为它提供了以下开箱即用的功能:
- 通过可视化和仪表盘进行实时性能监控
- 历史数据的查询和分析
- 针对故障和性能下降的精确自动化警报
例如,通过将流行的可视化工具 Grafana 集成到您的指标管道中,您可以创建详细的仪表盘和图表:
总之,指标可以帮助您分析和监控应用的健康状况。它还有助于识别性能问题和配置错误,以便您可以快速采取必要的行动。
要开始使用指标,请查看指标文档。
跟踪 vs 指标 — 何时使用什么?
跟踪对于获取每个操作生命周期的精细信息很有帮助。在分布式环境中,跟踪尤其宝贵,因为一个请求可以穿过多个服务。
如果您需要用于监控应用健康和性能的聚合数值数据,那么请考虑使用指标。
同样重要的是要注意,跟踪和指标是互补的功能。它们可以一起使用来提高系统的可观察性。
开始使用跟踪和指标
要开始使用跟踪和指标:
分享您的反馈
我们渴望听到您的意见!请试用这些功能,并告诉我们您的想法。
📊 分享您对跟踪的反馈。
📈 分享您对指标的反馈。
🚀 如果您计划将这些功能用于关键任务应用,请联系我们讨论您的用例。
不要错过下一篇文章!
订阅 Prisma 新闻通讯