Restify
v8 / v11Express-compatible middleware re-exported for Restify.
Restify uses the same middleware signature as Express, so `createRestifyMiddleware` is a direct re-export of the Express middleware.
Install
bash
npm install auto-api-observeQuick Start
The minimal setup — import, configure, and you're observing.
restify-quick-start.js
const restify = require('restify');
const { createRestifyMiddleware } = require('auto-api-observe');
const server = restify.createServer();
server.use(createRestifyMiddleware({
apiKey: process.env.APILENS_KEY,
}));
server.get('/users', (req, res) => res.json({ users: [] }));
server.listen(3000);Full Example
All available options with custom fields and real-world usage.
restify-full.js
const restify = require('restify');
const { createRestifyMiddleware, addField } = require('auto-api-observe');
const server = restify.createServer({ name: 'my-api' });
server.use(restify.plugins.bodyParser());
server.use(createRestifyMiddleware({
apiKey: process.env.APILENS_KEY,
slowThreshold: 500,
tags: { service: 'restify-api' },
}));
server.get('/users/:id', async (req, res, next) => {
addField('userId', req.params.id);
const user = await User.findById(req.params.id);
res.json(user);
return next();
});
server.listen(3000, () => console.log('%s listening at %s', server.name, server.url));What's Tracked Automatically
- req.method, route, status, latency
- Client IP from x-forwarded-for
- DB and outbound calls
Options Reference
| Option | Type | Default |
|---|---|---|
| apiKey | string | — |
| slowThreshold | number | 1000 |
| skipRoutes | string[] | [] |
| tags | Record | {} |
Custom Fields
Attach any business context to the current request via AsyncLocalStorage — scoped per request, works the same on every framework.
const { addField } = require('auto-api-observe');
// In any route handler:
addField('userId', req.user.id);
addField('plan', req.user.plan);
addField('country', req.headers['cf-ipcountry']);
// Sensitive keys are auto-redacted before shipping:
addField('authorization', token); // → "[REDACTED]"
addField('password', pass); // → "[REDACTED]"Ready to observe your Restify app?
Sign up free — get your API key in under 30 seconds. No credit card required.
Get your free API key