APILensAPILens
frameworks/restify

Restify

v8 / v11

Express-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-observe

Quick Start

The minimal setup — import, configure, and you're observing.

restify-quick-start.js
javascript
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
javascript
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

OptionTypeDefault
apiKeystring
slowThresholdnumber1000
skipRoutesstring[][]
tagsRecord{}

Custom Fields

Attach any business context to the current request via AsyncLocalStorage — scoped per request, works the same on every framework.

javascript
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