Skip to content

Treblle with Fastify

To integrate Treblle with Fastify, we provide an official unified SDK for JavaScript frameworks - treblle-node.

  • Node.js: >=16.0.0
  • Fastify: 4.x or later
Terminal window
npm install treblle@^2.0.0

Create a free account on treblle.com to get your credentials:

  • sdkToken (SDK Token)
  • apiKey (API Key)

Add these to your .env file:

TREBLLE_SDK_TOKEN=your_sdk_token
TREBLLE_API_KEY=your_api_key

Initialize Treblle in your Fastify application:

const fastify = require('fastify')();
const { fastifyTreblle } = require('treblle');
// Register Treblle plugin
await fastify.register(fastifyTreblle, {
sdkToken: process.env.TREBLLE_SDK_TOKEN,
apiKey: process.env.TREBLLE_API_KEY,
});
// Your routes
fastify.get('/api/users', async (request, reply) => {
return { users: [] };
});
await fastify.listen({ port: 3000 });

That’s it! Your API requests and responses are now being sent to your Treblle project. You’ll get features like auto-documentation, real-time request/response monitoring, and error tracking.

You can pass additional configuration options:

await fastify.register(fastifyTreblle, {
sdkToken: process.env.TREBLLE_SDK_TOKEN,
apiKey: process.env.TREBLLE_API_KEY,
additionalFieldsToMask: ["customSecret", "internalId"], // Optional
blocklistPaths: ["admin", "health"], // Optional: Skip logging certain paths
ignoreDefaultBlockedPaths: false, // Optional: Disable default blocked paths
debug: true, // Optional: Show Treblle errors in console
});
  • sdkToken (required): Your Treblle SDK token
  • apiKey (required): Your Treblle API key
  • additionalFieldsToMask (optional): Array of field names to mask in addition to default fields
  • blocklistPaths (optional): Array of path prefixes or RegExp to exclude from logging
  • ignoreDefaultBlockedPaths (optional): Boolean to disable default blocked paths (default: false)
  • debug (optional): Boolean to show Treblle-related errors in console (default: false)

Run Treblle only in production:

if (process.env.NODE_ENV === "production") {
await fastify.register(fastifyTreblle, {
sdkToken: process.env.TREBLLE_SDK_TOKEN,
apiKey: process.env.TREBLLE_API_KEY,
});
}

The following fields are automatically masked:

  • password, pwd, secret, password_confirmation, passwordConfirmation
  • cc, card_number, cardNumber, ccv
  • ssn
  • credit_score, creditScore

Add custom fields to mask:

await fastify.register(fastifyTreblle, {
sdkToken: process.env.TREBLLE_SDK_TOKEN,
apiKey: process.env.TREBLLE_API_KEY,
additionalFieldsToMask: ["customSecret", "licensee_key"],
});

Enable debug mode to see Treblle errors in your console:

await fastify.register(fastifyTreblle, {
sdkToken: process.env.TREBLLE_SDK_TOKEN,
apiKey: process.env.TREBLLE_API_KEY,
debug: true,
});