Skip to content

Expanding this WG to all Diagnostics for Node #46

Closed
@joshgav

Description

@joshgav

Hello all! I've talked to several of you over the past month about invigorating this working group and creating a greater Diagnostics team for Node. To be helpful, I wanted to come with a tentative plan and hammer out details with everyone.

To that end, following is a summary of the diagnostic domains which we can help Node cover and around which we can orient our work. I propose creating a wiki-like structure in this repo oriented around these domains and then using PRs to add new domains, interfaces and APIs, tools, samples and docs.

Note: "Post-mortem" topics are listed here under "Heap and Memory Analysis" for completeness; that work should continue in the nodejs/post-mortem team.

I also propose we restart our monthly meeting to discuss items from this list. In our next meeting, for example, we should probably discuss AsyncWrap issues and how to support the coming Chrome Debugging Protocol in V8.

Could you provide feedback on the proposed structure? If we have consensus I'll go ahead and work with @pmuellr to organize this repo accordingly.


Goals

  • Node surfaces a set of comprehensive, documented, extensible diagnostic protocols, formats, and APIs for use by tooling clients and VM vendors.
  • Enable many tool vendors to provide reliable diagnostic tools for Node.

Plans

  • Collect, understand, and document existing diagnostic capabilities and entry-points throughout Node, V8, and other components.
  • Collect and document projects and products providing diagnostics for Node with brief description of their technical architecture and sponsoring organizations.
  • Identify and explore opportunities and gaps, feature requests, and conflicts in existing diagnostics capabilities.

Domains

  • Tracing
  • Profiling
  • Heap and Memory Analysis
  • Step Debugging
  • Protocol and API

Tracing

  • nodejs/tracing-wg
  • System: dtrace, lttng, etw, systemtap
  • V8: TRACE_EVENT
    • Requires implementation of v8::Platform::AddTraceEvent
  • Node: AsyncWrap, Domains, Zones
  • JavaScript: Domains, Zones

Profiling

  • V8 CPU Profiler: v8::Isolate::GetCpuProfiler (include/v8-profiler.h)
  • V8 Heap Profiler: v8::Isolate::GetHeapProfiler (include/v8-profiler.h)
  • Intel vTune (./configure --enable-vtune-profiling)

Heap and Memory Analysis

Step Debugging

Protocol and API

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions