fastify-diagnostics-channel
                                
                                 fastify-diagnostics-channel copied to clipboard
                                
                                    fastify-diagnostics-channel copied to clipboard
                            
                            
                            
                        Plugin to deal with diagnostics_channel on Fastify
@fastify/diagnostics-channel
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?
- onRoute Channel
- onResponse Channel
- onError Channel
- onTimeout Channel
- 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('node: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('node: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('node: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('node: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('node:diagnostics_channel')
const onRequest = dc.channel('fastify.onRequest')
onRequest.subscribe((data) => {
  data.request
  data.reply
})
License
Licensed under MIT.