用 ES7 的装饰器来引入模块,监控方法的性能,大家觉得有前途么?
发布于 2 个月前 作者 wyvernnot 288 次浏览 来自 问答

最近拿 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

点点鼠标,马上就能看到性能监控数据了

Selection_629.png

是不是挺有意思的?代码在这儿

代码

回到顶部