mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
52 lines
1.2 KiB
JavaScript
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}`); |