Prometheus
How to use the built-in prometheus exporter
Basic Usage
import http from 'http';
import { Queue } from 'bullmq';
const queue = new Queue('my-queue');
const server = http.createServer(
async (req: http.IncomingMessage, res: http.ServerResponse) => {
try {
if (req.url === '/metrics' && req.method === 'GET') {
const metrics = await queue.exportPrometheusMetrics();
res.writeHead(200, {
'Content-Type': 'text/plain',
'Content-Length': Buffer.byteLength(metrics),
});
res.end(metrics);
} else {
res.writeHead(404);
res.end('Not Found');
}
} catch (err: unknown) {
res.writeHead(500);
res.end(`Error: ${err instanceof Error ? err.message : 'Unknown error'}`);
}
},
);
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
console.log(`Prometheus metrics server running on port ${PORT}`);
console.log(`Metrics available at http://localhost:${PORT}/metrics`);
});Advanced Usage: Adding Global Variables as Labels
Example with Global Variables
Read more:
Last updated
Was this helpful?