监控Node.js的最简单方法:自动检测
监控您的 Node.js 应用程序可能很困难。棘手的部分是了解您需要监控什么,检测您的代码,然后理解所有发出的数据。 (这几乎是你可能会说的每一个部分😅)。 在 AppSignal,我们对我们的产品进行测试,并了解用户自己感受到的痛苦。我们关注的重点是易用性、灵活性和开发人员体验。作为开发人员,时间是您拥有的最宝贵的资源,因此我们始终努力为您节省时间。 为 Node.js 设置监控 - 免提模式
监控您的 Node.js 应用程序可能很困难。棘手的部分是了解您需要监控什么,检测您的代码,然后理解所有发出的数据。 (这几乎是你可能会说的每一个部分😅)。
在 AppSignal,我们对我们的产品进行测试,并了解用户自己感受到的痛苦。我们关注的重点是易用性、灵活性和开发人员体验。作为开发人员,时间是您拥有的最宝贵的资源,因此我们始终努力为您节省时间。
为 Node.js 设置监控 - 免提模式
为了了解您的代码的哪些部分导致了性能问题,您需要向其中添加检测。这样,您可以分解所有操作并衡量哪些操作最慢。
借助 AppSignal 的自动检测,我们可以尽可能多地减少手动工作。只需通过 CLI运行一些命令,您就可以设置好了。
我们的监控代理会检测您基础设施的不同部分并自动对其进行检测。这使 AppSignal 应用程序能够消化、处理、监控并向您展示您最需要的图表和仪表板。
开箱即用仪表
以下是 AppSignal 将自动为您检测的工具列表:
类型
工具
框架
Next.js
框架
Express.js
数据库
PostgreSQL
数据库
Redis
API
阿波罗
集成示例
“一张截图值一千字”,一位不知名的开发者曾经说过。
Next.js
默认情况下,Node.js 的 AppSignal 会自动检测所有传入的 HTTP 请求。然而,由于 Next.js 处理的是“页面”而不是路由的概念,我们需要能够将所有为您的页面发出的请求与操作名称组合在一起。
在 Next.js 集成本身内部,我们导出了一个页面感知处理程序,该处理程序可以与 Next.js 自定义服务器实例或 Express.js 应用程序一起使用。集成到位后,您的操作现在已添加页面的 HTTP 方法和路径名。这使您能够查看特定错误或性能事件。这是错误页面的屏幕截图,其中/
路径的 GET 请求发生错误:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--2z0Oox0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.appsignal .com/images/blog/2020-05/Errors.png)
这将更容易查明导致该错误的情况。在性能问题中,您现在还将看到添加了 HTTP 方法和路径名的操作。在我们的示例中,在下面的屏幕截图中,您正在查看具有/graphql
路径的 POST 请求的示例。
[](https://res.cloudinary.com/practicaldev/image/fetch/s---Jx35_EV---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https ://blog.appsignal.com/images/blog/2020-05/Performance.png)
PostgreSQL
您将看到特定请求中事件的更详细细分。这为knex
、bookshelfjs
、typeORM
和pg
库的所有其他使用者启用。这是一个示例,您可以在示例中查看 PostgreSQL 进程的持续时间:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--_7D99M0m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.appsignal.com /images/blog/2020-05/screenshot-1.png)
如果我们进一步放大此示例的性能,在页面下方,您会发现所有事件的时间线。这现在详细说明了您的 PostgreSQL 消费者。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--juTmfvjk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.appsignal.com /images/blog/2020-05/screenshot-2.png)
集成向您展示了数据库调用的跟踪,因此您可以看到哪个查询是您的邪恶(或天才)的根源😉。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--7l9zWc-o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.appsignal .com/images/blog/2020-05/screenshot-3.png)
Redis
通过 Redis 集成,您将看到对 Redis 的调用出现在事件时间轴中:
[的屏幕截图](https://res.cloudinary.com/practicaldev/image/fetch/s--fve6hj0Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog. appsignal.com/images/blog/2020-07/redis-event-timeline-2.png)
您还可以看到发送到 Redis 的命令的名称以及查询到的 Redis 实例的地址:
[的屏幕截图](https://res.cloudinary.com/practicaldev/image/fetch/s--ZlF28C_P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog .appsignal.com/images/blog/2020-07/redis-event-timeline-hover.png)
这对于那些希望调试对 Redis 缓存的长时间运行调用的人来说是个好消息。您甚至可以设置异常触发器,以针对运行时间超长的请求发送警报!
阿波罗
完成安装后,您将看到解析器出现在事件时间轴中。您将能够看到解析、验证和执行解析器所用时间的细分:
[的屏幕截图](https://res.cloudinary.com/practicaldev/image/fetch/s--ej9_b1BU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog. appsignal.com/images/blog/2020-08/apollo-request.png)
当您将鼠标悬停在解析器执行阶段时,您还可以看到操作的名称和主体:
[的屏幕截图](https://res.cloudinary.com/practicaldev/image/fetch/s--A6diazFf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog .appsignal.com/images/blog/2020-08/apollo-request-hover.png)
这对于那些希望调试似乎需要很长时间的 GraphQL 查询的人来说非常有用,而且您不确定减速可能发生在哪里。不要忘记我们的异常在这里也触发了- 这些对于在查询时间达到某个阈值时发出警报非常有用。
尝试 AppSignal:监控变得简单而甜蜜🍪
如果您以前没有使用过 AppSignal,那么现在您知道我们如何通过简化监控来节省您的时间。我们希望您能试试我们。当您这样做时,请随时与我们联系,我们还将免费送您一盒stroopwafels。
PS。如果您正在通过一个伟大的 OSS 项目帮助世界,我们通过免费的 AppSignal 帐户帮助您支持。向您重视的维护者宣传!我们支持你。
更多推荐
所有评论(0)