Fastify

Code Execution Monitoring for Fastify applications.

Requirements

  • Fastify >= 3.x

Install

Install the latest version of the module using the npm command below:

npm install @inspector-apm/inspector-nodejs --save

Configure the Ingestion Key

You need an Ingestion Key to create an Inspector instance. You can obtain a key creating a new project in your Inspector dashboard.

If you use dotenv you can configure the Inspector Ingestion Key in your environment file:

INSPECTOR_INGESTION_KEY=[ingestion key]

Initialization

Just two steps:

  1. Initialize Inspector before you require any other modules in your application - i.e. before fastify, http, mysql, etc.

  2. Attach the inspector.fastify() function to your fastify app.

// Init Inspector before any other module
const inspector = require("@inspector-apm/inspector-nodejs")({
  ingestionKey: "YOUR INGEST KEY HERE",
});


// Init Fastify instance
const fastify = require('fastify')()


// Register inspector integration
fastify.register(inspector.fastify());


// Continue with your code!
// ...

Send an HTTP request to your fastify app to see the first data in your dashboard.

Some of the most used modules will be autowired by default. Learn more about autowiring.

Exclude paths

If you want to turn off monitoring in some parts of your application you can pass a JSON object to the registering function with excludePaths property to define which routes you want to exclude:

fastify.register(inspector.fastify({
    excludePaths: [
        '/posts',
        '/posts/:id',
        '/admin'
    ]
}))

You can also use the wildcard character * to match a subset of your urls:

fastify.register(inspector.fastify({
    excludePaths: [
        // Single wildcard
        '/posts*',
        
        // More wildcards
        '/admin/*/posts*'
    ]
}))

Access the Inspector instance

Inspector will decorate the fastify instance with a new property to access Inspector anywhere in your application:

fastify.inspector.addSegment(...);

It's mandatory to call the Inspector instance inside your fastify instance to allow automatic tasks identification.

Custom Segments

By default Inspector will report many different tasks based on the application's dependencies, but you are free to "wrap" some parts of your code that you consider relevant to create a more complete picture of what statements are executed during an execution cycle and its performance.

Last updated