29 lines
910 B
JavaScript
29 lines
910 B
JavaScript
|
// Voir https://github.com/siimon/prom-client
|
||
|
const client = require('prom-client');
|
||
|
// Voir http://expressjs.com/
|
||
|
const express = require('express')
|
||
|
|
||
|
// Création de notre application Web
|
||
|
const app = express()
|
||
|
|
||
|
// On collecte les métriques proposées par défaut par le module 'prom-client'
|
||
|
const collectDefaultMetrics = client.collectDefaultMetrics;
|
||
|
collectDefaultMetrics({ timeout: 5000 }); // Récolte toutes les 5s
|
||
|
|
||
|
// Définition des métriques
|
||
|
const helloWorldCounter = new client.Counter({
|
||
|
name: 'demoapp_hello_world',
|
||
|
help: 'Total de requêtes sur la page "Hello World"'
|
||
|
});
|
||
|
|
||
|
app.get('/', (req, res) => {
|
||
|
helloWorldCounter.inc()
|
||
|
res.send('Hello World!')
|
||
|
})
|
||
|
|
||
|
// On expose les métriques de notre récolteur sur /metrics
|
||
|
app.get('/metrics', (req, res) => res.send(client.register.metrics()))
|
||
|
|
||
|
// On écoute sur le port 0.0.0.0:3000
|
||
|
app.listen(3000, () => console.log('listening on port 3000'))
|