Diagnostics channel
The
diagnostics_channel
module provides an API to create named channels to report arbitrary message data for diagnostics purposes. The API is essentially a simple event pub/sub model that is specifically designed to support low-overhead diagnostics reporting.
All Channel
instances are singletons per each Isolate/context (for example, the same entry point). Subscribers are always invoked synchronously and in the order they were registered, much like an EventTarget
or Node.js EventEmitter
class.
Integration with Tail Workers
When using Tail Workers, all messages published to any channel will be forwarded also to the Tail Worker. Within the Tail Worker, the diagnostic channel messages can be accessed via the diagnosticsChannelEvents
property:
Note that message published to the tail worker is passed through the
structured clone algorithm (same mechanism as the
structuredClone()
API) so only values that can be successfully cloned are supported.
TracingChannel
Per the Node.js documentation, “
TracingChannel
is a collection of [Channels] which together express a single traceable action. TracingChannel
is used to formalize and simplify the process of producing events for tracing application flow.”
Refer to the
Node.js documentation for diagnostics_channel
for more information.