pandora-metrics
Version:
## Overview
46 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const MetricsInjectionBridge_1 = require("./util/MetricsInjectionBridge");
const debug = require('debug')('pandora:metrics:service');
const default_1 = require("./conf/default");
const MetricsActuatorManager_1 = require("./MetricsActuatorManager");
const extend = require("extend");
class MetricsActuatorServer {
constructor(options) {
this.logger = options.logger;
debug('init metrics manager');
// 初始化 metrics server
// 理论上这个应该在 metricsEndPoint 里初始化,这里提前,因为 reporter 要用
this.metricsManager = options.metricsManager;
this.metricsManager.setLogger(this.logger);
// set metricsManager for some endPoint
MetricsInjectionBridge_1.MetricsInjectionBridge.setMetricsManager(this.metricsManager);
debug('init actuator manager');
// 初始化 actuators
this.actuatorManager = new MetricsActuatorManager_1.MetricsActuatorManager({
logger: this.logger,
config: extend(true, {}, default_1.default, options.config || {}),
});
}
getMetricsManager() {
return this.metricsManager;
}
getEndPointService() {
return this.actuatorManager.endPointService;
}
registerEndPoint(endPoint) {
this.getEndPointService().register(endPoint);
}
stop() {
this.metricsManager.setEnabled(false);
}
restart() {
this.metricsManager.setEnabled(true);
}
destroy() {
this.metricsManager.destory();
this.actuatorManager.destory();
}
}
exports.MetricsActuatorServer = MetricsActuatorServer;
//# sourceMappingURL=MetricsActuatorServer.js.map