Open
Description
This issue is to track ongoing work to refine Trace Events in Node and graduate it from experimental state.
It builds on and replaces
Initial Trace PR including discussion: node#9304
todo:
- configurable output destinations
- support targeting lttng, etw, dtrace, etc...
- add a listener system ([trace_event] implementing a listener system #81)
- C/C++ API ([trace_event] C wrappers over macros #83)
- JavaScript API (node-eps#48)
- needs to be as fast as possible, probably a VM intrinsic.
- add trace points to nodejs/node ([trace_event] adding trace points to core #82)
- move existing dtrace/lttng trace writes to trace_event
- add trace points: async hooks (PR: async-hooks: add trace events to AsyncWrap node#15538)
- relationship to upstream
trace_event_common.h
(see src: separate trace_event_common from trace_event node#10628) - recommendations for naming categories for ecosystem
- need approach on how to collect "context"
- e.g., for capturing http connection info, currently connection object is passed through DTrace APIs, and some handler/provider, and then the handler/provider will navigate connection object to pull out interesting data to trace. This approach is brittle (dependent on structure of connection object), and puts burden on provider (ie., won't easily allow using different event tracing systems like lttng, dtrace,...).
- standardize on output format for trace event data
- command-line options to support tracing features.