added prometheus metrics to some services

This commit is contained in:
Steve Waterworth
2019-07-15 17:53:21 +01:00
parent 4f5e3883e8
commit 92b27cd0dc
4 changed files with 58 additions and 4 deletions

View File

@@ -13,6 +13,16 @@ const bodyParser = require('body-parser');
const express = require('express');
const pino = require('pino');
const expPino = require('express-pino-logger');
// Prometheus
const promClient = require('prom-client');
const Registry = promClient.Registry;
const register = new Registry();
const counter = new promClient.Counter({
name: 'items_added',
help: 'running count of items added to cart',
registers: [register]
});
var redisConnected = false;
@@ -49,6 +59,12 @@ app.get('/health', (req, res) => {
res.json(stat);
});
// Prometheus
app.get('/metrics', (req, res) => {
res.header('Content-Type', 'text/plain');
res.send(register.metrics());
});
// get cart with id
app.get('/cart/:id', (req, res) => {
@@ -165,6 +181,7 @@ app.get('/add/:id/:sku/:qty', (req, res) => {
// save the new cart
saveCart(req.params.id, cart).then((data) => {
counter.inc(qty);
res.json(cart);
}).catch((err) => {
req.log.error(err);