本文概述
- PM2
- Raygun
- Appmetrics
- Express Status Monitor
- Prometheus
- ClinicJS
你的客户是否通知服务已关闭? –这肯定是一个困难的局面。多年来, NodeJS成为快速微服务开发的一种流行的JavaScript框架。随着在NodeJS上运行的工作负载, 正确监控它们的基本指标变得至关重要。
让我们探索以下NodeJS监视工具, 这些工具将帮助你监视应用程序和服务器的性能以及其他指标。
PM2
文章图片
PM2是Rookie以及专家开发人员用来确保其应用程序始终处于活动状态的最著名的工具。 PM2用于运行实时生产工作负载并从CLI或Web界面监视它们。你可以将其安装为NPM模块。
PM2开箱即用提供以下功能。
- 在单个服务器上管理多个NodeJS应用程序
- 应用程序和错误日志管理
- Web界面集成, 用于监视应用程序的运行状况和指标
- 自动集群化NodeJS应用程序
- 热重装应用程序
- 支持启动脚本
- 将日志流传输到Web界面
要安装PM2, 请确保已安装NPM。要验证NPM的安装和版本, 请使用以下命令
npm --version
如果已安装, 此命令应显示NPM的版本。
此外, 使用以下命令安装PM2:
npm install -g pm2
全局标志-g将作为命令安装并使模块全局可用。要使用PM2启动任何应用程序, 请转到包含NodeJS项目的文件夹, 然后运行以下命令:
pm2 start <
start-filename>
--name myapp
上面的命令使用第一个参数中指定的文件启动NodeJs应用程序。它还使用myapp命名应用程序。使用pm2执行NodeJS应用程序时, 它确保该服务不会关闭, 如果发生, 它将尝试自动重新启动该应用程序。
要在Web界面上启用实时监视, 你需要在此处注册。生成密钥后, 你将能够看到有关将服务器上的PM2连接到Web界面的说明。
Raygun
文章图片
Raygun是一个用于管理和监视多种编程语言(包括NodeJS)的应用程序性能的平台。它可以帮助你使用崩溃日志实时调试问题, 分析应用程序代码并从代码本身中找到正确的错误点。
下面列出了一些功能。
- 提供实时准确的错误报告
- 支持全栈错误报告
- 实时用户会话监控
- 服务器性能监控和瓶颈检测实时
Appmetrics Appmetrics是由IBM管理和维护的一个开源项目。该项目的重点是提供准系统来收集跨各种活动(如数据事务, 网络速度, 数据库查询性能, CPU和内存利用率, 垃圾收集等)的出色应用程序度量。
将其与appmetrics-dash等插件合并可以提供一个出色的免费在线工具来监视你的应用程序。
文章图片
你可以使用Appmetrics作为中间件来构建监视应用程序。
Express Status Monitor Express Status Monitoring是专用于监视ExpressJS的开源工具。众所周知, ExpressJS是NodeJS中使用最流行的Web框架。
文章图片
从上面的快照中可以看到, 你可以监视响应时间, 请求频率, 状态代码, CPU /内存利用率和平均负载。
Prometheus
文章图片
Prometheus是由社区提供动力的监视和项目绩效洞察工具。 NodeJS开发人员社区已广泛使用它来将其性能指标转化为有用的见解。它不提供开箱即用的即插即用监控解决方案。你必须正确安装和设置才能提取数据以使其可视化。
如果你对学习感兴趣, 那么我建议你查看此Udemy课程。
ClinicJS
文章图片
Clinic.js是一个开放源代码库, 可用于与NodeJS应用程序集成以进行监视并从中获取关键的性能参数。它是三个主要工具的组合-Doctor, Bubbleprof和Flame。这些工具中的每一个都用于不同的指标监视。
诊所JS医生
- 收集健康和启发式指标
- 自动将探针注入应用程序
- 提供图形界面以查看应用程序性能和实时指标
- 生成优化应用程序的建议
- 绘制描述内部应用程序执行的气泡图
- 通过显示函数执行图帮助你查明错误
- 使用异步挂钩收集指标
- 提供函数调用之间的延迟信息
- 专用CPU指标监控
- 图形用户界面, 用于实时监控应用程序的CPU性能
- 生成火焰图, 帮助确定指标达到的最大值
- 深入了解应用程序的CPU消耗活动
总结
监视通常被忽略, 但对于应用程序可用性非常关键。由于开发成本是至关重要的因素, 因此分析代码, 监视性能并提供错误见解的工具必定物有所值。它们不仅节省时间和精力, 还可以通过为客户端提供更快的解决方案来帮助你满足SLA。
推荐阅读
- Android高版本联网失败报错:Cleartext HTTP traffic to xxx not permitted解决方法
- 选择React Native进行移动应用开发的7个理由
- Python数据分析的友好介绍
- Python脚本定期删除文件
- 每个开发人员都应了解的11个Python库和模块
- 11个很棒的iOS资源,使你成为更好的应用程序开发人员
- 全栈开发人员需要了解的19个框架和库
- 11种用于审核和管理代码质量的有趣工具
- 如何为回归问题选择ML算法()