const events = require('./events');

exports.startMonitoring = (enable, eventBus) => {
    if (!enable) {
        return;
    }

    const client = require('prom-client');
    
    const requestDuration = new client.Summary('http_request_duration_milliseconds', 'App response time', ['path', 'method', 'status'], {
        percentiles: [0.1, 0.5, 0.9, 0.99],
    });

    eventBus.on(events.REQUEST_TIME, ({path, method, time, statusCode}) => {
        requestDuration.labels(path, method, statusCode).observe(time);
    });
};