36 lines
886 B
JavaScript
36 lines
886 B
JavaScript
const express = require('express');
|
|
const queue = require('../queue/queue');
|
|
|
|
function createHealthRouter(connectors = []) {
|
|
const router = express.Router();
|
|
|
|
router.get('/', async (req, res) => {
|
|
const connectorStatuses = connectors.map((connector) => connector.health());
|
|
const pending = await queue.pendingCount();
|
|
const retrying = await queue.retryingCount();
|
|
const deadLetters = await queue.deadLetterCount();
|
|
res.json({
|
|
status: 'ok',
|
|
connectors: connectorStatuses,
|
|
metrics: {
|
|
pending,
|
|
retrying,
|
|
deadLetters
|
|
}
|
|
});
|
|
});
|
|
|
|
router.get('/ready', async (req, res) => {
|
|
try {
|
|
await queue.ping();
|
|
res.json({ status: 'ready' });
|
|
} catch (err) {
|
|
res.status(503).json({ status: 'unready', reason: err.message });
|
|
}
|
|
});
|
|
|
|
return router;
|
|
}
|
|
|
|
module.exports = { createHealthRouter };
|