本文是《nodejs内存监控》监控系列的第一篇文章,主要是讲述nodejs主要监控的指标以及市面上一些主流的监控方案。(本文非原创,搬了一些文章的知识点只做为笔记使用)前端
Node.js 在前端的地位愈加重要,在前端的另外一面后面也逐渐展露手脚。可是,仅仅一些 Demo 只能覆盖企业级应用的部分场景,服务在生产环境的稳定运行依靠的是完善的监控、日志、流程等基础设施。node
当使用 Node 在生产环境做为服务器语言时,并发量过大或者代码问题形成 OOM (out of memory) 或者 CPU 满载这些都是服务器中常见的问题,此时经过监控 CPU 及内存,再结合日志及 Release 就很容易发现问题。express
Node.js 监控的指标衡量的服务的负载、处理能力、健康状态,下面来介绍一下性能指标的定义。服务器
用于判断在服务器中的占用状况,是否存在内存泄露问题。内存的基本指标能够经过 process.memoryUsage()
方法来获取。markdown
堆空间分布状况并发
支持监控 koa 与 express 框架的服务,指标展现看板很人性化,也支持 Prometheus。app
egg.js 监控插件,采集指标少,仅 http 与 rpc 性能指标,适合二次开发。框架
阿里开源 Node.js 监控工具,在 egg.js 上使用过一段时间,但服务不够稳定。koa
适用于nest.js
简单的监控服务。ide
阿里 Node.js 应用程序监视,Docker Compose 的 Sandbox 部署配置。不过看起来很久没人维护应该是kpi项目烂尾了
通用 Node.js 进程守护工具,附带监控指标。监控指标须要加钱,并且不支持本地部署。对于数据敏感的能够直接pass掉。
Express 框架的监控插件。
Prometheus 的 Node.js 客户端,能够建立指标类型,用于生成标准的 metrics。搭配prometheus十分强大,固然也能够脱离prometheus只用来采集数据。
基于 prom-client 的,用于采集 GC 信息。
node.js 应用指标,支持 prometheus,另外 appmetrics-dash
提供看板功能。
收集指标集并将其公开 metrics,以便 Prometheus 服务器抓取。
轻量级实时 Node.js 内核性能监控分析工具。纯开源项目,若是要求不高仍是十分推荐上这个开源项目。
开源方案中的第一选择!,支持本地部署并且也是免费试用功能强大,中小公司的第一选择。不过严格上属于半开源,监控数据会上传到阿里云的后台进行清洗处理,对于数据比较敏感的可能没办法试用。
国外一家提供监控基础设施的服务商。
由于我自建了k8s集群,而且把绝大部分项目都迁移到了k8s上,全部天然而然的选择了prometheus + granafa + prom-cilent
的开源方案来实现node项目的监控。
在prometheus的基础上,使用了开源的nodeJs dashboard
。在这个基础上额外加上了http数据的相关监控。
在接下来的第二篇中,我将会大体的基于prometheus + granafa + prom-cilent
展现如何监控nodejs项目。