通过应用程序和opentelemetry优化您的Prisma查询
#typescript #node #prisma #apm

AppSignal通过OpentElemetry与Prisma无缝集成,以使您对应用程序的执行方式有着无价的见解。

在这篇博客文章中,我们将概述如何使用应用程序信号来优化应用程序的PRISMA集成,降低效率低下的数据库查询,发现异常并提高应用程序的可伸缩性。

监视Prisma的好处

如果您的应用程序处理多个查询以满足单个请求,则重要的是确保每个查询都能发挥最佳性能(尤其是如果您的应用程序具有深度嵌套的对象结构)。

例如,想象一下一篇著名的博客文章,该文章还允许其他作者的评论。这可能会导致复杂,效率低下和缓慢的数据库查询。随着越来越多的人对帖子的评论,检索博客文章和相关对象的查询可能会变得笨拙,从而对应用程序的性能产生负面影响。加入和子征服可以进一步加剧问题并可能检索冗余信息。

Diagram of a blog post's nested object structure

使用AppSignal的活动时间表,您可以识别出较差的Prisma查询,并在引起瓶颈或影响您的应用程序时的可用性之前进行补救。

与AppSignal有关的指标

AppSignal提供了您所需的见解,以帮助您的应用程序量表,而不是失败。

查找时间轴异常

AppSignal的事件时间表清楚地概述了您的应用程序在请求级别上的性能。它显示了请求执行了哪些操作。

此示例显示了我们的事件时间表如何解释您的应用程序的Prisma OpenTelemetry数据:

Event timeline

微观和宏观指标

单击事件日志中的PRISMA事件,您可以更深入地研究数据库性能。您可以查看描述数据库的响应时间和吞吐量(已处理事件的数量)的图表。

在下图中,多个查看我们的博客文章的请求指示慢数据库查询。

Event database performance charts

您还可以看到涉及同一事件的其他应用程序操作的方便列表。使用此列表来确定需要查询优化的位置,发现事件之间的潜在相关性,并避免耗时的调试会话。

将Prisma数据发送到AppSignal

感谢OpentElemetry,integrate AppSignal and Prisma很容易。首先,确保您的应用程序使用Prisma 4.2或更高和appssignal,用于节点3.0或更高。

要使用您的node.js软件包的appsignal自动仪器prisma,请在Prisma架构中启用跟踪预览功能,如下所示:

generator client {
  provider = "prisma-client-js"
  previewFeatures = ["tracing"]
}

仪器后,PRISMA集成将为每个查询发送应用程序范围(包括数据库连接和序列化过程的儿童跨度)。每个查询跨度显示执行的查询以及完成的时间。

AppSignalðOpentElemetry

由于our adoption of OpenTelemetry,AppSignal Instruments 16 libraries and frameworks out-of-the-box。获取您需要有效有效地监视和优化应用程序的数据。

支持的库和框架
express
快速
FS模块
GraphQl(Apollo,Yoga)
http/https模块
knex(书架)
ko.js
mongodb
猫鼬
mysql
Nestjs
next.js
PostgreSQL
prisma
redis
restify

尝试AppSignal并获取StroopWafelsðª

我们期待将来向您介绍更多的开源功能和框架支持!

与此同时,如果您对应用程序信号有任何疑问,请不要犹豫对get in touch!我们提供Dev-to-dev支持,give free accounts to open-source projects,如果您是Appsignal的新手,我们会以美味的stroopwafels寄来欢迎您加入您的船上。