Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NodeJS中同时调用几个函数的Prometheus Histogram.observe()_Javascript_Node.js_Prometheus_Grafana_Prom Client - Fatal编程技术网

Javascript 如何在NodeJS中同时调用几个函数的Prometheus Histogram.observe()

Javascript 如何在NodeJS中同时调用几个函数的Prometheus Histogram.observe(),javascript,node.js,prometheus,grafana,prom-client,Javascript,Node.js,Prometheus,Grafana,Prom Client,我正在使用普罗米修斯监控一个NodeJS应用程序 创建这样的柱状图 const histogram = new client.Histogram({ name: 'node_request_duration_seconds', help: 'Histogram for the duration in seconds.', buckets: [1, 2, 5, 6, 10] }); 现在我调用histogram.observe()来监视对路径'/' const app =

我正在使用普罗米修斯监控一个NodeJS应用程序

创建这样的柱状图

const histogram = new client.Histogram({
    name: 'node_request_duration_seconds',
    help: 'Histogram for the duration in seconds.',
    buckets: [1, 2, 5, 6, 10]
});
现在我调用histogram.observe()来监视对路径
'/'

const app = express();
app.get('/', (req, res) => {

    //Simulate a sleep
    var start = new Date()
    var simulateTime = 1000

    setTimeout(function(argument) {
        // execution time simulated with setTimeout function
        var end = new Date() - start
        histogram.observe(end / 1000); //convert to seconds
    }, simulateTime)

    counter.inc();

    res.send('Hello world\n');
});
现在的问题是,我在NodesJS应用程序中有许多其他请求路径,因此为了监视每个请求路径,我是否应该手动编辑服务于请求的每个函数

是否有其他方法可以从外部调用每个函数的histogram.observe(),而无需手动编辑?

可能的解决方案:

  • 请参阅Express Prom Bundle library以跨不同路径自动测量指标。

  • 在请求处理完成后,使用onFinished回调调用Histogram.Observe()