说明
Open-Falcon 是小米运维部开源的一款互联网企业级监控系统解决方案,分为Agent、Transfe、Graph、Sender、Judge等模块。Agent会定时搜集机器的相关信息并上报;同时可以接收用户自定义数据。
Metrics 提供了强大的统计功能,分为guage、counter、meter、histogram、timer 5种基础数据结构。其Node实现为Node Metrics。
本模块 基于Node实现,主要功能为:
- 提供简易调用接口
- 统计分析相关数据
- 转换数据为Agent可接受格式
- 定时发送数据到Agen
使用方式
安装
npm install openfalcon-perfcounter
调用
var PerfCounter = require('openfalcon-perfcounter').getInstance();
PerfCounter.count(eventName, count);
PerfCounter.duration(eventName, duration);
就是这么简单,相关数据在搭建好的Falcon平台上就可以看到了。
API
1.引入 var OP = require('openfalcon-perfcounter');
2.设置 OP.setOption(option);
初始设置:
{
agentUri: 'http://127.0.0.1:1988/v1/push',
step: 60,
endpoint: os.hostname() || 'localhost',
cluster: {
connInterval: 1
}
};
若不调用,则使用初始设置。
3.获取实例
var PerfCounter = OP.getInstance();
var PerfCounter = OP.getClusterInstance();
若使用cluster模式,需调用getClusterInstance()。因为多个进程就同一event向Agent发送数据,Agent不会自动加和;若调用getClusterInstance(),PerfCounter会在每个worker进程向master进程发送数据,由master进程加和后发送给Agent。
4.设置Tag PerfCounter.addTags(eventName, {k1: v1, k2: v2})
Tag 会发送到Agent模块。
5.计数
PerfCounter.count(eventName, count);
PerfCounter.duration(eventName, duration);
perfCounter会自动分析出count()的 CPS-1-min、CPS-5-min、CPS-15-min,即1分钟、5分钟、15分钟内的调用频率(次/秒)
PerfCounter会自动分析出duration()的 75-percentile、95-percentile、99-percentile、999-percentile,即75%、95%、99%、99.9% 采样的最大时间。
6.详细控制
同时提供 incCounter、markMeter、updateHistogram、updateTimer 四种方法进行更精确的控制。其实count()与duration()就是利用meter及timer实现的。具体查看代码吧。