监控数据上报

# 默认的上报

目前内置的监控数据上报有两个方式,命令行输出和文件输出,大部分场景下是文件输出

# 扩展上报

实现上报的基础接口是 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 之后,会包含两个属性,metricManagerendPointService, 这两个属性包含了 Pandora.js 的绝大部分监控的功能。

MetricsManager 的接口见 这里

endPointService 通过 getEndPoint() 方法可以获取不同的 EndPoint,再通过 EndPoint 返回不同的结果,EndPoint 的方法请参考不同的 EndPoint。