Skip to content

fastify/fastify-diagnostics-channel

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

@fastify/diagnostics-channel

CI NPM version js-standard-style

Install

npm i @fastify/diagnostics-channel

Usage

Register as a plugin. This will add some hooks that provide information through diagnostics_channel

const fastify = require('fastify')()

fastify.register(require('@fastify/diagnostics-channel'), {})

Note: check examples/ to further information

What information is provided?

  1. onRoute Channel
  2. onResponse Channel
  3. onError Channel
  4. onTimeout Channel
  5. onRequest Channel

The channels are prefixed by: fastify.{HOOK_NAME}

onRoute Channel

Channel: fastify.onRoute

This event is sent at every route registered passing a routeOptions object

const dc = require('diagnostics_channel')
const onRoute = dc.channel('fastify.onRoute')

onRoute.subscribe((routeOptions) => {
  routeOptions.method
  routeOptions.schema
  routeOptions.url // the complete URL of the route, it will inclued the prefix if any
  routeOptions.path // `url` alias
  routeOptions.routePath // the URL of the route without the prefix
  routeOptions.bodyLimit
  routeOptions.logLevel
  routeOptions.logSerializers
  routeOptions.prefix
})

onResponse Channel

Channel: fastify.onResponse

This event is sent at every response sent by server, it propagates an object containing: request object and reply object

const dc = require('diagnostics_channel')
const onResponse = dc.channel('fastify.onResponse')

onResponse.subscribe((data) => {
  data.request
  data.reply
})

onError Channel

Channel: fastify.onError

This event is sent when some error is throw on the lifecycle of Fastify.

The message data is an object containing a request object, reply object, and Error object

const dc = require('diagnostics_channel')
const onError = dc.channel('fastify.onError')

onError.subscribe((data) => {
  data.request
  data.reply
  data.error // error object throwed
})

onTimeout Channel

Channel: fastify.onTimeout

This event is sent when a request spent more time than connectionTimeout specifies. For further information about connectionTimeout check the Fastify documentation.

The message data is an object containing a request object, reply object, and connectionTimeout value

Note: by default the Fastify does not limit the request time.

const dc = require('diagnostics_channel')
const onTimeout = dc.channel('fastify.onTimeout')

onTimeout.subscribe((data) => {
  data.connectionTimeout
  data.reply
  data.request
})

onRequest Channel

Channel: fastify.onRequest

This event is sent when a request is received; the message data is an object containing a request object and reply object

const dc = require('diagnostics_channel')
const onRequest = dc.channel('fastify.onRequest')

onRequest.subscribe((data) => {
  data.request
  data.reply
})

License

Licensed under MIT.