监控数据上报
默认的上报
目前内置的监控数据上报有两个方式,命令行输出和文件输出,大部分场景下是文件输出。
扩展上报
实现上报的基础接口是 Reporter ,包含 start() 和 stop() 方法。
所有的实现都是围绕这两个方法来展开的,我们基于 Reporter ,实现了一些可以继承的基类,大致继承关系如下。

- Reporter 基础接口,没有实现
- ScheduledMetricsReporter 针对 Metrics 的周期性采集的上报基类,只上报 Metrics
- ConsoleReporter 通过命令行输出 Metrics 的信息
- FileMetricsManagerReporter 通过写入文件的方式输出 Metrics 信息
- CustomReporter 自定义上报基类,可以上报所有东西,一般自定义的上报会继承这个类
- TraceReporter 上报链路信息
自定义
这里介绍 CustomReporter 的自定义,通过继承基类和实现 report 抽象方法,可以方便的进行自定义的数据上报。
class MyReporter extends CustomReporter {
metricsManager;
endPointService;
async report() {
// TODO execute report method where interval
}
}
继承 CustomReporter 之后,会包含两个属性,metricManager 和 endPointService, 这两个属性包含了 Pandora.js 的绝大部分监控的功能。
MetricsManager 的接口见 这里
endPointService 通过 getEndPoint() 方法可以获取不同的 EndPoint,再通过 EndPoint 返回不同的结果,EndPoint 的方法请参考不同的 EndPoint。