监控你的 Nodejs 应用(NPM 包)

2016-10-08 20:51:08 +08:00
 hardog

tinymonit(Go Site)

可以搜集系统的 CPU 、内存、负载等信息,以及系统进程的 CPU 、内存等相关信息可自由组合,当然也支持集群模式,即如果你有多台机器多个进程仍然可以使用该包收集简单的监控信息来监控你的应用。

使用示例

做了一个简单的微信小程序 Demo 来显示如何在界面中查看监控信息:

wechat-tinymonit 代码详见: 点击查看 wechat ui 代码

特性列表

安装

$ npm install tinymonit -g

测试

运行测试:

$ npm run test

运行测试覆盖率:

$ npm run cover

使用

获取系统监控信息

const tm = require('tinymonit');
const osstat = tm.osstat;

Promise.resolve()
.then(() => osstat([8122]))
.then((stat) => console.log(r));

创建被监控进程实例(一般有多个)

const Part = require('tinymonit').part;

let part = new Part(3000, {
	timeout: 100,
	pid: process.pid // this is defalut
});

创建收集监控信息实例(一般只有一个)

const Central = require('tinymonit').central;

let ctl = new Central({
	timeout: 100,
	parts:[
		3000,
		[3001, 200]
		//'[remote ip]:[port]'
	]
});

// start collect performance data from 3000, 3001
Promise.resolve()
.then(() => ctl.collect())
.then((allstats) => {
	// do sth
});

超阀值告警

const tm = require('tinymonit');
const pid = process.pid;
const osstat = tm.osstat;
const alarm = tm.alarm;

Promise.resolve()
.then(() => osstat([pid]))
.then((stat) => {
	console.log(alarm.should_cpu_alarm(rstat, 1));
	console.log(alarm.should_mem_alarm(stat));
	console.log(alarm.should_load_alarm(stat));
	console.log(alarm.should_procs_alarm(stat, 2));
});

License

MIT

2103 次点击
所在节点    Node.js
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/311235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX