Note This package has been deprecated;
diagnostics_channel
is now built into Fastify v5.
npm i @fastify/diagnostics-channel
Plugin version | Fastify version |
---|---|
^5.x |
^5.x |
^4.x |
^4.x |
^1.x |
^3.x |
Please note that if a Fastify version is out of support, then so are the corresponding versions of this plugin in the table above. See Fastify's LTS policy for more details.
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
The channels are prefixed by: fastify.{HOOK_NAME}
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 include 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
})
Channel: fastify.onResponse
This event is sent on every response sent by the 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
})
Channel: fastify.onError
This event is sent when an error is thrown during the Fastify lifecycle.
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 thrown
})
Channel: fastify.onTimeout
This event is sent when a request spends 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 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
})
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
})
Licensed under MIT.