Skip to content

Diagnostics Channel - Next steps #180

@mhdawson

Description

@mhdawson

The concept of a diagnostic channel was discussed in the Diagnostics summit as well as here: #134

In a nutshell the concept is to provide an API that modules can use to publish events, and an API that consumers (such as APM vendors) can consume. The key differences between the channel provided by these APIs and trace events are:

  • operation is synchronous, the consumer has the ability to take an action before the publish event completes on the emitter side.
  • data is passed (and any other data available indirectly) by the publish and this data can be mutated by the consumer.

This approach requires both implementation of the diagnostic channel as well as updates to modules in order to use the API. An interim step where monkey patching is used to add calls to the API is seen as a good way to bootstrap.

Microsoft already has an experimental implementation which we should evaluate to see what parts (if any) that we can re-use.

An initial cut at next steps include:

  • Create a new repo where we can experiment with a new implementation under the nodejs org - diagnostic-channel
  • review the existing experimental implementation
  • create performance regression suite
  • define the diagnostic publish API
  • define the diagnostic consumer API
  • pull what parts we can from existing implementation into publish API
  • pull what parts we can from existing implementation into consumer API
  • Iterate until we hit a 0.1.0 release that is ready for broader review

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions