npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@fastify/diagnostics-channel

v5.0.1

Published

Plugin to deal with diagnostics_channel on Fastify

Readme

Note This package has been deprecated; diagnostics_channel is now built into Fastify v5.

@fastify/diagnostics-channel

CI NPM version neostandard javascript style

Install

npm i @fastify/diagnostics-channel

Compatibility

| 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.

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('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
})

onResponse Channel

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
})

onError Channel

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
})

onTimeout Channel

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
})

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.