公开指标
通过将自定义指标插入您的代码,您将能够实时监控代码中的值。
快速开始
首先安装 tx2 模块:
bash
$ npm install tx2
然后创建名为 monit.js 的应用程序:
js
const http = require('node:http')
const tx2 = require('tx2')
const meter = tx2.meter({
name: 'req/sec',
samples: 1,
timeframe: 60
})
http.createServer((req, res) => {
meter.mark()
res.writeHead(200, { 'Content-Type': 'text/plain' })
res.write('Hello World!')
res.end()
}).listen(6001)
并使用 PM2 启动它:
bash
$ pm2 start monit.js
现在使用命令显示指标:
bash
$ pm2 show [app]
# pm2 show monit
注意:指标位于“自定义指标”部分。
或者您可以使用基于终端的界面:
bash
$ pm2 monit
指标助手可用
然后您可以编写自己的指标来跟踪重要信息。 提供 4 种不同的探头:
- 简单指标:可以立即读取的值
- 例如。 监控变量值
- 计数器:递增或递减的事物
- 例如。 正在处理下载,已连接用户
- Meter:作为事件/间隔测量的事物
- 例如。 http服务器每分钟请求
- 直方图:保留偏向最后 5 分钟的统计相关值库,以探索它们的分布
- 例如。 监视对数据库执行查询的平均值
API 文档
注意:参考TX2 API文档
例子
简单指标:简单的价值报告
这允许公开可以立即读取的值。
js
const tx2 = require('tx2')
// 这里将每秒调用值函数以获取值
const metric = tx2.metric({
name: 'Realtime user',
value() {
return Object.keys(users).length
}
})
// 在这里我们将调用 valvar.set() 来设置新值
const valvar = tx2.metric({
name: 'Realtime Value'
})
valvar.set(23)
计数器:顺序值更改
递增或递减的值。
计算活动 Http 请求的示例:
js
const http = require('node:http')
const tx2 = require('tx2')
const counter = tx2.counter({
name: 'Active requests'
})
http.createServer((req, res) => {
counter.inc()
req.on('end', () => {
// 递减计数器,计数器将等于 0
counter.dec()
})
res.writeHead(200, { 'Content-Type': 'text/plain' })
res.write('Hello World!')
res.end()
}).listen(6001)
仪表:平均计算值
作为事件/间隔测量的值。
计算每秒查询次数的示例:
js
const http = require('node:http')
const tx2 = require('tx2')
const meter = tx2.meter({
name: 'req/sec',
samples: 1,
timeframe: 60
})
http.createServer((req, res) => {
meter.mark()
res.writeHead(200, { 'Content-Type': 'text/plain' })
res.write('Hello World!')
res.end()
}).listen(6001)
选项
samples 选项是速率单位。 默认为 1 秒。 timeframe 选项是分析事件的时间范围。 默认为 60 秒。
直方图
保留一个偏向于最后 5 分钟的统计相关值库,以探索它们的分布。
js
const tx2 = require('tx2')
const histogram = tx2.histogram({
name: 'latency',
measurement: 'mean'
})
let latency = 0
setInterval(() => {
latency = Math.round(Math.random() * 100)
histogram.update(latency)
}, 100)