@trudevlabs/api-latency-tracker
v1.0.0
Published
Automatically measures API performance for Express and Fastify
Downloads
8
Maintainers
Readme
api-latency-tracker
Automatically measures API performance for Express and Fastify
Install
npm install api-latency-trackerUsage
Express
const express = require('express');
const { trackLatency, getStats, printReport } = require('api-latency-tracker');
const app = express();
app.use(trackLatency());
app.get('/users', (req, res) => res.json([{ id: 1, name: 'Alex' }]));
app.post('/login', (req, res) => res.json({ token: '...' }));
app.listen(3000);
// Later: print report
setInterval(printReport, 60000); // every minute
// or: console.log(getStats());Output:
API Latency Report
──────────────────────────────────────────────────
GET /users
last: 120ms avg: 85ms p50: 80ms p95: 150ms (n=100)
POST /login
last: 350ms avg: 320ms p50: 300ms p95: 450ms (n=50)Fastify
const fastify = require('fastify')();
const { trackLatencyFastify, getStats } = require('api-latency-tracker');
fastify.register(trackLatencyFastify());Get stats programmatically
const stats = getStats();
// { 'GET /users': { last: 120, avg: 85, p50: 80, p95: 150, p99: 200, count: 100 } }Callback on each request
app.use(trackLatency({
onRequest: ({ method, path, ms }) => {
if (ms > 500) console.warn(`Slow: ${method} ${path} - ${ms}ms`);
},
}));API
| Function | Description |
|----------|-------------|
| trackLatency(options) | Express middleware (alias for trackLatencyExpress) |
| trackLatencyExpress(options) | Express middleware |
| trackLatencyFastify(options) | Fastify plugin |
| getStats() | Returns latency stats per route |
| printReport() | Logs report to console |
| reset() | Clears collected data |
License
MIT
