-
-
Notifications
You must be signed in to change notification settings - Fork 70
Closed
Labels
Tracking-Issuediag-deepdive-agendaUsed for agenda items related to diagnostic deep dive sessionsUsed for agenda items related to diagnostic deep dive sessionsnever stale
Description
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
bodinsamuel
Metadata
Metadata
Assignees
Labels
Tracking-Issuediag-deepdive-agendaUsed for agenda items related to diagnostic deep dive sessionsUsed for agenda items related to diagnostic deep dive sessionsnever stale