2019-08-26 22:43:46 +10:00

52 lines
1.2 KiB
JavaScript

'use strict';
const express = require('express');
// Constants
const PORT = 5000;
const HOST = '0.0.0.0';
// App
const client = require('prom-client');
const collectDefaultMetrics = client.collectDefaultMetrics;
// Probe every 5th second.
collectDefaultMetrics({ timeout: 5000 });
const counter = new client.Counter({
name: 'node_request_operations_total',
help: 'The total number of processed requests'
});
const histogram = new client.Histogram({
name: 'node_request_duration_seconds',
help: 'Histogram for the duration in seconds.',
buckets: [1, 2, 5, 6, 10]
});
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');
});
// Metrics endpoint
app.get('/metrics', (req, res) => {
res.set('Content-Type', client.register.contentType)
res.end(client.register.metrics())
})
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);