用 ES7 的装饰器来引入模块,监控方法的性能,大家觉得有前途么?
最近拿 ES6 写 React 各种爽 (啊,啊,啊,啊,啊),都好久没写后端 Node.JS 的代码了。
先用 ES6 写个 HelloWorld
import {createServer} from 'http';
class App {
handleRequest(req, res) {
res.end('ok');
}
}
let app = new App();
let server = createServer(app.handleRequest);
server.listen(3000);
监控 handleRequest 方法
假如这个时候,运维人员想要监控 handleRequest 方法的执行,需要他们提供一个 InfluxDB 数据库的地址,然后开发只需要修改一下代码,加上一个 ES7 的装饰器
import {createServer} from 'http';
import {influxdb} from 'oneapm-decorators';
class App {
@influxdb({
host: 'influxdb的地址',
port: 8086
})
handleRequest(req, res) {
....
}
}
注意,装饰器这玩意 就长这样
@influxdb({
host: 'influxdb的地址',
port: 8086
})
使用的时候导入它,加在要监控的方法前面。
登录 InfluxDB 的可视化界面 Grafana
点点鼠标,马上就能看到性能监控数据了
是不是挺有意思的?代码在这儿