├── documentation ├── crash │ ├── README.md │ ├── step2 │ │ └── using_llnode.md │ └── step1 │ │ └── using_node_report.md ├── hang │ ├── README.md │ ├── step3 │ │ └── using_node_report.md │ ├── step1 │ │ └── using_trace_sigint.md │ └── step2 │ │ └── using_chrome_devtools.md ├── tracing │ ├── setup.md │ ├── case_study.md │ ├── investigation_flow.md │ └── step1 │ │ └── using_trace_events.md ├── live_debugging │ ├── setup.md │ ├── case_study.md │ ├── investigation_flow.md │ ├── step1 │ │ └── using_inspector.md │ └── README.md ├── abnormal_termination │ ├── case_study.md │ ├── investigation_flow.md │ ├── step3 │ │ └── using_lldb.md │ ├── step4 │ │ └── using_valgrind.md │ ├── step1 │ │ └── using_exit_stack_traces.md │ └── step2 │ │ └── using_diagnostic_report.md ├── memory │ ├── README.md │ └── step3 │ │ └── exercise │ │ ├── README.md │ │ ├── script.mjs │ │ └── script-fix.mjs ├── poor-performance │ └── README.md ├── cpu │ └── README.md └── README.md ├── ebpf └── wg-2020-05-06.pdf ├── .mailmap ├── summits └── 2019-03 │ └── Intro into APM agents, comparison of Node.js and Java.pdf ├── async-context └── slide-decks │ ├── AsyncContext_JS-Interactive-Vancouver_2018-public.pdf │ └── AsyncContext_JS-Interactive-Vancouver_2018-public.pptx ├── tracing ├── README.md ├── os-tracing │ └── README.md └── vm-tracing │ └── v8-tracing.md ├── heap-memory └── README.md ├── .github └── workflows │ ├── stale.yml │ └── scorecards.yml ├── LICENSE.md ├── wg-meetings ├── 2025-05-29.md ├── 2021-09-22.md ├── 2021-05-19.md ├── 2021-04-21.md ├── 2020-12-09.md ├── 2022-11-15.md ├── 2021-03-24.md ├── 2021-08-11.md ├── 2021-06-30.md ├── 2024-03-05.md ├── 2021-12-01.md ├── 2021-03-10.md ├── 2023-06-27.md ├── 2020-09-30.md ├── 2024-05-28.md ├── 2024-06-27.md ├── 2022-03-08.md ├── 2020-07-22.md ├── 2019-07-31.md ├── 2022-10-11.md ├── 2020-01-29.md ├── 2022-09-20.md ├── 2021-07-28.md ├── 2020-02-26.md ├── 2018-11-14.md ├── 2022-07-26.md ├── 2025-05-08.md ├── 2019-07-17.md ├── 2022-08-23.md ├── 2021-08-25.md ├── 2018-07-11.md ├── 2018-08-22.md ├── 2020-08-19.md ├── 2019-03-20.md ├── 2018-11-28.md ├── 2020-10-28.md ├── 2018-10-31.md ├── 2015-02-19.md ├── 2022-03-22.md ├── 2020-01-06.md ├── 2020-09-16.md ├── 2020-10-14.md ├── 2022-04-05.md ├── 2018-04-04.md ├── 2022-01-25.md ├── 2019-01-09.md ├── 2018-08-08.md ├── 2019-02-06.md ├── 2018-06-27.md ├── 2020-11-25.md ├── 2020-02-12.md ├── 2022-05-31.md ├── 2022-06-28.md ├── 2023-04-04.md ├── 2019-04-03.md ├── 2020-08-05.md ├── 2019-07-03.md ├── 2018-09-19.md ├── 2018-03-21.md ├── 2019-04-17.md ├── 2018-09-05.md ├── 2018-10-17.md ├── 2021-02-24.md ├── 2018-03-07.md ├── 2018-10-03.md ├── 2018-04-18.md ├── 2017-11-15.md ├── 2018-06-13.md └── 2018-05-02.md ├── CONTRIBUTING.md └── meetings-other └── 2019-01-16.md /documentation/crash/README.md: -------------------------------------------------------------------------------- 1 | // TODO 2 | -------------------------------------------------------------------------------- /documentation/hang/README.md: -------------------------------------------------------------------------------- 1 | // TODO 2 | -------------------------------------------------------------------------------- /documentation/tracing/setup.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/live_debugging/setup.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/tracing/case_study.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/crash/step2/using_llnode.md: -------------------------------------------------------------------------------- 1 | // TODO 2 | -------------------------------------------------------------------------------- /documentation/live_debugging/case_study.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/crash/step1/using_node_report.md: -------------------------------------------------------------------------------- 1 | // TODO 2 | -------------------------------------------------------------------------------- /documentation/hang/step3/using_node_report.md: -------------------------------------------------------------------------------- 1 | // TODO 2 | -------------------------------------------------------------------------------- /documentation/tracing/investigation_flow.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/abnormal_termination/case_study.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/live_debugging/investigation_flow.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/tracing/step1/using_trace_events.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /documentation/abnormal_termination/investigation_flow.md: -------------------------------------------------------------------------------- 1 | //TODO 2 | -------------------------------------------------------------------------------- /ebpf/wg-2020-05-06.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodejs/diagnostics/HEAD/ebpf/wg-2020-05-06.pdf -------------------------------------------------------------------------------- /documentation/memory/README.md: -------------------------------------------------------------------------------- 1 | # Memory 2 | 3 | See: https://github.com/nodejs/nodejs.org/tree/main/locale/en/docs/guides/diagnostics/memory 4 | -------------------------------------------------------------------------------- /documentation/poor-performance/README.md: -------------------------------------------------------------------------------- 1 | # Poor Performance 2 | 3 | See: https://github.com/nodejs/nodejs.org/tree/main/locale/en/docs/guides/diagnostics/poor-performance 4 | -------------------------------------------------------------------------------- /documentation/cpu/README.md: -------------------------------------------------------------------------------- 1 | # CPU 2 | 3 | In this document you can learn about how to diagnostic CPU usage in a Node.js process. 4 | 5 | ## Excessive CPU usage 6 | 7 | TODO 8 | -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- 1 | Mary Marchini 2 | Mary Marchini 3 | Mary Marchini 4 | -------------------------------------------------------------------------------- /summits/2019-03/Intro into APM agents, comparison of Node.js and Java.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodejs/diagnostics/HEAD/summits/2019-03/Intro into APM agents, comparison of Node.js and Java.pdf -------------------------------------------------------------------------------- /async-context/slide-decks/AsyncContext_JS-Interactive-Vancouver_2018-public.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodejs/diagnostics/HEAD/async-context/slide-decks/AsyncContext_JS-Interactive-Vancouver_2018-public.pdf -------------------------------------------------------------------------------- /async-context/slide-decks/AsyncContext_JS-Interactive-Vancouver_2018-public.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodejs/diagnostics/HEAD/async-context/slide-decks/AsyncContext_JS-Interactive-Vancouver_2018-public.pptx -------------------------------------------------------------------------------- /documentation/memory/step3/exercise/README.md: -------------------------------------------------------------------------------- 1 | # Tracing garbage collection exercices 2 | 3 | These scripts are materials for the [GC traces](https://nodejs.org/en/docs/guides/diagnostics/memory/using-gc-traces/) tutorial. 4 | 5 | -------------------------------------------------------------------------------- /documentation/abnormal_termination/step3/using_lldb.md: -------------------------------------------------------------------------------- 1 | # Using llnode (lldb) 2 | 3 | //TODO, raw notes from deep dive: 4 | 5 | 1. Grab Core Dump and load it to llnode 6 | 2. Run v8 findjsobjects 7 | - This gives a list of object types with size + count 8 | - If a class Foo, you can use findrefs 9 | 3. -> if you can’t find the cause, see memory related user journeys to identify exact cause 10 | -------------------------------------------------------------------------------- /tracing/README.md: -------------------------------------------------------------------------------- 1 | ## Tracing 2 | - [AsyncHooks](https://nodejs.org/api/async_hooks.html) - Tracks the lifetime of asynchronous requests (init/destroy) and their callback activity (before/after) 3 | 4 | - [OS Tracing](./os-tracing/README.md) - LTTng (Linux), SystemTap (Linux), DTrace (OSX), ETW (Windows) 5 | 6 | - [VM Tracing](./vm-tracing/README.md) - Tracing native to JS VMs, such as V8's TRACE_EVENT. 7 | 8 | -------------------------------------------------------------------------------- /heap-memory/README.md: -------------------------------------------------------------------------------- 1 | ## Heap and Memory Analysis 2 | The [nodejs/post-mortem](https://github.com/nodejs/post-mortem) WG is responsible for this domain. 3 | 4 | ### Heap Analysis 5 | - [mdb_v8](https://github.com/joyent/mdb_v8) 6 | - [node-heapdump](https://github.com/bnoordhuis/node-heapdump) 7 | - [llnode](https://github.com/indutny/llnode) 8 | - [IBM IDDE](https://www.ibm.com/developerworks/java/jdk/tools/idde/) 9 | - [Snapshot Utils](https://github.com/bmeck/snapshot-utils) 10 | 11 | -------------------------------------------------------------------------------- /documentation/abnormal_termination/step4/using_valgrind.md: -------------------------------------------------------------------------------- 1 | # Using Valgrind 2 | 3 | A Node.js process may run out of memory due to excessive consumption of native 4 | memory which can lead to a native crash. Valgrind is a diagnostics tool on Linux 5 | machines to help investigating native memory leaks. 6 | 7 | Check out the [Investigating Memory Leaks with valgrind](https://github.com/nodejs/node/blob/master/doc/guides/investigating_native_memory_leak.md) guide to learn more about how to use 8 | Valgrind. 9 | -------------------------------------------------------------------------------- /documentation/live_debugging/step1/using_inspector.md: -------------------------------------------------------------------------------- 1 | # Using Inspector 2 | 3 | In a local environment, we usually speak about live debugging where we attach a 4 | debugger to our application and we add breakpoints to suspend the program 5 | execution. Then we step through the code paths and inspect our heap over the 6 | different steps. Using the live debugger in production is usually not an option 7 | as we have limited access to the machine and we cannot interrupt the execution 8 | of the application as it handles a business-critical workload. 9 | 10 | ## How To 11 | 12 | https://nodejs.org/en/docs/guides/debugging-getting-started/ 13 | -------------------------------------------------------------------------------- /documentation/memory/step3/exercise/script.mjs: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | 3 | let len = 1_000_000; 4 | const entries = new Set(); 5 | 6 | function addEntry () { 7 | const entry = { 8 | timestamp: Date.now(), 9 | memory: os.freemem(), 10 | totalMemory: os.totalmem(), 11 | uptime: os.uptime(), 12 | }; 13 | 14 | entries.add(entry); 15 | } 16 | 17 | function summary () { 18 | console.log(`Total: ${entries.size} entries`); 19 | } 20 | 21 | // execution 22 | (() => { 23 | while (len > 0) { 24 | addEntry(); 25 | process.stdout.write(`~~> ${len} entries to record\r`); 26 | len--; 27 | }; 28 | 29 | summary(); 30 | })(); 31 | 32 | -------------------------------------------------------------------------------- /documentation/README.md: -------------------------------------------------------------------------------- 1 | # User journey documentation 2 | Diagnostic user journeys are coherent set of step-by-step procedures, 3 | that a user follows for problem determination of reported issues. 4 | The documentation project is organized based on user journey. 5 | Each user journey is contained in one top level folder by that name. 6 | 7 | For each user journey: 8 | - Readme.md contains a high level overview of what use case this flow is addressing 9 | - setup.md may contain pre-requisites for the system to be able to follow diagnostics 10 | - investigation_flow.md may contain high level steps on the problem determination 11 | - case_study.md may contain an investigation of a specific use case with real data 12 | - step1, step2, .. may contain different tools / methods to solve the same problem 13 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: "Close stale issues" 2 | on: 3 | schedule: 4 | - cron: "0 0 * * *" 5 | 6 | permissions: 7 | contents: read 8 | 9 | jobs: 10 | stale: 11 | permissions: 12 | issues: write # for actions/stale to close stale issues 13 | pull-requests: write # for actions/stale to close stale PRs 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/stale@f7176fd3007623b69d27091f9b9d4ab7995f0a06 # v5.2.1 17 | with: 18 | repo-token: ${{ secrets.GITHUB_TOKEN }} 19 | stale-issue-message: 'This issue is stale because it has been open many days with no activity. It will be closed soon unless the stale label is removed or a comment is made.' 20 | stale-issue-label: 'stale' 21 | exempt-issue-labels: 'never stale' 22 | days-before-stale: 90 23 | days-before-close: 14 24 | -------------------------------------------------------------------------------- /documentation/memory/step3/exercise/script-fix.mjs: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | import fs from 'fs/promises'; 3 | 4 | let len = 1_000_000; 5 | const fileName = `entries-${Date.now()}`; 6 | 7 | async function addEntry () { 8 | const entry = { 9 | timestamp: Date.now(), 10 | memory: os.freemem(), 11 | totalMemory: os.totalmem(), 12 | uptime: os.uptime(), 13 | }; 14 | 15 | await fs.appendFile(fileName, JSON.stringify(entry) + '\n'); 16 | } 17 | 18 | async function summary () { 19 | const stats = await fs.lstat(fileName); 20 | console.log(`File size: ${stats.size} bytes! \n`); 21 | } 22 | 23 | // execution 24 | (async () => { 25 | await fs.writeFile(fileName, "----START---\n"); 26 | while (len > 0) { 27 | await addEntry(); 28 | process.stdout.write(`~~> ${len} entries to record\r`); 29 | len--; 30 | }; 31 | 32 | await summary(); 33 | })(); 34 | 35 | -------------------------------------------------------------------------------- /documentation/live_debugging/README.md: -------------------------------------------------------------------------------- 1 | # Live Debugging 2 | 3 | In this document you can learn about how to live debug a Node.js process. 4 | 5 | ## My application doesn’t behave as expected 6 | 7 | ### Symptoms 8 | 9 | The user may observe that the application doesn’t provide the expected output 10 | for certain inputs, for example, an HTTP server returns a JSON response where 11 | certain fields are empty. Various things can go wrong in the process but in this 12 | use case, we are mainly focused on the application logic and its correctness. 13 | 14 | ### Debugging 15 | 16 | In this use case, the user would like to understand the code path that our 17 | application executes for a certain trigger like an incoming HTTP request. They 18 | may also want to step through the code and control the execution as well as 19 | inspect what values variables hold in memory. 20 | 21 | - [Using Inspector](./step1/using_inspector.md) -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License (MIT) 2 | 3 | Copyright (c) Node.js Diagnostics WG Contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE 10 | 11 | -------------------------------------------------------------------------------- /tracing/os-tracing/README.md: -------------------------------------------------------------------------------- 1 | ## OS Tracing 2 | 3 | * [DTrace](http://dtrace.org/) 4 | Available on IllumOS, Solaris, Mac 5 | 6 | - The [DTrace blog](http://dtrace.org/blogs/blog/category/node-js/) has some articles on using DTrace with Node.js 7 | 8 | * [LTTng](http://lttng.org/) 9 | Linux only. 10 | 11 | - [Tracing Node on Linux with LTTNG](http://nearform.github.io/tracing-node-lttng-nodejsdublin/) 12 | - [thekemkid/magic-tracing](https://github.com/thekemkid/magic-tracing) is an example of a Node.js application which implements LTTng tracepoints. A demo is available [here](https://asciicinema.org/a/16785). 13 | 14 | * [ETW](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363668.aspx) 15 | Windows only. 16 | 17 | - Some information was provided by Bill Ticehurst (@billti) in [issue #10](https://github.com/nodejs/tracing-wg/issues/10#issuecomment-137145822) about how he integrated ETW into Node.js for Windows 18 | 19 | * [Perf](https://perf.wiki.kernel.org/) 20 | Linux only. 21 | 22 | - Can be enabled with `--perf_basic_prof` v8 run-time flag. 23 | 24 | * [SystemTap](https://sourceware.org/systemtap/) 25 | Linux only. 26 | 27 | -------------------------------------------------------------------------------- /wg-meetings/2025-05-29.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2025-05-29 2 | 3 | ## Links 4 | 5 | - **Recording**: https://www.youtube.com/watch?v=tMdpERC43Ro 6 | - **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/660 7 | - **Minutes Google Doc**: https://docs.google.com/document/d/1C7PD2Y2CyAxkGq9zX3BERK_3Ea5W-lTczEJDfX4vbyY/edit?tab=t.0 8 | 9 | ## Present 10 | 11 | - Diagnostics team: @nodejs/diagnostics 12 | 13 | - Abhijeet Prasad (@AbhiPrasad) 14 | - Tim Fish (@timfish) 15 | - James Sumners (@jsumners-nr) 16 | 17 | ## Agenda 18 | 19 | ### orchestrion-js 20 | 21 | - We can merge in https://github.com/DataDog/orchestrion-js/pull/12, but we need to publish it to NPM 22 | - Create a temporary org to publish this 23 | - Tim to publish on npm under a namespace 24 | - For bundlers we can create an SWC plugin - Sentry to own this 25 | - For loaders, we can rely on New Relic help 26 | 27 | ### import-in-the-middle 28 | 29 | - [Abhi] https://github.com/nodejs/import-in-the-middle/pull/197 30 | - Invalid export names fix 31 | - Abhi to redo PR and adjust things 32 | 33 | ## Upcoming Meetings 34 | 35 | - **Node.js Project Calendar**: 36 | 37 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 38 | -------------------------------------------------------------------------------- /wg-meetings/2021-09-22.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-09-22 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=w66PUzaWWNg 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/500 7 | 8 | ## Present 9 | 10 | * Gireesh Punathil @gireeshpunathil 11 | * Rafael Gonzaga @RafaelGSS 12 | * Michael Dawson (@mhdawson) 13 | 14 | ## Agenda 15 | 16 | ## Announcements 17 | 18 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 19 | 20 | ### nodejs/node 21 | 22 | * async_hooks: multi-tenant promise hook api [#39283](https://github.com/nodejs/node/pull/39283) 23 | * No update this week 24 | 25 | ### nodejs/diagnostics 26 | 27 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 28 | * No updated this week 29 | 30 | * update: cleanup profiling root folder [#499](https://github.com/nodejs/diagnostics/issues/499) 31 | * Rafael going to review the doc and make necessary change to redirect it to the API doc 32 | 33 | 34 | ## Q&A, Other 35 | 36 | ## Upcoming Meetings 37 | 38 | * **Node.js Foundation Calendar**: 39 | 40 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 41 | -------------------------------------------------------------------------------- /wg-meetings/2021-05-19.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-05-19 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=SoezTqnkBRk 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/477 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Rafael Gonzaga (@rafaelgss) 12 | * Gerhard Stöbich (@flarna) 13 | * Chengzhong Wu (@legendecas) 14 | * Gireesh Punathil (@gireeshpunathil) 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | ### nodejs/node 23 | 24 | * async_hooks: stabilize part of AsyncLocalStorage [#37675](https://github.com/nodejs/node/pull/37675) 25 | * Require some doc changes 26 | * Michael will volunteer to help do the final edits. 27 | 28 | ### nodejs/diagnostics 29 | 30 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 31 | * Next step is to publish a blog post. 32 | 33 | * WG also reviewed the Best practice documentation presentation that is slated to be presented in the openjs conference. 34 | 35 | ## Q&A, Other 36 | 37 | ## Upcoming Meetings 38 | 39 | * **Node.js Foundation Calendar**: 40 | 41 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 42 | -------------------------------------------------------------------------------- /wg-meetings/2021-04-21.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-04-21 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=QmsBzrDo6w8 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/474 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1fFaniF66dpt4kHmnQTq3Qbuyg-WCcMYfK5jJYwbnG6M/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga (@rafaelgss) 13 | * Gireesh Punathil (@gireeshpunathil) 14 | * MIchael Dawson (@mhdawson) 15 | * Stephen Belanger (@Qard) 16 | 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/node 25 | 26 | * async_hooks: use new v8::Context PromiseHook API [#36394](https://github.com/nodejs/node/pull/36394) 27 | * upstream v8 changes landed, this PR needs an update. 28 | 29 | ### nodejs/diagnostics 30 | 31 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 32 | * still needs to devise action plans for collecting more inputs. 33 | * Micheal: surveys have been generally useful to collect user input. 34 | 35 | ## Q&A, Other 36 | 37 | ## Upcoming Meetings 38 | 39 | * **Node.js Foundation Calendar**: 40 | 41 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 42 | -------------------------------------------------------------------------------- /wg-meetings/2020-12-09.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-12-09 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=TGzbHYi42O8 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/456 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/13l-pK5eA_E0qKPf81mA5QhNMFZ0GxNhewSOMRWcsvhA/edit 8 | 9 | ## Present 10 | 11 | * Gireesh Punathil (@gireeshpunathil) 12 | * Stephen Belanger (@qard) 13 | * Michael Dawson (@mhdawson) 14 | * Bradley Farias (@bmeck) 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | * PR for new JSFunction-based PromiseHook API is open! Please, take a look. nodejs/node#36394 23 | 24 | * alternative to the existing PromiseHook API in V8 using split JSFunctions per event type rather than the old way which routes everything through a single C++ function even though it's just going right back to JS in the end. This shows great performance improvements in the known benchmarks. The CL is open at upstream v8, this PR is to track progress, and awareness. 25 | 26 | * This marks the last meeting of the year, the next one falls on general holiday period. Will regroup in 2021 27 | 28 | ## Q&A, Other 29 | 30 | ## Upcoming Meetings 31 | 32 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 33 | 34 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 35 | -------------------------------------------------------------------------------- /wg-meetings/2022-11-15.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-11-15 2 | 3 | ## Links 4 | 5 | * **Recording**: http://www.youtube.com/watch?v=-951TqcQL5k 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/598 7 | 8 | ## Present 9 | 10 | * Diagnostics team: @nodejs/diagnostics 11 | 12 | * Gireesh Punathil (@gireeshpunathil) 13 | * Tony Gorez (@tony-go) 14 | * Stephen Belanger (@qard) 15 | * Michael Dawson (@mhdawson) 16 | 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * llnode - Current Status [#576](https://github.com/nodejs/diagnostics/issues/576) 27 | * Tony: I haven't time to work on the documentation issue, there is no other update 28 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 29 | * PR to migrate poor performance doc to Nodejs.org - https://github.com/nodejs/nodejs.org/pull/4928 30 | * just a migration (landed now) 31 | * Tracing Channel: https://github.com/nodejs/node/pull/44943 32 | * can have more reviews on the overall approach 33 | * AsyncLocalStorage <-> diagnostics_channel integration: https://github.com/nodejs/node/pull/45277 34 | * can have more reviews 35 | 36 | ## Q&A, Other 37 | 38 | ## Upcoming Meetings 39 | 40 | * **Node.js Project Calendar**: 41 | 42 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 43 | -------------------------------------------------------------------------------- /wg-meetings/2021-03-24.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-03-24 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=1knzpdR3PDA 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/471 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1TOb3eYCKeOT6j8qoTgKL4VLqQPS5zkkvZHM7F2hdBOQ/edit 8 | 9 | ## Present 10 | 11 | * Stephen Belanger(@qard) 12 | * Michael Dawson (@mhdawson) 13 | * Gireesh Punathil (@gireeshpunatil) 14 | * Chengzhong Wu (@legendecas) 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | ### nodejs/node 23 | 24 | * async_hooks: use new v8::Context PromiseHook API [#36394](https://github.com/nodejs/node/pull/36394) 25 | * a bit and back and forth with V8 team with minor changes, should be pretty much done 26 | * Once lands will backport to Node.js 27 | 28 | * src: report idle time correctly 29 | [#37868](https://github.com/nodejs/node/pull/37868) 30 | * want people to be aware this exists and get some additional reviews 31 | 32 | ### nodejs/diagnostics 33 | 34 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 35 | * still need to write blog post for that, hoping to get to it this week. 36 | 37 | 38 | 39 | ## Q&A, Other 40 | 41 | ## Upcoming Meetings 42 | 43 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 44 | 45 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 46 | -------------------------------------------------------------------------------- /wg-meetings/2021-08-11.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-08-11 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=UEvquC_D4Lg 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/491 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1FlSeS4T8z29jnaWoQh7HiWSEsb1-Sou1F5Fef67V8NU/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga: @rafaelgss 13 | * Helio Frota: @helio-frota 14 | * Gireesh Punathil @gireeshpunathil 15 | 16 | 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/node 25 | 26 | * async_hooks: multi-tenant promise hook api [#39283](https://github.com/nodejs/node/pull/39283) 27 | * No discussion today 28 | 29 | ### nodejs/diagnostics 30 | 31 | * feat: add debugging blackbox section [#490](https://github.com/nodejs/diagnostics/pull/490) 32 | * We’ve decided to write the UI tutorial in the README document 33 | 34 | * inactive branches in the repo [#486](https://github.com/nodejs/diagnostics/issues/486) 35 | * decided to delete the stale branches 36 | 37 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 38 | * No discussion today 39 | 40 | 41 | 42 | ## Q&A, Other 43 | 44 | ## Upcoming Meetings 45 | 46 | * **Node.js Foundation Calendar**: 47 | 48 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 49 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Developer's Certificate of Origin 1.1 2 | 3 | By making a contribution to this project, I certify that: 4 | 5 | * (a) The contribution was created in whole or in part by me and I 6 | have the right to submit it under the open source license 7 | indicated in the file; or 8 | 9 | * (b) The contribution is based upon previous work that, to the best 10 | of my knowledge, is covered under an appropriate open source 11 | license and I have the right under that license to submit that 12 | work with modifications, whether created in whole or in part 13 | by me, under the same open source license (unless I am 14 | permitted to submit under a different license), as indicated 15 | in the file; or 16 | 17 | * (c) The contribution was provided directly to me by some other 18 | person who certified (a), (b) or (c) and I have not modified 19 | it. 20 | 21 | * (d) I understand and agree that this project and the contribution 22 | are public and that a record of the contribution (including all 23 | personal information I submit with it, including my sign-off) is 24 | maintained indefinitely and may be redistributed consistent with 25 | this project or the open source license(s) involved. 26 | 27 | # Moderation Policy 28 | 29 | The [Node.js Moderation Policy] applies to this WG. 30 | 31 | # Code of Conduct 32 | 33 | The [Node.js Code of Conduct][] applies to this WG. 34 | 35 | [Node.js Code of Conduct]: 36 | https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md 37 | [Node.js Moderation Policy]: 38 | https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md 39 | -------------------------------------------------------------------------------- /wg-meetings/2021-06-30.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-06-30 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=VVe09qzn0Zk 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/481 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1WnFJftvefHXrIMNsIJXOmytvAFCxYIvx_4YRM8o4SfM/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger (@Qard) 13 | * RafaelGSS (@rafaelgss) 14 | * Chengzong Wu (@legendecas) 15 | * Michael Dawson (@mhdawson) 16 | * Gireesh Punathil (@gireeshpunathil) 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Improve the V8 Profiler performance [#444](https://github.com/nodejs/diagnostics/issues/444) 27 | * Rafael, has read issue, done some benchmarks, looks like it is faster now 28 | * Looks like we can close out the issue as perf issue has been addressed 29 | 30 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 31 | * Stephen put together blog post - https://gist.github.com/Qard/c6998c739f93aaa74abbb2fb9bb331b6 32 | * Had some discussion, made a few suggestions, will continue to work on through github issue. 33 | 34 | 35 | ## Q&A, Other 36 | 37 | ## Upcoming Meetings 38 | 39 | * **Node.js Foundation Calendar**: 40 | 41 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 42 | -------------------------------------------------------------------------------- /wg-meetings/2024-03-05.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2024-03-05 2 | 3 | ## Links 4 | 5 | * **Recording**: 6 | * **GitHub Issue**: 7 | 8 | ## Present 9 | 10 | * Stephen Belanger @qard 11 | * Michael Dawson @mhdawson 12 | * James Sumners 13 | 14 | ## Agenda 15 | 16 | ## Announcements 17 | 18 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 19 | 20 | ### nodejs/node 21 | 22 | * diagnostics_channel: early-exit tracing channel trace methods [#51915](https://github.com/nodejs/node/pull/51915) 23 | * diagnostic channel designed to have separate events, so you could listen to just subset of 24 | events 25 | * if you started listening to a channel you might get only end events, but you might get before 26 | after ones for others. 27 | * Challenge is that there are optimizations that can be applied if the check can be done 28 | when first event occurs versus every time there is an event 29 | * undici is considering re-implementing to avoid needing a closure, but current behaviour 30 | means that you need to always do stuff versus checking for subscribers at start of event so 31 | you get all or nothing. 32 | * to see an event the listener needs to be in place at the start of the event 33 | 34 | ## Q&A, Other 35 | 36 | ## Upcoming Meetings 37 | 38 | * **Node.js Project Calendar**: 39 | 40 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 41 | -------------------------------------------------------------------------------- /wg-meetings/2021-12-01.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-12-01 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=9i7LTnDELSQ 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/515 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1ATwMQUWojM8JbrMaufO-Spv2WO24DYD45di3XeKPMEQ/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga (@rafaelgss) 13 | * Gireesh Punathil (@gireeshpunathil) 14 | * Michael Dawson (@mhdawson) 15 | * Bradley Farias (@bmeck) 16 | 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * meeting time, again [#507](https://github.com/nodejs/diagnostics/issues/507) 27 | * TSC sometimes overlaps 28 | * TSC meeting may move, currently adjusting for daylight savings time 29 | * Tuesday at 11 ET seems to be the best possibility (for michael off week from Jan 25th would be best) 30 | 31 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 32 | * https://nodejs.medium.com/what-use-cases-exist-for-async-hooks-6eab74d7eefd 33 | 34 | * diagnostic channel: user success story promotion 35 | * this working group could help promote the usage of the feature 36 | 37 | ## Q&A, Other 38 | 39 | ## Upcoming Meetings 40 | 41 | * **Node.js Foundation Calendar**: 42 | 43 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 44 | -------------------------------------------------------------------------------- /wg-meetings/2021-03-10.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-03-10 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=D11Im3fCCs0 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/468 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1Tu1JpIizd4BKl52l43RcyCvRdnxOKNP1tiY7pv5HxfQ/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger (@qard) 13 | * Gerhard Stöbich (@flarna) 14 | * Richard Lau (@richardlau) 15 | * Rafael Gonzaga (@rafaelgss) 16 | * Michael Dawson (@mhdawson) 17 | * Mary Marchini (@mmarchini) 18 | * Gireesh Punathil (@gireeshpunathil) 19 | 20 | ## Agenda 21 | 22 | ## Announcements 23 | 24 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 25 | 26 | ### nodejs/node 27 | 28 | * async_hooks: use new v8::Context PromiseHook API [#36394](https://github.com/nodejs/node/pull/36394) 29 | *Stephen has some additional changes he needs to make, planning to that this week 30 | 31 | ### nodejs/diagnostics 32 | 33 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 34 | * Stephen: working on todo list, writing blog post to help get more input 35 | * PR open to make AsyncLocalStorage stable, looking good so far 36 | * Stephen will look at PR to make AsyncResource stable as well 37 | 38 | ### nodejs/node-inspect 39 | 40 | * update: add blackbox by default [#99](https://github.com/nodejs/node-inspect/pull/99) 41 | * Waiting for some additional input 42 | * Possible we are missing the node prefix on internal module. 43 | 44 | ## Q&A, Other 45 | 46 | ## Upcoming Meetings 47 | 48 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 49 | 50 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 51 | -------------------------------------------------------------------------------- /wg-meetings/2023-06-27.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2023-06-27 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=ZPKPYqqtAGk 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/615 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1ZWUrpBDQosDGNUrweexZ4WGBJawxkWbRWcTKG-9UqBQ/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | 13 | Gabriel Bota (@dygabo) 14 | Gireesh Punathil (@gireeshpunathil ) 15 | Stephen Belanger (@qard) 16 | Chengzhong Wu (@legendecas) 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/node 25 | 26 | * lib: rewrite AsyncLocalStorage without async_hooks [#48528](https://github.com/nodejs/node/pull/48528) 27 | * started working on the model 28 | * does not require async_hooks in anyway 29 | * reviews welcome 30 | 31 | ### nodejs/diagnostics 32 | 33 | * Issue for Diagnostics project related news ? [#614](https://github.com/nodejs/diagnostics/issues/614) 34 | * Will wait for Michael 35 | 36 | * TC39 proposal AsyncContext [#608](https://github.com/nodejs/diagnostics/issues/608) 37 | * talked to the TC39 committee, no objections to using call the reject's call time context for unhandledRejection: https://github.com/tc39/proposal-async-context/issues/16#issuecomment-1531941423 38 | * agreed on having generators record the context at the initialization time, and having every .next() just restore the initialization time's context: https://github.com/tc39/proposal-async-context/issues/18#issuecomment-1531935431 39 | 40 | 41 | 42 | ## Q&A, Other 43 | 44 | ## Upcoming Meetings 45 | 46 | * **Node.js Project Calendar**: 47 | 48 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 49 | -------------------------------------------------------------------------------- /wg-meetings/2020-09-30.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-09-30 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=idW6Fe1fyXM 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/433 7 | 8 | ## Present 9 | 10 | * Stephen Belanger (@qard) 11 | * Rafael Gonzaga (@rafaelgss) 12 | * Michael Dawson (@mhdawson) 13 | * Pooja D P(@PoojaDurgad) 14 | * Bradley Farias (@bmeck) 15 | * Gerhard Stoebich (@Flarna) 16 | * Chengzhong Wu (@legendecas) 17 | * Gireesh Punathil (@gireeshpunathil) 18 | 19 | ## Agenda 20 | 21 | ## Announcements 22 | 23 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/node 26 | 27 | * Proposal: mark AsyncResource and AsyncLocalStorage as stable [#35286](https://github.com/nodejs/node/issues/35286) 28 | * AsyncResource any objections to that being considered stable 29 | * none in issue 30 | * none from those in the meeting 31 | * This is the issue that had the exit criteria for worker threads - https://github.com/nodejs/node/issues/22940 32 | * continue discussion in the issue, and revisit in the next meeting 33 | * lib: create diagnostics_channel module [#34895](https://github.com/nodejs/node/pull/34895) 34 | * Ready for review from Stephen’s perspective, needs more reviews. 35 | 36 | ### nodejs/diagnostics 37 | 38 | * Add ioredis to problematic-modules.md [#430](https://github.com/nodejs/diagnostics/pull/430) 39 | * skipped due to lack of time 40 | * Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 41 | * skipped due to lack of time 42 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 43 | * skipped due to lack of time 44 | 45 | ## Q&A, Other 46 | 47 | ## Upcoming Meetings 48 | 49 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 50 | 51 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 52 | -------------------------------------------------------------------------------- /wg-meetings/2024-05-28.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2024-05-28 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=Q6snsixbu9o&ab_channel=node.js 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/636 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1IvgfdvXTZ0bXpQK4chaSa9gvna0e5Mr6NnkFXpg-nMs/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga: @RafaelGSS 13 | * Yagiz Nizipli: @anonrig 14 | * Abhijeet Prasad @AbhiPrasad 15 | * Tim Fish @timfish 16 | * James Sumners @jsumners-nr 17 | 18 | 19 | ## Agenda 20 | 21 | ## Announcements 22 | 23 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/diagnostics 26 | 27 | * Transfer of import-in-the-middle [#634](https://github.com/nodejs/diagnostics/issues/634) 28 | * Discussions: 29 | * Which team will take the responsibility of this module? 30 | * James: Loaders has initiatives that overlap with the intention of this module 31 | * Rafael & Yagiz: We believe nodejs/diagnostics should take the lead in this module 32 | * Rafael: This is also a good way to make this team more active. We should make sure that this team will be active enough to support this new module/initiative. 33 | * Yagiz/Abhi/James are willing to participate in the working group meetings and of course, in the support of import-in-the-middle package. 34 | * It seems there are a significant number of contributors who would like to support the maintenance of this module as well as participate in other working group initiatives and that ends the meeting 35 | 36 | * New website is live and the diagnostics section could use some love. ❤️ [#630](https://github.com/nodejs/diagnostics/issues/630) 37 | 38 | 39 | ## Q&A, Other 40 | 41 | ## Upcoming Meetings 42 | 43 | * **Node.js Project Calendar**: 44 | 45 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 46 | 47 | -------------------------------------------------------------------------------- /wg-meetings/2024-06-27.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2024-06-27 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=OlEa7iXDVMk 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/639 7 | 8 | ## Present 9 | 10 | * Diagnostics team: @nodejs/diagnostics 11 | 12 | * Rafael Gonzaga (@RafaelGSS) 13 | * Thomas Watson (@watson) 14 | * Michael Dawson (@mhdawson) 15 | * Abhijeet Prasad (@AbhiPrasad) 16 | * Santiago Gimeno (@santigimeno) 17 | * Stephen Belanger (@Qard) 18 | * Chengzhong Wu (@legendecas) 19 | * Tim Fish (@timfish) 20 | * Trent Mick 21 | * James Sumners 22 | * Alex Ishchuk (@B0ER) 23 | 24 | ## Agenda 25 | 26 | * New Meeting time #638 27 | * Closed as the new time is set 28 | 29 | * Transfer of import-in-the-middle [#634](https://github.com/nodejs/diagnostics/issues/634) 30 | * NPM package has been transferred to the Node.js org 31 | * Missing repository transfer to the Node.js Github Org 32 | * @nodejs/import-in-the-middle-maintainers was created and invited people volunteered 33 | * Could land things like undici 34 | * Up to each repo to decide release process, maintainers decide 35 | * Do we use Node.js project security process? (Hacker One) 36 | * Just copy undici security.md? 37 | * IITM maintainers can be invited to security issues 38 | * Lots of stability issues to work out 39 | * Joyee working on better loaders API 40 | * Should we also transfer require-in-the-middle? dc-polyfill too? Anything else? 41 | 42 | 43 | * New website is live and the diagnostics section could use some love. ❤️ [#630](https://github.com/nodejs/diagnostics/issues/630) 44 | * It was mentioned in the meeting, but no action so far. 45 | 46 | 47 | ## Announcements 48 | 49 | *Extracted from **diag-agenda** labeled issues and pull requests from the **nodejs org** prior to the meeting. 50 | 51 | ## Q&A, Other 52 | 53 | ## Upcoming Meetings 54 | 55 | * **Node.js Project Calendar**: 56 | 57 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 58 | 59 | -------------------------------------------------------------------------------- /wg-meetings/2022-03-08.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-03-08 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=k8UrAe-Dny8 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/530 7 | 8 | ## Present 9 | 10 | * Rafael Gonzaga (@rafaelgss) 11 | * Michael Dawson (@mhdawson) 12 | * Gireesh Punathil (@gireeshpunathil) 13 | * Stephen Belanger (@Qard) 14 | * Tony Gorez (@tony-go) 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | ### nodejs/diagnostics 23 | 24 | * Move Slack channel to OpenJS Foundation server [#527](https://github.com/nodejs/diagnostics/issues/527) 25 | * General agreement that we should just move over 26 | 27 | * meeting time, again [#507](https://github.com/nodejs/diagnostics/issues/507) 28 | * few possibilities identified, still a work in progress. 29 | 30 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 31 | * OpenTelemetry has moved over from AsyncHooks(for Node.js 14.8 and above ?) 32 | * stephen: no major change since the last review; we have some feedback from some sources. 33 | * rafael: there are few concerns identified when clinic.js attempted a migration to diagnostic channel. 34 | * stephen: marking async_hooks as internal is an option as well? 35 | * tony: what is internal? 36 | * stephen: internal API does not make promises about its interfaces. 37 | * rafael: there are issues in bubble.js in identifying and reporting async resources 38 | 39 | ## Q&A, Other 40 | * rafael: how can we brainstorm and start new initiatives? 41 | * gireesh: two items are: best practices documentation, attaining tool stability 42 | * michael: any items are fine, as long as there is a stakeholder / interested party. 43 | ## Upcoming Meetings 44 | 45 | * **Node.js Project Calendar**: 46 | 47 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 48 | -------------------------------------------------------------------------------- /wg-meetings/2020-07-22.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-07-22 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=Alb-zOQrku4 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/pull/413 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1fQIhs5Se6DeGVFvPlTXGyufxotm2NIT1BE2pk0nnDYs/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Gireesh Punathil (@gireeshpunathil) 13 | * Stephen Belanger (@qard) 14 | * Rafael Gonzaga (@rafaelgss) 15 | * Harshitha K P (@HarshithaKP) 16 | * Michael Dawson (@mhdawson) joined near the end 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Continue unified hooks discussion [#401](https://github.com/nodejs/diagnostics/issues/401) 27 | * Stephen: No action since last week. Next action is to have a wider discussion with the interested parties to gather consensus. 28 | 29 | * discuss: node.js contributor survey [#398](https://github.com/nodejs/diagnostics/issues/398) 30 | * Gireesh: worthwhile to revisit the diagnostic specific survey, and reuse it if necessry 31 | 32 | * Discuss usage and support of eBPF [#386](https://github.com/nodejs/diagnostics/issues/386) 33 | * Needs to run it through the deep dive 34 | 35 | * Reviving "Zones" like proposals to TC39 [#375](https://github.com/nodejs/diagnostics/issues/375) 36 | 37 | * COVID-19 and WG sittings [#370](https://github.com/nodejs/diagnostics/issues/370) 38 | 39 | * Improving automated remote connection via Inspector Protocol [#348](https://github.com/nodejs/diagnostics/issues/348) 40 | 41 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 42 | 43 | * docs(README): self nomination to diagnostic team [#413](https://github.com/nodejs/diagnostics/pull/413) 44 | * Presented in the meeting. Rafael introduced to the team 45 | 46 | ## Q&A, Other 47 | 48 | ## Upcoming Meetings 49 | 50 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 51 | -------------------------------------------------------------------------------- /wg-meetings/2019-07-31.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2019-07-31 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=lN9yxPlzkwQ 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/321 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Christopher Hiller (@boneskull) 12 | * Matheus Marchini (@mmarchini) 13 | 14 | ## Agenda 15 | 16 | ## Announcements 17 | 18 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 19 | 20 | ### nodejs/node 21 | 22 | * Async Hooks do not recognize execution contexts created when processing thenables [#22360](https://github.com/nodejs/node/issues/22360) 23 | * No update 24 | 25 | ### nodejs/diagnostics 26 | 27 | * proposal: --inspect-store flag [#298](https://github.com/nodejs/diagnostics/issues/298) 28 | * Waiting to get Aleksey to a meeting. 29 | * @mmarchini will talk with Aleksey to see if he can attend the next meeting 30 | 31 | * Proposal to drive Diagnostics WG initiatives through user journeys [#295](https://github.com/nodejs/diagnostics/issues/295) 32 | * slower over the summer, Gireesh pulled temporarily to other work 33 | 34 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 35 | * \[async_hooks\] stable API - tracking issue 36 | [#124](https://github.com/nodejs/diagnostics/issues/124) 37 | * slower over the summer, Gireesh pulled temporarily to other work 38 | 39 | * Perfetto in Node.js [#277](https://github.com/nodejs/diagnostics/issues/277) 40 | * Kelvin is waiting on some changes on the v8/perfetto front. 41 | 42 | * Updated demo on Diagnostic report tool 43 | * Chris Hiller did nice demo 44 | * Almost ready as MVP. Need to do lots of doc 45 | * Hope to release in next month or 2. 46 | * Then will look at guided usage. 47 | * In the mean time if you want to try it out, ask Chris for a copy. 48 | 49 | ## Q&A, Other 50 | 51 | ## Upcoming Meetings 52 | 53 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 54 | 55 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 56 | 57 | -------------------------------------------------------------------------------- /tracing/vm-tracing/v8-tracing.md: -------------------------------------------------------------------------------- 1 | ## V8/Chromium Tracing 2 | Generic macro definitions intended to be shared by many projects are in `trace_event_common.h`. 3 | Source of truth for `trace_event_common.h` is in `chromium:src/base/trace_event/trace_event_common.h`. 4 | This file is in Chromium but not in V8. @ofrobots copied it into `nodejs:deps/v8`. Perhaps it should be moved to `nodejs:deps/v8/include` or `nodejs:deps/v8/src/trace_event`. 5 | 6 | Implementation-specific ("INTERNAL_*") macro definitions are in `v8:src/trace_event.h` and `chromium:src/base/trace_event.h`. 7 | Chromium: `trace_event.h` macros utilize `v8::base::TraceLog::AddTraceEvent` to write traces. 8 | V8: `trace_event.h` macros utilize `v8::Platform::AddTraceEvent` to write traces. 9 | Node uses `DefaultPlatform` from `v8:src/libplatform/default-platform.h` which currently simply returns 0. 10 | A simplistic implementation which logs all trace events to stdout illustrates the basics: 11 | 12 | ``` 13 | // from v8:src/libplatform/default-platform.cc 14 | // add `#include ` to includes 15 | 16 | uint64_t DefaultPlatform::AddTraceEvent( 17 | char phase, const uint8_t* category_enabled_flag, const char* name, 18 | /* const char* scope, */ uint64_t id, uint64_t bind_id, int num_args, 19 | const char** arg_names, const uint8_t* arg_types, 20 | const uint64_t* arg_values, unsigned int flags) { 21 | 22 | time_t timestamp = std::time(nullptr); 23 | 24 | std::cout << "phase: " << phase << std::endl; 25 | std::cout << "category_enabled_flag: " << category_enabled_flag << std::endl; 26 | std::cout << "name: " << name << std::endl; 27 | std::cout << "id: " << id << std::endl; 28 | std::cout << "epoch_timestamp: " << timestamp << std::endl; 29 | std::cout << "human_timestamp: " << std::asctime(std::localtime(×tamp)) << std::endl; 30 | 31 | return 0; 32 | } 33 | 34 | const uint8_t* DefaultPlatform::GetCategoryGroupEnabled(const char* name) { 35 | static uint8_t yes = CategoryGroupEnabledFlags::kEnabledForRecording_CategoryGroupEnabledFlags | 36 | CategoryGroupEnabledFlags::kEnabledForEventCallback_CategoryGroupEnabledFlags; 37 | return &yes; 38 | } 39 | ``` 40 | -------------------------------------------------------------------------------- /wg-meetings/2022-10-11.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-10-11 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=o2tBFhRWO7g 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/592 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1utEDIAUXoLFCPdqorSLacHlpdo5j4F20tDwf2Kum938/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger @qard 13 | * Rafael Gonzaga @rafaelgss 14 | * Tony Gorez @tony-go 15 | * Yagiz Nizipli @anonrig 16 | * Gireesh Punathil @gireeshpunathil 17 | * Anton Whalley @No9 18 | 19 | 20 | ## Agenda 21 | 22 | ## Announcements 23 | 24 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 25 | 26 | ### nodejs/diagnostics 27 | 28 | * llnode - Current Status [#576](https://github.com/nodejs/diagnostics/issues/576) 29 | * anton: number of PRs opened (by Keyhan) as part of the review / workshop in the collab summit - promise support, missing features for v16 and documentation (Tony). 30 | * tony: I had a answer from apple regarding the lldb issue, I’ll publish it on the issue. 31 | * rafael: I could take documentation issue maybe in 2 or 3 weeks 32 | 33 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 34 | * rafael: Remove the item “native tools” from the “profiling” section 35 | 36 | * reportVersion semantics are not defined [#349](https://github.com/nodejs/diagnostics/issues/349) 37 | * gireesh: consensus on the single digit version semantics, that bumps when there is a structural change in the report. Raise PR in the core to this effect. 38 | 39 | * diagnostics_channel additions: 40 | for working group awareness and review: 41 | * storage channel [#44943](https://github.com/nodejs/node/pull/44943) 42 | * tracing channel [#44894](https://github.com/nodejs/node/pull/44894) 43 | * https://github.com/nodejs/node/pull/44340 44 | 45 | 46 | ## Q&A, Other 47 | 48 | ## Upcoming Meetings 49 | 50 | * **Node.js Project Calendar**: 51 | 52 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 53 | -------------------------------------------------------------------------------- /wg-meetings/2020-01-29.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2020-01-29 2 | 3 | ## Links 4 | 5 | * **Recording**: https://youtu.be/0z9nU1dosiA 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/351 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Richard Lau (@richardlau) 12 | * Giovanny Gongora (@gioyik) 13 | * Gireesh Punathil (@gireeshpunathil) 14 | * @legendecas 15 | * Stephen Belanger 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | ### nodejs/diagnostics 23 | 24 | * reportVersion semantics are not defined [#349](https://github.com/nodejs/diagnostics/issues/349) 25 | * Lots of discussion about pro’s cons of multiple numbers 26 | * Gireesh is going to propose single number option bumped on breaking changes in Github 27 | Issue for additional discussion. 28 | 29 | * Proposal to drive Diagnostics WG initiatives through user journeys [#295](https://github.com/nodejs/diagnostics/issues/295) 30 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 31 | * Michael submitted - https://github.com/nodejs/node/pull/31501 on using valgrind. 32 | * This issue could use more reviews as well https://github.com/nodejs/diagnostics/pull/343 33 | 34 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 35 | * Issue on TSC repo, executive summary for CLS API - https://github.com/nodejs/TSC/issues/807 36 | * 2 proposals, either one will need to be rebased on AsyncExecutionResource 37 | * AsyncExecutionResource a bug was discovered so investigating that 38 | * Previous performance issues have been resolved 39 | * Summary of 2 40 | * AsyncContext is closer to the existing CLS modules with a Map 41 | * AsyncLocal just gives you the ability to get/set a value 42 | 43 | ## Q&A, Other 44 | 45 | ## Upcoming Meetings 46 | 47 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 48 | 49 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 50 | -------------------------------------------------------------------------------- /documentation/abnormal_termination/step1/using_exit_stack_traces.md: -------------------------------------------------------------------------------- 1 | # Using Exit Stack Traces for Debugging 2 | 3 | `--trace-exit` CLI option will print a stack trace on every proactive 4 | `process.exit` invocation. It is convenient to confirm if the abnormal exit of 5 | the process was initiated from an invocation of `process.exit` or something 6 | other crashes. 7 | 8 | > Caveat: 9 | > `--trace-exit` CLI option is available since Node.js v13.5.0. 10 | 11 | ## How To 12 | 13 | There are conditions that we used an third party library that we have trivial 14 | knowledge of the implementation details. It is hard to determine where the exit 15 | is trigger in which library in these conditions. On the first step we have to 16 | determine if it is a proactive `process.exit` invocation and where it is to 17 | prevent follow up not trivial work of detailed digging the exit reasons. 18 | 19 | The simple step is to add an option `--trace-exit` on starting the Node.js 20 | process. Since then, we can see a stacktrace on each call of `process.exit`. 21 | 22 | ```bash 23 | > node --trace-exit src/abnormal-exit.js 24 | (node:26480) WARNING: Exited the environment with code 0 25 | at exit (internal/process/per_thread.js:168:13) 26 | at /node_modules/some-obscure-library:199:32 # this is the actual location. 27 | at Module._compile (internal/modules/cjs/loader.js:1139:30) 28 | at Module._extensions..js (internal/modules/cjs/loader.js:1159:10) 29 | at Module.load (internal/modules/cjs/loader.js:988:32) 30 | at Module._load (internal/modules/cjs/loader.js:896:14) 31 | at executeUserEntryPoint (internal/modules/run_main.js:71:12) 32 | ``` 33 | 34 | With the knowledge of where the calls of `process.exit` is, we can check around 35 | the invocation to understand the reasons and prevent it from abnormal exits. 36 | 37 | If the process doesn't output a stack trace on exit, we can come to a 38 | conclusion that the process exited for other reasons, and we 39 | can deploy strategy according to the [abnormal termination guides on common symptoms]. 40 | 41 | ## Useful Links 42 | 43 | - https://nodejs.org/docs/latest/api/cli.html#cli_trace_exit 44 | 45 | [abnormal termination guides on common symptoms]: ../README.md#Common_Symptoms 46 | -------------------------------------------------------------------------------- /wg-meetings/2022-09-20.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-09-20 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=iRd5RaQoeBI 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/589 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1w9mprqA---ev7RIW1UjLWwcJNA30fzYtiIv-nsM5EK4 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostic 12 | * Rafael Gonzaga: @rafaelgss 13 | * Anton Whalley: @No9 14 | * Tony Gorez: @tony-go 15 | * Michael Dawson: @mhdawson 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | 23 | ### nodejs/diagnostics 24 | 25 | * Discuss Possible Agenda Items for Collab Summit [#583](https://github.com/nodejs/diagnostics/issues/583) 26 | * Closed as completed 27 | 28 | * llnode - Current Status [#576](https://github.com/nodejs/diagnostics/issues/576) 29 | * M1 support failing 30 | * We’ve lost support to some architectures 31 | * Official support to v16, v18 32 | * Suggestion to mention it in the Node.js social media 33 | 34 | * alternatives to `llnode` [#571](https://github.com/nodejs/diagnostics/issues/571) 35 | * rename the issue 36 | * feature request accepted 37 | * removing from the agenda 38 | 39 | * Re-evaluate eBPF Tracing tool tier-list [#535](https://github.com/nodejs/diagnostics/issues/535) 40 | * Rafael is planning to discuss it in the Collab Summit 41 | 42 | 43 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 44 | * Discussions around using_lldb 45 | * renamed to using llnode 46 | * Discussions around the terminology between Crash and Abnormal Termination 47 | 48 | * reportVersion semantics are not defined [#349](https://github.com/nodejs/diagnostics/issues/349) 49 | * Agreement on the Diagnostics WG side 50 | * “_Number versioning_” 51 | * Action: create a guide to update the version by just changing the constant number 52 | 53 | ## Q&A, Other 54 | 55 | ## Upcoming Meetings 56 | 57 | * **Node.js Project Calendar**: 58 | 59 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 60 | -------------------------------------------------------------------------------- /wg-meetings/2021-07-28.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-07-28 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=qPa90B8ahSQ 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/488 7 | 8 | ## Present 9 | 10 | * Stephen Belanger (@Qard) 11 | * Rafael Gonzaga (@rafaelgss) 12 | * Michael Dawson (@mhdawson) 13 | * Gireesh Punathil (@gireeshpunathil) 14 | * Chengzhong Wu (@legendecas) 15 | * Helio Frota (@helio-frota) 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | * No announcements this week 22 | 23 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/node 26 | 27 | * async_hooks: multi-tenant promise hook api [#39283](https://github.com/nodejs/node/pull/39283) 28 | * Working to expose promise hook API to userland and then have async hooks 29 | consume that under the covers 30 | * Currently separate top level module promise_hook 31 | * Conflicting opinions if it should be under async_hooks or separate module 32 | * Want to try to make it a SemVer minor so that it can be backported 33 | * Differing opinions on whether adding a new top level module is SemVer major or not 34 | * Ask is for people to take a closer look/comment on issue. 35 | 36 | ### nodejs/diagnostics 37 | 38 | * inactive branches in the repo [#486](https://github.com/nodejs/diagnostics/issues/486) 39 | * Looks all are stale branches came as a side effect or PR process. Should be good to remove. 40 | 41 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 42 | * Created a PR to @nodejs/tweet repo for tweeting through Node.js handle. 43 | https://github.com/nodejs/tweet/pull/40 44 | * Also run it through TSC at some point in time. 45 | 46 | ### nodejs/node-inspect 47 | 48 | * update: add blackbox by default [#99](https://github.com/nodejs/node-inspect/pull/99) 49 | * Document how to flip the configuration in both GUI and CLI mode 50 | 51 | 52 | ## Q&A, Other 53 | 54 | ## Upcoming Meetings 55 | 56 | * **Node.js Foundation Calendar**: 57 | 58 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 59 | -------------------------------------------------------------------------------- /wg-meetings/2020-02-26.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-02-26 2 | 3 | ## Links 4 | 5 | * **Recording**: https://youtu.be/OY-DMO8USl0 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/359 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Gireesh Punathil (@gireeshpunathil) 12 | * Giovanny Gongora (@gioyik) 13 | * Matheus Marchini (@mmarchini) 14 | 15 | ## Agenda 16 | 17 | ## Announcements 18 | 19 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 20 | 21 | * No announcements this week. 22 | 23 | ### nodejs/diagnostics 24 | 25 | * Future of llnode [#355](https://github.com/nodejs/diagnostics/issues/355) 26 | * Last time agreed to change landing policy. Can land own pull request after 3 days if there 27 | are no reviews. 28 | * Going to close issue 29 | 30 | * reportVersion semantics are not defined [#349](https://github.com/nodejs/diagnostics/issues/349) 31 | * We had different suggestions, but converging on single number based on changes 32 | to the format. 33 | * Next step. Wait a few more days if no new objections capture agreement and PR 34 | in core docs. 35 | 36 | * Proposal to drive Diagnostics WG initiatives through user journeys [#295](https://github.com/nodejs/diagnostics/issues/295) 37 | * Deep dive scheduled for next meeting slot. Nothing to discuss this week. 38 | 39 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 40 | * covered under work for deep diver for 295 as well. 41 | 42 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 43 | * Quard is not here this time so no update. 44 | * Async Storage API landed in core. 45 | * Gireesh, worthwhile to add to test coverage using our existing http tests, can also 46 | update existing tests to use CLS where other methods needed to be used to 47 | pass context. 48 | * Gireesh to open issue about additional testing from the existing HTTP tests for CLS. 49 | 50 | 51 | ## Q&A, Other 52 | 53 | 54 | ## Upcoming Meetings 55 | 56 | 57 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 58 | 59 | 60 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 61 | -------------------------------------------------------------------------------- /wg-meetings/2018-11-14.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-11-14 Minutes 2 | 3 | ## Attendees 4 | - Stephen Belanger @qard 5 | - @kjin 6 | - @mike-kaufman 7 | - Michael Dawson (@mhdawson) 8 | - Peter Marton 9 | - Gireesh Punathil 10 | 11 | ## Links 12 | - **This Meeting**: 13 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-11-14.md 14 | - Notes: https://docs.google.com/document/d/12w-fz24fZw0lwwN24o4jEzwWIsf5ZeQLQWTyY8TtqRI/edit 15 | - You Tube: http://youtu.be/JpQYLcacz6Y 16 | - **Previous Meeting**: 17 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-10-31.md 18 | - Notes: https://docs.google.com/document/d/1Jh29wokY3_z8YVxBlkrvg9G-fKu486rbjhNUGYFPdaQ/edit 19 | - You Tube: http://youtu.be/mYjhWS7NTvI 20 | 21 | ## Agenda 22 | 23 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/diagnostics 26 | 27 | - Meeting timeslot [#235](https://github.com/nodejs/diagnostics/issues/235) 28 | - Meeting moved to 9:30 AM PST. 29 | - Issue closed. 30 | 31 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 32 | - Gireesh to try to set something up next week 33 | - great progress would be a draft Table-of-contents & some prioritiziation 34 | 35 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 36 | - no update 37 | 38 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 39 | - no update 40 | 41 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 42 | - Progress made on by @mmarchini https://github.com/nodejs/diagnostics/issues/248 43 | - another PR opened to clean up re-use of HTTP Parser objects 44 | 45 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 46 | - @kjin has some comments about ready context. Discussion [here] (https://github.com/NatalieWolfe/node-context-continuation/issues/1) 47 | 48 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 49 | - no update 50 | -------------------------------------------------------------------------------- /wg-meetings/2022-07-26.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-07-26 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=_GILHdoV_Fc 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/574 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1l_-UyilTMA3O9YGQMvPfA5Iuz7_5SZc0WmdSfk2zFzM/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger: @qard 13 | * Rafael Gonzaga: @rafaelgss 14 | * Anton Whalley: @No9 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | ### nodejs/diagnostics 23 | 24 | * alternatives to `llnode` [#571](https://github.com/nodejs/diagnostics/issues/571) 25 | * Anton will open a new issue with the next steps to fully support `llnode` 26 | * This issue will be on the `diag-agenda` to keep tracking the work 27 | 28 | * Re-evaluate eBPF Tracing tool tier-list [#535](https://github.com/nodejs/diagnostics/issues/535) 29 | * Rafael is still investigating it 30 | * Anton and Mary did research on this topic in the past (https://github.com/nodejs/diagnostics/pull/388) 31 | * An unofficial build was created, but the progress is now stale 32 | * Node.js Core didn't accept the USDT probes in the core, cause most Node.js users are developers and aren't familiarized with ops tools 33 | * Issue tracking IllumOS support mentioned on the call https://github.com/nodejs/node/issues/43457 34 | * Unofficial Builds with USDT support https://unofficial-builds.nodejs.org/download/release/v18.6.0/ 35 | 36 | * re-assess the tooling list and their maturity status [#532](https://github.com/nodejs/diagnostics/issues/532) 37 | * Closing it as completed 38 | 39 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 40 | * Anton will include the documentation for llnode 41 | 42 | * reportVersion semantics are not defined [#349](https://github.com/nodejs/diagnostics/issues/349) 43 | * Gireesh not present. Skipped. 44 | 45 | ## Q&A, Other 46 | 47 | ## Upcoming Meetings 48 | 49 | * **Node.js Project Calendar**: 50 | 51 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 52 | 53 | -------------------------------------------------------------------------------- /wg-meetings/2025-05-08.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2025-05-08 2 | 3 | ## Links 4 | 5 | - **Recording**: https://www.youtube.com/watch?v=-YlbGck3e_o 6 | - **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/658 7 | - **Minutes Google Doc**: https://docs.google.com/document/d/16D1es466CuG4K7dSkH5yQCtZjwGKeF2vCgLQaceIjeM/edit?tab=t.0 8 | 9 | ## Present 10 | 11 | - Diagnostics team: @nodejs/diagnostics 12 | 13 | * Abhijeet Prasad (@AbhiPrasad) 14 | * Tim Fish (@timfish) 15 | * James Sumners 16 | 17 | ## Agenda 18 | 19 | ### nodejs/node 20 | 21 | - Port/Duplicate async_hooks tests to use AsyncLocalStore #55712 22 | - No participants present, so we skipped this one. 23 | 24 | ### nodejs/import-in-the-middle 25 | 26 | - Support for --experimental-strip-types [#186](https://github.com/nodejs/import-in-the-middle/issues/186) 27 | - https://github.com/nodejs/loaders/issues/208 28 | - When do experimental-strip-types run? 29 | - Does --experimental-strip-types interfere with other loader hooks? 30 | - Can we escalate to Marco + Node folks working on experimental strip types? 31 | - Tim Fish to open an issue with Node about this 32 | - Behavior is different from `require-in-the-middle` [#185](https://github.com/nodejs/import-in-the-middle/issues/185) 33 | - Conditionally was introduced with https://github.com/nodejs/import-in-the-middle/commit/c9c56497f0f1af2a9c3d5b39144907c9081fd871 34 | - Should import-in-the-middle work like require-in-the-middle here? 35 | - OpenTelemetry assumes they do 36 | - Let’s gate behind a flag to test this out, we can move it out of a flag afterwards 37 | - fix: Skip wrapping CJS modules which result in invalid identifiers [#115](https://github.com/nodejs/import-in-the-middle/pull/115) 38 | - Let’s merge this 39 | 40 | ## Q&A, Other 41 | 42 | - Tim will open an issue about the node-import core implementation to ask why it doesn’t use the watchdog thread the original used 43 | - https://github.com/DataDog/orchestrion-js has some PRs opened by Tim, feel free to go check them out. There are also some open issues that are open to any feedback/thoughts. 44 | - Mainly looking at API design and getting the module in a state where it can be published 45 | 46 | ## Upcoming Meetings 47 | 48 | - **Node.js Project Calendar**: 49 | 50 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 51 | -------------------------------------------------------------------------------- /wg-meetings/2019-07-17.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2019-07-17 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=C-RIStWbTdo 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/317 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1e7VFodknr4LoKY2eUgvgdsXtXphkBESIOHkROW6Nkn4/edit 8 | 9 | ## Present 10 | 11 | * Michael Dawson (@mhdawson) 12 | * Peter Marton (@hekike) 13 | 14 | ## Agenda 15 | 16 | ## Announcements 17 | 18 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 19 | 20 | ### nodejs/node 21 | 22 | * Async Hooks do not recognize execution contexts created when processing thenables [#22360](https://github.com/nodejs/node/issues/22360) 23 | * no comment on the issue for a while 24 | 25 | ### nodejs/diagnostics 26 | 27 | * proposal: --inspect-store flag [#298](https://github.com/nodejs/diagnostics/issues/298) 28 | * no progress 29 | * Proposal to drive Diagnostics WG initiatives through user journeys [#295](https://github.com/nodejs/diagnostics/issues/295) 30 | * Issue opened with survey in user-feedback group: https://github.com/nodejs/user-feedback/issues/165 31 | * Michael pinged Joe Sepi, and will reach out to him on Twitter 32 | * Perfetto in Node.js [#277](https://github.com/nodejs/diagnostics/issues/277) 33 | * Kevin says Perfetto changed significantly and he is waiting for those changes to stabilize before continuing with his PR 34 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 35 | * no progress, 36 | * Still waiting for review on crash analysis PR by Micheal and Peter 37 | * Micheal volunteered to setup a meeting to move this forward 38 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 39 | * Ali is not going to be able to champion this, we are looking for a new champion 40 | * Let’s figure out why people don’t show up on meetings 41 | * Too frequent? 42 | * Summer vacations? 43 | * Not at the right time? 44 | * Should we change the style to be more progress driven? 45 | * Peter will open this issue 46 | 47 | ## Q&A, Other 48 | 49 | ## Upcoming Meetings 50 | 51 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 52 | 53 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 54 | 55 | 56 | -------------------------------------------------------------------------------- /wg-meetings/2022-08-23.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-08-23 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=obxbdCgaNdE 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/585 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1D9-OqcSkZqREJkoX9gamwxtv2bq6mFyEEe0MNjBj9pc/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga: @rafaelgss 13 | * Tony Gorez: @tony-go 14 | * Anton Whalley: @no9 15 | * Gireesh Punathil @gireeshpunathil 16 | * Michael Dawson @mhdawson 17 | * Stephen Belanger @Qard 18 | 19 | ## Agenda 20 | 21 | ## Announcements 22 | 23 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/diagnostics 26 | 27 | * Discuss Possible Agenda Items for Collab Summit [#583](https://github.com/nodejs/diagnostics/issues/583) 28 | 1. Adding eBPF Support 29 | 2. Next years of `llnode` 30 | 3. Investigate our current tutorial list (https://github.com/nodejs/diagnostics/issues/502) 31 | 32 | * llnode - Current Status [#576](https://github.com/nodejs/diagnostics/issues/576) 33 | * alternatives to `llnode` [#571](https://github.com/nodejs/diagnostics/issues/571) 34 | * Anton presented the current and next steps of `llnode` as defined in: https://github.com/nodejs/llnode/issues/402 35 | * Issues discussed: 36 | * https://github.com/nodejs/llnode/issues/405 37 | * https://github.com/nodejs/llnode/pull/404 38 | * https://github.com/nodejs/diagnostics/issues/576 39 | * Discussions about a potential announcement of llnode back to support 40 | 41 | * Re-evaluate eBPF Tracing tool tier-list [#535](https://github.com/nodejs/diagnostics/issues/535) 42 | * Rafael is working to create a proposal to discuss at Node.js Collab Summit 43 | 44 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 45 | * Rafael created a PR to include the LiveDebugging doc (https://github.com/nodejs/nodejs.org/pull/4772). It probably needs to be discussed if that's useful. 46 | 47 | * reportVersion semantics are not defined [#349](https://github.com/nodejs/diagnostics/issues/349) 48 | 49 | ## Q&A, Other 50 | 51 | ## Upcoming Meetings 52 | 53 | * **Node.js Project Calendar**: 54 | 55 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 56 | -------------------------------------------------------------------------------- /wg-meetings/2021-08-25.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-08-25 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=UsGZ3EsDAnk 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/494 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1OevFMG4iAcQG_kbBDkCvVX7SgRv4iVfbgYtce3AfSV8/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | 13 | * Gireesh Punathil (@gireeshpunathil) 14 | * Rafael Gonzaga (@rafaelgss) 15 | * Helio Frota (@helio-frota) 16 | * Bradley Farias (@bmeck) 17 | * Stephen Belanger (@Qard) 18 | 19 | 20 | 21 | ## Agenda 22 | 23 | ## Announcements 24 | 25 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 26 | 27 | ### nodejs/node 28 | 29 | * async_hooks: multi-tenant promise hook api [#39283](https://github.com/nodejs/node/pull/39283) 30 | 31 | * still waiting for feedback, there is no agreement on the shape of the API. Hoping to get more reviews on the PR 32 | * needs consensus on the API placement - should it be a top level module, or can be shipped under async_hooks? 33 | * also we need to decide on the name of the module without conflicting with npm libraries 34 | 35 | * Helio brought-in a new topic: 36 | * Helio: How to track execution of synchronous functions 37 | * Is it worth making some tools to identify synchronous and asynchronous? 38 | * Rafael: we can only measure the event loop, node clinic might be doing it, other tools like zeroX, etc. 39 | * Rafael: without native addons, this capability is mostly not possible. 40 | * Gireesh: probably worth opening an issue to discuss this further. 41 | * https://github.com/nodejs/diagnostics/issues/495 is opened to take this forward 42 | 43 | ### nodejs/diagnostics 44 | 45 | * docs(linux-perf): add tutorial of linux_perf [#493](https://github.com/nodejs/diagnostics/pull/493) 46 | * good to land, had sufficient reviews 47 | * feat: add debugging blackbox section [#490](https://github.com/nodejs/diagnostics/pull/490) 48 | * good to land, had sufficient reviews 49 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 50 | * still can have more feedback, the related issue is active with discussions. 51 | 52 | ## Q&A, Other 53 | 54 | ## Upcoming Meetings 55 | 56 | * **Node.js Foundation Calendar**: 57 | 58 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 59 | -------------------------------------------------------------------------------- /wg-meetings/2018-07-11.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2018-07-11 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=OztA8R-biz4 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/212 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Thomas Watson (@watson) 12 | * Yang Guo (@hashseed) 13 | * Stephen Belanger (@qard) 14 | * Gireesh Punathil 15 | * Jan Krems 16 | * Ali Sheikh 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Informal Diagnostic Meetup Around Node Summit [#201](https://github.com/nodejs/diagnostics/issues/201) 27 | * nothing new, remove from agenda. 28 | 29 | * Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 30 | * Sepnd time going into one on Tiers - see under #157 below 31 | 32 | * Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 33 | * We discussed/reviewed the draft, Michael has action to create PR. 34 | 35 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 36 | * Leave on agenda to get updates from Matteo on PR to add resource 37 | * Thomas has been playing around with the embedder API, making sure that embedder API 38 | allows you to maintain context across those workers: 39 | https://github.com/watson/worker-threads-pool 40 | * Ali: question about whether we have the name right? Maybe something like 41 | async-resource-propagation. 42 | * Thomas will also look at doc and see if he can improve having just used it. 43 | * Ali, good to include some example modules. 44 | 45 | * Async-context formalization and diagnostics support[#107](https://github.com/nodejs/diagnostics/issues/107) 46 | * discussion continues in github. 47 | 48 | * \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 49 | * A few pull request open 50 | * There is a PR to address intermittent shutdown issue 51 | * So net is slow forward progress. 52 | 53 | * https://github.com/nodejs/diagnostics/issues/211 54 | * Please take a look and comment 55 | 56 | ## Q&A, Other 57 | * No questions from youtube today 58 | 59 | ## Upcoming Meetings 60 | 61 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 62 | 63 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 64 | 65 | 66 | -------------------------------------------------------------------------------- /wg-meetings/2018-08-22.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-06-13 Minutes 2 | 3 | ## Attendees 4 | - @mhdawson 5 | - @mrkmarron 6 | - @mike-kaufman 7 | - @qard 8 | - @ofrobots 9 | - Peter 10 | 11 | 12 | ## Links 13 | - **This Meeting**: 14 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-08-22.md 15 | - Notes: https://docs.google.com/document/d/1b7InhqjUTZY0c9jYrpFgzo0xwDgbZ4LjtLPH98ZU4kg/edit 16 | - You Tube: http://youtu.be/0MJ_VIKzoJg 17 | - **Previous Meeting**: 18 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-08-08.md 19 | - Notes: https://docs.google.com/document/d/15ehqimizTFdJxzd9B8snP3Qf_b9Y7h3SRGRUXScn8rc/edit 20 | - You Tube:http://youtu.be/Ef4sJNR0mQk 21 | 22 | 23 | ## Agenda 24 | 25 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 26 | 27 | ### nodejs/diagnostics 28 | 29 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 30 | - @mike-kaufman to schedule deep-dive on async-context formalizations. 31 | 32 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 33 | - @mhdawson has PR open 34 | - markdown failed CI :( 35 | - Peter wants to add v8 Code Event Listener APIs to the list 36 | - suggestion is to let current PR land and then open a new PR to add this to the list 37 | 38 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 39 | - Open PR [21313](github.com/nodejs/node/pull/21313), eliminates need for destroy callback & significantly improves perf 40 | - this is stalled 41 | - perf is still biggest ? 42 | - @ofrobots: if we want something from v8, we need time to let it land 43 | - need to figure out the story in next 3 months if we want this stable for node 12. 44 | 45 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 46 | - PR https://github.com/nodejs/diagnostics/pull/197 open, would love feedback 47 | - will schedule a deep-dive 48 | 49 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 50 | - @mhdawson to ping @jasnell for an update here. 51 | - issue needs cleaned up 52 | 53 | 54 | - \[Diagnostics "Best Practices" Guide?\] [#211](https://github.com/nodejs/diagnostics/issues/211) 55 | - Mike from NodeSource is interested in helping out here. 56 | - There's existing content, just needs some curation & editing 57 | - Also need to interface w/ website team. -------------------------------------------------------------------------------- /documentation/hang/step1/using_trace_sigint.md: -------------------------------------------------------------------------------- 1 | # Using SigInt Traces for Call Stacks 2 | 3 | `--trace-sigint` CLI option will print a message and stack traces on `SIGINT`. 4 | It can be convenient to find out what's the process doing when using shells 5 | launched the Node.js processes. 6 | 7 | The behavior of the process on `SIGINT` is not changed with `--trace-sigint`, 8 | i.e. if there is no `SIGINT` listener the process will exit after the prints. 9 | Also, the `--trace-sigint` option will not take effect if there are active 10 | `SIGINT` listeners. 11 | 12 | > Caveat: 13 | > `--trace-sigint` CLI option is available since Node.js v13.9.0. 14 | 15 | ## How To 16 | 17 | It is very common that we find a Node.js process hanging there while all 18 | necessary jobs are done, and there is no outputs from the process. In the case 19 | we probaly need an inspector to step into the running process and trying to 20 | figure out what is the process doing right now. With `--trace-sigint` CLI we 21 | can get a stack trace when the process is interrupted via `SIGINT` (for 22 | example, when the process is interrupted with CTRL-C). 23 | 24 | Following are examples showing how `--trace-sigint` behaves on different cases 25 | of hanging processes. 26 | 27 | Busy JavaScript evaluation: 28 | ```bash 29 | > cat src/work.js 30 | let counter = 0; 31 | while (true) { 32 | // emulating some works... 33 | counter += 1; 34 | } 35 | > export NODE_OPTIONS=--trace-sigint # Equal to node --trace-sigint src/work.js 36 | > node src/work.js 37 | ^C # Send a SIGINT to the process by pressing ctrl-C. 38 | KEYBOARD_INTERRUPT: Script execution was interrupted by `SIGINT` 39 | at /workspace/src/work.js:2:1 40 | at Module._compile (internal/modules/cjs/loader.js:1206:30) 41 | at Module._extensions..js (internal/modules/cjs/loader.js:1226:10) 42 | at Module.load (internal/modules/cjs/loader.js:1055:32) 43 | at Module._load (internal/modules/cjs/loader.js:950:14) 44 | at executeUserEntryPoint (internal/modules/run_main.js:71:12) 45 | at internal/main/run_main_module.js:17:47 46 | ``` 47 | 48 | Idle looping: 49 | ```bash 50 | > cat src/work.js 51 | setInterval(() => {}, 1000); 52 | > export NODE_OPTIONS=--trace-sigint # Equal to node --trace-sigint src/work.js 53 | > node src/work.js 54 | ^C # Send a SIGINT to the process by pressing ctrl-C. 55 | KEYBOARD_INTERRUPT: Script execution was interrupted by `SIGINT` 56 | ``` 57 | 58 | Since there is no JavaScript running during idle looping, the trace will 59 | not contain any JavaScript stack traces but a message indicating the process 60 | has been terminated by a `SIGINT`. 61 | 62 | ## Useful Links 63 | 64 | - https://nodejs.org/docs/latest/api/cli.html#cli_trace_sigint 65 | -------------------------------------------------------------------------------- /wg-meetings/2020-08-19.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-08-19 2 | 3 | ## Links 4 | 5 | * **Recording**: https://youtu.be/8f7qq0UvtbE 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/427 7 | * **Minutes HackMD**: https://hackmd.io/GOv4P4DzQ9KN0adi-kImYA?both 8 | 9 | ## Present 10 | 11 | * Stephen Belanger (@qard) 12 | * Rafael Gonzaga (@rafaelgss) 13 | * Chengzhong Wu (@legendecas) 14 | * Mary Marchini (@mmarchini) 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | ### nodejs/diagnostics 23 | 24 | * Expand the scope of deep dive meetings [#417](https://github.com/nodejs/diagnostics/issues/417) 25 | * Expand the scope beyond journeys 26 | * No objections 27 | * Revisit meetings frequency [#426](https://github.com/nodejs/diagnostics/issues/426) 28 | * Suggestion to alternate in the meeting (at the start we give updates on items on the agenda, afterwards deep dive). 29 | * Try to keep the topics minimal, remember to remove stalled and non-relevant items 30 | * Let's try it :) 31 | * Next week no meeting 32 | * Sept 2nd meeting: first 15-ish minutes for updates, rest for deep dive 33 | * discuss: node.js contributor survey [#398](https://github.com/nodejs/diagnostics/issues/398) 34 | * Not much to discuss, lost traction 35 | * Removed from agenda until gets traction again 36 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 37 | * Fix thenables, ???, broke test for some reason 38 | * There's a memory safety issue that needs to be fixed 39 | * Unlikely to happen in real world cases 40 | * Been working on other stuff, not much progress on async hooks front 41 | * Personally on the opition that async hooks should never be stable, but should stay on the agenda 42 | * Preferably it becomes an internal thing and higher level abstractions become stable 43 | * Improving automated remote connection via Inspector Protcol [#348](https://github.com/nodejs/diagnostics/issues/348) 44 | * *presented* 45 | * Can we close the connection after it's opened? 46 | * not remotely 47 | * Does it incur overhead while connection is open? 48 | * No, only when running commands 49 | * If we add to core, can we close? 50 | * No 51 | * What are the steps to add to core? 52 | * Move repo to foundation, open PR 53 | * Might face pushback due to dependencies 54 | 55 | 56 | ## Q&A, Other 57 | 58 | ## Upcoming Meetings 59 | 60 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 61 | 62 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 63 | 64 | -------------------------------------------------------------------------------- /wg-meetings/2019-03-20.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2019-03-20 Minutes 2 | 3 | ## Attendees 4 | - Michael Dawson (@mhdawson) 5 | - Stephen Belanger (@qard) 6 | - @mike-kaufman 7 | - @kjin 8 | - @watson 9 | 10 | 11 | ## Links 12 | - **This Meeting**: 13 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2019-03-20.md 14 | - Notes: https://docs.google.com/document/d/19UBjJieUHf07bqxlPOJJsFcIaNHp2n8D257gFGxh-NU/edit 15 | - You Tube: http://youtu.be/IZCROk24RuA 16 | - **Previous Meeting**: 17 | - Minutes: n/a 18 | - Notes: https://docs.google.com/document/d/1gWtJYKbtBfiRRTvm7LDki9kOcYo5wsTSaHI667aa1wI/edit 19 | - You Tube: http://youtu.be/rTr6UF4YII0 20 | 21 | ## Agenda 22 | 23 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/diagnostics 26 | 27 | - Diagnostics WG Summit Agenda -2019-03-07, 2019-03-08 - [#276](https://github.com/nodejs/diagnostics/issues/267) 28 | - Summit was good 29 | - @watson to check in a summary into the WG github repo 30 | - At some point going forward, should review actions 31 | 32 | - Post-mortem debugging support inside V8/Node.js [#227](https://github.com/nodejs/diagnostics/issues/227) 33 | - discussed at summit 34 | - some actions from there 35 | 36 | 37 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 38 | - Discussed at summit 39 | - some actions from there 40 | - Peter Manton will provide feedback to help refine list 41 | - General consensus to bring HeapDump into core 42 | - PR open on this 43 | 44 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 45 | - Discussed at summit 46 | - some effort to address promise hooks perf 47 | - Agreement that CLS was the critical need here, and that a CLS API should be in core 48 | - CLS API could get to stable, even if underlying tech is experimental & swapped out later 49 | 50 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 51 | - no update 52 | 53 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 54 | - no update 55 | 56 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 57 | - Need to see if we Bill Ticehurst can drive this forward 58 | 59 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 60 | - @kjin talking w/ perfetto team about this 61 | - able to remove proto-buf as a runtime dependency 62 | -------------------------------------------------------------------------------- /wg-meetings/2018-11-28.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-11-28 Minutes 2 | 3 | ## Attendees 4 | - @hashseed 5 | - Matteo Collina 6 | - Michael Dawson (@mhdawson) 7 | - @mike-kaufman 8 | 9 | ## Links 10 | - **This Meeting**: 11 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-11-28.md 12 | - Notes: https://docs.google.com/document/d/17fQJnTwqj5keDG7kdARWOojmzp566m0AgVqNfdwcaK8/edit 13 | - You Tube: http://youtu.be/nKPgAJdlbWo 14 | - **Previous Meeting**: 15 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-11-14.md 16 | - Notes: https://docs.google.com/document/d/12w-fz24fZw0lwwN24o4jEzwWIsf5ZeQLQWTyY8TtqRI/edit 17 | - You Tube: http://youtu.be/JpQYLcacz6Y 18 | 19 | ## Agenda 20 | 21 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | 23 | ### nodejs/diagnostics 24 | 25 | - Low attendance today, possibly because of time change. 26 | 27 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 28 | - Gireesh tried to set up some time to get people talking about this 29 | - it happened during US holiday week, so he didn't get much response 30 | - we should try again 31 | 32 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 33 | - no update 34 | 35 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 36 | - no update 37 | 38 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 39 | - https://github.com/nodejs/diagnostics/issues/248 40 | - Still some issues with re-used HttpParser instances, these need to be resolved 41 | - @mmarchini is the person with the context 42 | 43 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 44 | - Call with v8 team scheduled 45 | - @mike-kaufman needs to write an "explainer" so we can start moving to spec text 46 | 47 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 48 | - From Michael Dawson, this is still something James Snell wants to make progress on during new year 49 | 50 | - Support pausing the debugger on script load [nodjs/node #24687](https://github.com/nodejs/node/issues/24687) 51 | - we should add to agenda to see if we can make progress 52 | - breaks some debugging scenarios with transpiled code 53 | 54 | - Network Debug support 55 | - @mcollina wants this added to diag-agenda 56 | - I think this is issue [#75](https://github.com/nodejs/diagnostics/issues/75)?? -------------------------------------------------------------------------------- /wg-meetings/2020-10-28.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-10-28 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=kjgGc1_KcuQ 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/438 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1-rm5JJxdq9Muwd4oqufhE6gP4xyu0Ob8g7Fc_FcLUyA/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger (@qard) 13 | * Rafael Gonzaga (@rafaelgss) 14 | * Michael Dawson (@mhdawson) 15 | * Chengzhong Wu (@legendecas) 16 | * Gireesh Punathil (@gireeshpunathil) 17 | 18 | 19 | ## Agenda 20 | 21 | ## Announcements 22 | 23 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/node 26 | 27 | * lib: add span API to diagnostics_channel [#35534](https://github.com/nodejs/node/pull/35534) 28 | * Waiting on diagnostics channel to land first 29 | 30 | * lib: make diagnostics_channel async iterable [#35532](https://github.com/nodejs/node/pull/35532) 31 | * Waiting on diagnostics channel to land first 32 | 33 | * Proposal: mark AsyncResource and AsyncLocalStorage as stable [#35286](https://github.com/nodejs/node/issues/35286) 34 | * Seems like there is consensus that AsyncResource should be able to become stable 35 | * For AsyncLocalStorage, we need to come up/agree exit criteria. Gireesh pasted in 36 | Starting point for exit criteria based on previous features that went experimental->stable 37 | https://github.com/nodejs/node/issues/35286#issuecomment-708899145 38 | 39 | * lib: create diagnostics_channel module [#34895](https://github.com/nodejs/node/pull/34895) 40 | * Waiting on reviews, needs more TSC approvals 41 | 42 | * Node.js' internal scripts should be hidden in the inspector. [#11893](https://github.com/nodejs/node/issues/11893) 43 | * wait until we have Mary who might have a better insight 44 | 45 | ### nodejs/diagnostics 46 | 47 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 48 | * Good start on getting some feedback/capture the use case 49 | 50 | * Add ioredis to problematic-modules.md [#430](https://github.com/nodejs/diagnostics/pull/430) 51 | * Just waiting on replacement issues to be opened. 52 | 53 | * Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 54 | * skip for this week as Mary is Champion/has context 55 | 56 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 57 | * closed in favor of https://github.com/nodejs/diagnostics/issues/437 58 | 59 | 60 | ## Q&A, Other 61 | 62 | ## Upcoming Meetings 63 | 64 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 65 | -------------------------------------------------------------------------------- /wg-meetings/2018-10-31.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-10-31 Minutes 2 | 3 | ## Attendees 4 | - Stephen Belanger @qard 5 | - Matheus Marchini @mmarchini 6 | - @kjin 7 | - @ofrobots 8 | - Michael Dawson (@mhdawson) 9 | - Ruben Bridgewater (@BridgeAR) 10 | - @NatalieWolfe 11 | - Bryan Clement 12 | 13 | 14 | ## Links 15 | - **This Meeting**: 16 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-10-31.md 17 | - Notes: https://docs.google.com/document/d/1Jh29wokY3_z8YVxBlkrvg9G-fKu486rbjhNUGYFPdaQ/edit 18 | - You Tube: http://youtu.be/mYjhWS7NTvI 19 | - **Previous Meeting**: 20 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-10-17.md 21 | - Notes: https://docs.google.com/document/d/1l-hbheqECIKO0TMNymMweNX3LvtMxA2Id3dY7qUAoAQ/edit 22 | - You Tube: http://youtu.be/3linTf2Z1N8 23 | 24 | ## Agenda 25 | 26 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 27 | 28 | ### nodejs/diagnostics 29 | 30 | - Meeting timeslot [#235](https://github.com/nodejs/diagnostics/issues/235) 31 | - Someone needs to synthesize current feedback 32 | - Lets wait for Gireesh 33 | 34 | - Session at Collab Summit Vancouver 2018 [#229](https://github.com/nodejs/diagnostics/issues/168) 35 | - closed 36 | 37 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 38 | - Try to set up meeting for week after Node Conf EU 39 | 40 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 41 | - We'll keep async context on radar & decide when it makes sense to do a deep dive 42 | 43 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 44 | - nothing new to report 45 | 46 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 47 | - Had meeting, made progress 48 | - https://github.com/nodejs/diagnostics/issues/248 49 | - Summary here: https://github.com/nodejs/diagnostics/issues/248#issuecomment-434476684 50 | 51 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 52 | - @mike-kaufman - updated issue 53 | - @NatalieWolfe has a JS implementation: https://github.com/NatalieWolfe/node-context-continuation/ 54 | - try to party here, open PRs! 55 | - @NatalieWolfe to point us at some test cases New Relic uses to validate monkey-patching for promises 56 | 57 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 58 | - @ofrobots - crashy/flakiness is mostly fixed. 59 | - scenarios he's hearing about are more advanced 60 | 61 | -------------------------------------------------------------------------------- /wg-meetings/2015-02-19.md: -------------------------------------------------------------------------------- 1 | # February 19th 2015 2 | 3 | [Event](https://plus.google.com/b/101986715696875566237/events/c791vkvvdldnvf14t08vcfa8hv4) 4 | 5 | [YouTube](https://www.youtube.com/watch?v=wvBVjg8jkv0) 6 | 7 | # Agenda 8 | 9 | * What is trace\_event? 10 | * What is/are the primary use case(s)? (e.g. counters, perf tracing, async 11 | call continuation) 12 | * Status of: 13 | [https://codereview.chromium.org/827993003](https://codereview.chromium.org/827993003) 14 | * What tools are using it? 15 | * How would it be implemented? 16 | * What features would io.js leverage? 17 | * How would it affect existing subsystems? 18 | * (currently test/ doesn't have an examples of how to use 19 | include/v8-tracing.h) 20 | * How does this feed into current API (i.e. AsyncWrap)? 21 | * What is left to do? 22 | * Why is the debugging port so slow in io.js and node.js 0.12? 23 | * [https://github.com/iojs/io.js/issues/877](https://github.com/iojs/io.js/issues/877) 24 | * Can/should tracing be exposed by iojs? via c++? via js? 25 | * Anything in deps/v8/include/ can be accessed by native modules. So the 26 | question should be: What parts do we want to integrate into core? 27 | * Can we share async tracing facilities between iojs and chrome? (eg: Promises) 28 | * see: window.fetch() 29 | 30 | # Notes: 31 | 32 | What is trace\_event? 33 | 34 | * Created for client side analysis in Chrome 35 | * Chrome is multi-threaded and needed additional information 36 | * 1) Data format (JSON) 37 | * 2) (C++) Is a way to place probes throughout the codebase 38 | * trace-event.h bottoms out in 3-4 C++ calls w/ specific purposes 39 | * The macros turn into those few calls 40 | * To use v8-tracing.h, copy in tracing-event.h to have macro's use the internal 41 | API 42 | * 2 parts 43 | * Embedding API 44 | * Control API (stop, start, get data, get categories) 45 | * Chrome dev tools protocol has JS APIs for control 46 | * Does not call at the moment a specific probe is called. Is less performance 47 | intrusive. 48 | 49 | Status of V8 patch? 50 | 51 | * Month to land? 52 | * fadi: yes 53 | 54 | 55 | 56 | 57 | 58 | # Attendance 59 | 60 | * Mikeal Rogers 61 | * Trevor Norris (wrote async_wrap) 62 | * Stephen Belanger 63 | * Ali Ijaz Sheikh (ofrobots@google. Debug/Trace for node at Google) 64 | * Ryan 65 | * Sam 66 | * Thorsten Lorenz 67 | * Nat Duca (chrome, tracing) 68 | * Fadi Meawad (chrome, tracing) 69 | * Paul Irish (chrome) 70 | 71 | 78 | -------------------------------------------------------------------------------- /wg-meetings/2022-03-22.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-03-22 2 | 3 | ## Links 4 | 5 | * **Recording**: http://www.youtube.com/watch?v=fCNRhe01puo 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/533 7 | 8 | ## Present 9 | 10 | * Stephen Belanger (@qard) 11 | * Michael Dawson (@mhdawson) 12 | * Rafel Gonzaga (@rafaelgss) 13 | * Chenzhong Wu (@legendecas) 14 | * Tony Gorez (@tony-go) 15 | * Gireesh Punathil (@gireeshpunathil) 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | 23 | ### nodejs/node 24 | 25 | * chore(doc): add `trace_gc` to diagnostic tooling support document [#42346](https://github.com/nodejs/node/pull/42346) 26 | gireesh: premises for the support tool tiering: stability, testing, doc 27 | michael: documentation is not necessarily a key premise. Also, doc might not be in node.js core doc 28 | tony: usability is well understood 29 | This will be the WG's view for deciding tool's inclusion in the list: 30 | - usability (capability) test strength, available doc 31 | after-the-fact: the PR is approved and landed. 32 | 33 | 34 | ### nodejs/diagnostics 35 | 36 | * re-assess the tooling list and their maturity status [#532](https://github.com/nodejs/diagnostics/issues/532) 37 | 38 | gireesh: re-assessing helps the tool to position correctly in the list 39 | rafael: some tools not yet classified, worth revisiting this 40 | how do we do it: create issues - one per tool, tag for agenda inclusion, pick up in each meeting, make assessments, document inferences and actions 41 | rafael driving actions 42 | 43 | * Move Slack channel to OpenJS Foundation server [#527](https://github.com/nodejs/diagnostics/issues/527) 44 | This is complete, the channel is moved to openjs server 45 | 46 | * meeting time, again [#507](https://github.com/nodejs/diagnostics/issues/507) 47 | single meeting not viable due to lack of a common time for all the members 48 | two slots: 3.30 PM and 10.30 PM are the best ones that covers everyone and has maximum votes 49 | one meeting in each slot in a month. collaborate through issues, if there are items that needs to be discussed and decided with the wider group 50 | gireesh will drive the slot 1 meeting (3.30 PM) 51 | stephen will drive the slot 2 meeting (10.30 PM) 52 | 53 | 54 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 55 | stephen: nothing new this week. not active off late, remove from regular agenda 56 | action: remove from agenda, and revisit when appropriate 57 | 58 | ## Q&A, Other 59 | 60 | ## Upcoming Meetings 61 | 62 | * **Node.js Project Calendar**: 63 | 64 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 65 | -------------------------------------------------------------------------------- /wg-meetings/2020-01-06.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-01-06 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=rPiD0OchmpA 6 | * **Minutes Google Doc**: https://docs.google.com/document/d/1qCrsUxc5sqXczKxVE1tWmf_LR2Ci0llNQ-HzDTTMnAU/edit 7 | 8 | ## Present 9 | 10 | * Stephen Belanger (@qard) 11 | * Michael Dawson (@mhdawson) 12 | * Rafael Gonzaga (@rafaelgss) 13 | * Mary Marchini (@mmarchini) 14 | 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | * No announcements this week. 23 | 24 | ### nodejs/node 25 | 26 | * async_hooks: use new v8::Context PromiseHook API [#36394](https://github.com/nodejs/node/pull/36394) 27 | * good progress, just a few last changes that Stephen will tackle soon and looks like it should land. 28 | 29 | ### nodejs/diagnostics 30 | 31 | * Discussion: Move node-inspect into core? [#459](https://github.com/nodejs/diagnostics/issues/459) 32 | * Mary: summary of the issues (confusion, code getting out of sync, inconsistent publish to npm, lack of maintainers, etc.) 33 | * Mary: should we move to core? Consensus seems to be so 34 | * Mary: will open an issue to make sure there are no objections from Diagnostics team 35 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 36 | * Stephen: trying to identify path forward with async hooks 37 | * In it’s current form it shouldn’t be considered stable (exposes internals) 38 | * Should we be layering stuff on top of async_hooks? 39 | * Or try to eliminate bits that are unsafe? 40 | * etc. etc. 41 | * To reach a decision we need to identify async_hooks use cases 42 | * Michael: should we do a survey? 43 | * Mary: maybe a freeform survey, one/two multiple choice questions + a text field where folks can describe their use cases 44 | * Stephen: already gathered some use cases and found particular needs 45 | * Mary: will create a PR with draft survey so we can iterate on it 46 | * Mary: should we create a new issue? 47 | * (no strong opinions either way) 48 | 49 | * https://github.com/nodejs/node/issues/11893 50 | * Rafael: should we implement the blackbox on Chrome DevTools or Node.js internal? 51 | * Mary: not sure if there will be pushback from DevTools to that change, other than that implementing on DevTools seems like a good idea 52 | * Michael: DevTools is a good idea if the blackbox rules won’t change 53 | * Mary: they shouldn’t :fingers-crossed: 54 | * Rafael: maybe we can implement on node-inspect first, and then propose to DevTools? 55 | * Mary and Michael: sgtm 56 | 57 | ## Q&A, Other 58 | 59 | ## Upcoming Meetings 60 | 61 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 62 | 63 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 64 | -------------------------------------------------------------------------------- /wg-meetings/2020-09-16.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-09-16 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=-eN6X039zKY 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/431 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1GBQ4sWQ9PS4EAV0vsAR0ov801ySeoDFbJXo8wXtsV10/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger (@qard) 13 | * Rafael Gonzaga (@rafaelgss) 14 | * Mary Marchini (@mmarchini) 15 | * Gireesh Punathil (@gireeshpunathil) 16 | * Pooja D P(@PoojaDurgad) 17 | 18 | 19 | ## Agenda 20 | 21 | ## Announcements 22 | 23 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/node 26 | 27 | * lib: create diagnostics_channel module [#34895](https://github.com/nodejs/node/pull/34895) 28 | * (missed the start) 29 | * added some events to http module 30 | * get the complete lifecycle of http request 31 | * Has a test showing a simple APM with zero patching 32 | * Performance compared to monkey patching is better but not significantly 33 | * Goal in the future is to improve performance further 34 | * Simplistic spam API 35 | * Object used to express sequence of events 36 | * Wraps another object and adds an object ID to it 37 | * Doesn’t add timestamps or anything like that, it’s up to consumer to correlate events and time them 38 | * Need reviews 39 | * No outstanding objections 40 | * Note about the name 41 | * Is “shouldPublish” the right name? 42 | * etc. small nits wrt naming 43 | * Should be merged as experimental 44 | 45 | 46 | ### nodejs/diagnostics 47 | 48 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 49 | * One small thing: issue with an API that doesn’t correctly reuse the context 50 | * https://github.com/nodejs/node/issues/35188 51 | * Uncertainty on what should be the correct behavior 52 | * Need more eyes/reviews/comments 53 | 54 | * Add ioredis to problematic-modules.md #430 55 | * It was created because there was a few PRs opened to these modules, and because async_hooks are experimental those PRs were rejected, so the WG wanted a way to keep track of things that need to be fixed. 56 | * The wording is not great 57 | * The way forward is for us to get at least AsyncResource and AsyncLocalStorage, and then we can start doing some about these modules 58 | * Move the document to an issue 59 | * The reason is not super well known 60 | * AI: Mary will create an issue 61 | * How to track if the module is fixed? 62 | * With an issue, PR authors can reference 63 | * Use separate issues for each module, add code examples 64 | 65 | ## Q&A, Other 66 | 67 | ## Upcoming Meetings 68 | 69 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 70 | 71 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 72 | -------------------------------------------------------------------------------- /wg-meetings/2020-10-14.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-10-14 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=6UWzpixdzOM 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/435 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1099BRBGdljoZHvPs32JTTc-YudJNckYTMDHkN2Y-FIo/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Stephen Belanger (@qard) 13 | * Rafael Gonzaga (@rafaelgss) 14 | * Gireesh Punathil (@gireeshpunathil) 15 | * Pooja D P (@PoojaDurgad) 16 | * Michael Dawson (@mhdawson) 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | * Qard: currently working on JSFunction version of PromiseHook API, aiming to improve performance 24 | * ref: https://chromium-review.googlesource.com/c/v8/v8/+/2466783 25 | 26 | ### nodejs/node 27 | 28 | * lib: add span API to diagnostics_channel [#35534](https://github.com/nodejs/node/pull/35534) 29 | * separated out from the channel to iterate and converge. Needs more reviews, feedback 30 | and iterations. 31 | * Do we need a separate API for span, as opposed to a field in the (diagnostic) channel? 32 | 33 | * lib: make diagnostics_channel async iterable [#35532](https://github.com/nodejs/node/pull/35532) 34 | * Comment if you believe this is needed, otherwise may be dropped for now. 35 | 36 | * Proposal: mark AsyncResource and AsyncLocalStorage as stable [#35286](https://github.com/nodejs/node/issues/35286) 37 | * AsyncResource seems like consensus that it can go stable 38 | * AsyncLocalStorage needs more time to bake, in particular discussion around 39 | The enterWith. 40 | * Need to define experimental ‘exit’ criteria AsyncLocalStorage. 41 | 42 | * lib: create diagnostics_channel module [#34895](https://github.com/nodejs/node/pull/34895) 43 | * 44 | 45 | * Node.js' internal scripts should be hidden in the inspector. [#11893](https://github.com/nodejs/node/issues/11893) 46 | * delay for the next instance 47 | 48 | ### nodejs/diagnostics 49 | 50 | * Add ioredis to problematic-modules.md [#430](https://github.com/nodejs/diagnostics/pull/430) 51 | * Team review in a deep dive session 52 | * Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 53 | * rafaelgss will review output from the deep dive, and the original profiling roadmap and then 54 | open new issue to capture next steps. 55 | 56 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 57 | * Quard has been open for a long time, not sure if we need on the agenda. 58 | * Would be better to have issue that better reflects the current thinking 59 | 60 | ## Q&A, Other 61 | 62 | ## Upcoming Meetings 63 | 64 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 65 | 66 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 67 | -------------------------------------------------------------------------------- /wg-meetings/2022-04-05.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-04-05 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=jqMXH85fDRk 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/552 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1Z9embxHZtLbDrNX3WJeJUrA0D-A_n7L4AxrqjdQa6as/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | 13 | * Gireesh Punathi (@gireeshpunathil) 14 | * Rafael Gonzaga (@rafaelgss) 15 | * Chengzhong Wu (@legendecas) 16 | * Tony Gorez (@tony-go) 17 | 18 | 19 | ## Agenda 20 | 21 | ## Announcements 22 | WG meeting scheduled in two slots: 3.30 PM UTC and 10.30 PM UTC, with bi-weekly cadence 23 | 24 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 25 | 26 | ### nodejs/node 27 | 28 | * Contextual and GC friendly perf_hooks user timing [#42503](https://github.com/nodejs/node/issues/42503) 29 | 30 | * legendecas: In performance APIs, the user-timing entries are identified by marks and measures, and are prone to name collision. https://github.com/w3c/user-timing/issues/86 is addressing this issue to introduce namespaces for user-timing API. This is for the working group's awareness. 31 | 32 | ### nodejs/diagnostics 33 | 34 | * Re-evaluate `mdb_V8` tool in the tier-list [#549](https://github.com/nodejs/diagnostics/issues/549) 35 | * rafael: we don’t have too much information regarding maintainers and usage in the field. Remove from the tool list (action: Tony) 36 | * Re-evaluate node-heapdump in the tools tier-list [#548](https://github.com/nodejs/diagnostics/issues/548) 37 | * looks like this is the same as ‘heapdump’ module. 38 | * gireesh: we have alternative in core, “v8.getHeapSnapshot()” 39 | * remove from the list (action: Tony) 40 | * Re-evaluate `llnode`in the tools tier-list [#547](https://github.com/nodejs/diagnostics/issues/547) 41 | * provides unique capability in dump debugging. Revalidate tier status with Mary 42 | * Re-evaluate Chrome Dev Tools (CDT) tool in the tier-list [#546](https://github.com/nodejs/diagnostics/issues/546) 43 | * Pretty vague on its placement in the tier list, defer to the next meeting 44 | * Re-evaluate Chakracore - time-travel tool in the tier-list [#545](https://github.com/nodejs/diagnostics/issues/545) 45 | * No evidence of usage in the field, remove from the list (action: Tony) 46 | * Re-evaluate `0x` tool tier-list [#538](https://github.com/nodejs/diagnostics/issues/538) 47 | * follow the checklist and move up in the tier list as applicable (action: Rafael) 48 | * Re-evaluate `node-clinic` tool tier-list [#537](https://github.com/nodejs/diagnostics/issues/537) 49 | * follow the checklist and move up in the tier list as applicable (action: Rafael) 50 | 51 | ## Q&A, Other 52 | 53 | ## Upcoming Meetings 54 | 55 | * **Node.js Project Calendar**: 56 | 57 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 58 | -------------------------------------------------------------------------------- /wg-meetings/2018-04-04.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-03-21 Minutes 2 | 3 | ## Attendees 4 | * Stephen Belanger @qard 5 | * Kelvin Jin (@kjin) 6 | * Ali Sheikh (@ofrobots) 7 | * @mike-kaufman 8 | * @mrkmarron 9 | * Matteo Collina (@mcollina) 10 | 11 | ## Links 12 | - **This Meeting**: 13 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-04-04.md 14 | - Notes: https://docs.google.com/document/d/1gRRyLfakH69lnpZMMcaBsB5c8WOO5LG7utNm7mrLEoo/edit 15 | - You Tube: http://youtu.be/Yh4pdMmM330 16 | - **Previous Meeting**: 17 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-03-21.md 18 | - Notes: https://docs.google.com/document/d/1SsT2lSkA_2BwLFtaNBJ5fzCC9cfms6KXXTEQYmSPO1w/edit 19 | - You Tube: http://youtu.be/FI8Bk3L8N14 20 | 21 | ## Agenda 22 | 23 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/diagnostics 26 | 27 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 28 | - still open 29 | - please add topics 30 | 31 | - Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 32 | - update posted [here](https://github.com/nodejs/diagnostics/issues/178#issuecomment-378691558) 33 | 34 | - Diagnostics Channel - Next steps [#180](https://github.com/nodejs/diagnostics/issues/180) 35 | 36 | 37 | - Eliminate Monkey Patching for Diagnostic Instrumentation [#134] 38 | (https://github.com/nodejs/diagnostics/issues/134) 39 | - closed this as next steps are captured in #180 40 | 41 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 42 | - progress on JS API in PR: https://github.com/nodejs/node/pull/19803 43 | - read PR for discussion of details 44 | 45 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 46 | - no update 47 | - last action was a write-up on how to address promise hooks perf 48 | 49 | 50 | - Async-context formalization and diagnostics support [#107] 51 | - some progress on automatic-monkey-patching to generate model events [here](https://github.com/mike-kaufman/async-context-definition/blob/mkaufman-add-monkey-patch-tracking) 52 | - still some gaps 53 | - don't hold back 54 | - "continuation" API 55 | - https://github.com/mike-kaufman/async-context-definition/blob/mkaufman-add-monkey-patch-tracking/async-track/src/continuation.ts 56 | - this shows what API to track context would look like. 57 | - fits event model we've been describing 58 | - can implement in native code 59 | - showed JSAV UI for this 60 | - feedback is it isn't usable at scale 61 | - intent was to illustrate concepts of the async context model 62 | 63 | - Visualizing Async Context [#179](https://github.com/nodejs/diagnostics/issues/179) 64 | -------------------------------------------------------------------------------- /wg-meetings/2022-01-25.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-01-25 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=qfJP3C3sGwI 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/523 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1vwNhdIsHfBj4AtoSSzBjsv89Hxgqbv7flTT2jrDMHmE/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga: @rafaelgss 13 | * Bradley Farias: @bmeck 14 | * Stephen Belanger: @qard 15 | * Gireesh Punathil: @gireeshpunathil 16 | * Tony Gorez: @tony-go 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Add using clinic/heap-profiler step [#521](https://github.com/nodejs/diagnostics/issues/521) 27 | - rafael: the issue is opened to discuss possibility of recommending clinic/heap-profiler in our docs 28 | - gireesh: we have incorporated many third party tools in the past, so should not be an issue 29 | - bradley: license agreements in 3rd party tools is what makes it problematic. 30 | - third-party tool can be recommended only if it is open-source licensed (MIT). 31 | - all: agree. 32 | * Document async_hooks types purposes [#511](https://github.com/nodejs/diagnostics/issues/511) 33 | - rafael: some async_hook resource types are underdocumented / undocumented 34 | - bradley: properties are not supposed to be stable, and they can change types based on future changes. it is ok to document those, but needs some tests to make sure they are always in sync with the code changes. 35 | - stephen: personally prefer to be explicit in the doc about what the type of a resource is and what it can hold, in reality. 36 | - tony: is there a tool that synchronizes the code and the doc? 37 | - stephen: it is not practical; there could be more subjective things to add in the doc such as API contract versus an arbitrary type, so prefer manual updates. 38 | - rafael: going to update the issue, follow the suggestions, and remove from the agenda. 39 | 40 | * meeting time, again [#507](https://github.com/nodejs/diagnostics/issues/507) 41 | - gireesh: bradley, pls update your preferences in doodle, we will visit it in the next meeting once all preferences are in place. 42 | 43 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 44 | - rafel: just an information on the tweet that we just realized. Tony is here because of that. the label can be removed and progress can be made on the documentation work. 45 | 46 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 47 | - stephen: there wasn't any movement on this, take off the agenda. 48 | 49 | 50 | ## Q&A, Other 51 | 52 | ## Upcoming Meetings 53 | 54 | * **Node.js Foundation Calendar**: 55 | 56 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 57 | -------------------------------------------------------------------------------- /wg-meetings/2019-01-09.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2019-01-09 Minutes 2 | 3 | ## Attendees 4 | - Michael Dawson (@mhdawson) 5 | - Thomas Watson (@watson) 6 | - Stephen Belanger (@qard) 7 | - Peter Marton (@hekike) 8 | - Matteo Collina (@mcollina) 9 | - Kelvin Jin (@kjin) 10 | - GIreesh Punathil (@gireeshpunathil) 11 | - @mike-kaufman 12 | 13 | 14 | ## Links 15 | - **This Meeting**: 16 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2019-01-09.md 17 | - Notes: https://docs.google.com/document/d/15uCYMMS-SBoTuHRs1PBGs7hlQUx_CHklCGMAdGnBTqE/edit 18 | - You Tube: No Video Today 19 | - **Previous Meeting**: 20 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2019-11-28.md 21 | - Notes: https://docs.google.com/document/d/17fQJnTwqj5keDG7kdARWOojmzp566m0AgVqNfdwcaK8/edit 22 | - You Tube: http://youtu.be/nKPgAJdlbWo 23 | 24 | ## Agenda 25 | 26 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 27 | 28 | ### nodejs/node 29 | - Support pausing the debugger on script load [#24687](https://github.com/nodejs/node/issues/24687) 30 | - PR open against V8 31 | - need to see the status on that. 32 | 33 | ### nodejs/diagnostics 34 | 35 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 36 | - Gireesh has a doodle created 37 | - People should chime in on what times they can do 38 | 39 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 40 | - no update 41 | 42 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 43 | - some folks have opened bugs on this. 44 | - need to dig through and see what next steps are 45 | 46 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 47 | - https://github.com/nodejs/diagnostics/issues/248 48 | - @drieger looking into how to get http parser to cleanly re-use state 49 | 50 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 51 | - Had a call with v8 team 52 | - Set of next steps identified on how to move forward 53 | 54 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 55 | - @kjin - looking into using perfetto in node, to align w/ what v8 is using 56 | - trace events will beome one of hte perfetto channel 57 | 58 | - Network Debug support 59 | - @mcollina - this comes up repeatedly 60 | - open questions on whether we can cleanly re-use CrDP's network domain for node, if we require protocol changes 61 | - @watson - would like to see debugger visibility into event loop 62 | - this would be a different domain on CrDP 63 | 64 | - Diagnostics WG Summit Agenda - 2019-03-07, 2019-03-08 - [#267](https://github.com/nodejs/diagnostics/issues/267) 65 | - need to nail down agenda. 66 | -------------------------------------------------------------------------------- /wg-meetings/2018-08-08.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-06-13 Minutes 2 | 3 | ## Attendees 4 | - @mhdawson 5 | - @hashseed 6 | - @mrkmarron 7 | - @mike-kaufman 8 | - @qard 9 | - @watson 10 | - others??? 11 | 12 | ## Links 13 | - **This Meeting**: 14 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-08-08.md 15 | - Notes: https://docs.google.com/document/d/15ehqimizTFdJxzd9B8snP3Qf_b9Y7h3SRGRUXScn8rc/edit 16 | - You Tube:http://youtu.be/Ef4sJNR0mQk 17 | - **Previous Meeting**: 18 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-07-11.md 19 | - You Tube: https://www.youtube.com/watch?v=OztA8R-biz4 20 | 21 | ## Agenda 22 | 23 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 24 | 25 | ### nodejs/diagnostics 26 | 27 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 28 | - @mike-kaufman to schedule deep-dive on async-context formalizations. 29 | 30 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 31 | - @mhdawson has PR open 32 | - bunch of feedback 33 | - some signed off, waiting for more to sign off 34 | - need to keep pushing until we get there 35 | 36 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 37 | - Open PR [21313](github.com/nodejs/node/pull/21313), eliminates need for destroy callback & significantly improves perf 38 | - some feedback in PR that this should not go in 39 | - May need to set up a meeting for this to start getting more traction 40 | - Yang discussed another possibility for perf improvement here, which is to use JS callbacks instead of native callbacks for the promise hooks 41 | - eliminates JS->native hop, which is expensive 42 | - requires moving v8 promise-hook API from isolate to context (since JS functions are bound to context) 43 | - has benefits in fixing electron issue 44 | - discussedin write-up yang did a few months back 45 | - summer now, so no progress is being made 46 | 47 | 48 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 49 | - PR https://github.com/nodejs/diagnostics/pull/197 open, would love feedback 50 | - will schedule a deep-dive 51 | 52 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 53 | - node is using v8's default trace controller 54 | - this is a mock implementation only used for testing 55 | - has known race conditions 56 | - chrome isn't using this controller 57 | - android team is building perfetto, which is a richer trace controller 58 | - should be compatible w/ v8 trace_events 59 | - thinking about switching to use this 60 | - won't happen until node 11 61 | - another short-term approach is we may be able to grab whatever controller chrome is using 62 | -------------------------------------------------------------------------------- /wg-meetings/2019-02-06.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2019-02-06 Minutes 2 | 3 | ## Attendees 4 | - Michael Dawson (@mhdawson) 5 | - Stephen Belanger (@qard) 6 | - Peter Marton (@hekike) 7 | - Matheus 8 | - @ofrobots 9 | - GIreesh Punathil (@gireeshpunathil) 10 | - @mike-kaufman 11 | - @sethbrennith 12 | - @BridgeAR 13 | 14 | 15 | ## Links 16 | - **This Meeting**: 17 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2019-02-06.md 18 | - Notes: https://docs.google.com/document/d/13zvCousvGvrPoSDJgAe0sfX9v-R28TCeZW8u8b_11H0/edit 19 | - You Tube: http://youtu.be/iDJVbEKNlxc 20 | - **Previous Meeting**: 21 | - Minutes: n/a 22 | - Notes: https://docs.google.com/document/d/1gWtJYKbtBfiRRTvm7LDki9kOcYo5wsTSaHI667aa1wI/edit 23 | - You Tube: http://youtu.be/rTr6UF4YII0 24 | 25 | ## Agenda 26 | 27 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 28 | 29 | ### nodejs/node 30 | - Support pausing the debugger on script load [#24687](https://github.com/nodejs/node/issues/24687) 31 | - PR open against V8 32 | - need to see the status on that. 33 | 34 | ### nodejs/diagnostics 35 | 36 | - Diagnostics WG Summit Agenda -2019-03-07, 2019-03-08 - [#276](https://github.com/nodejs/diagnostics/issues/267) 37 | - Good discussion on filling out detail in agenda 38 | - Some owners assigned to topics 39 | - See doc in issue 40 | 41 | - Post-mortem debugging support inside V8/Node.js [#227](https://github.com/nodejs/diagnostics/issues/227) 42 | - discussed some during agenda 43 | - 3 different solutions proposed 44 | - call tomorrow w/ interested parties to discuss further 45 | 46 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 47 | - Gireesh had a meeting 48 | - Minutes form meeting are in pull [#271](https://github.com/nodejs/diagnostics/pull/271) 49 | - should spend time in breakout to dive into more details 50 | 51 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 52 | - no update 53 | 54 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 55 | - no update 56 | 57 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 58 | - no update 59 | 60 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 61 | - call with v8 team happened in December 62 | - Set of next steps identified on how to move forward 63 | - need to close on these next steps, plan to have more detail by Diag summit. 64 | 65 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 66 | - @kjin - looking into using perfetto in node, to align w/ what v8 is using 67 | 68 | - Network Debug support 69 | - we need to find an owner 70 | - if we can't find someone to drive on this, we'll remove from agenda 71 | 72 | -------------------------------------------------------------------------------- /.github/workflows/scorecards.yml: -------------------------------------------------------------------------------- 1 | # This workflow uses actions that are not certified by GitHub. They are provided 2 | # by a third-party and are governed by separate terms of service, privacy 3 | # policy, and support documentation. 4 | 5 | name: Scorecard supply-chain security 6 | on: 7 | # For Branch-Protection check. Only the default branch is supported. See 8 | # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection 9 | branch_protection_rule: 10 | # To guarantee Maintained check is occasionally updated. See 11 | # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained 12 | schedule: 13 | - cron: '20 7 * * 2' 14 | push: 15 | branches: ["main"] 16 | 17 | # Declare default permissions as read only. 18 | permissions: read-all 19 | 20 | jobs: 21 | analysis: 22 | name: Scorecard analysis 23 | runs-on: ubuntu-latest 24 | permissions: 25 | # Needed to upload the results to code-scanning dashboard. 26 | security-events: write 27 | # Needed to publish results and get a badge (see publish_results below). 28 | id-token: write 29 | contents: read 30 | actions: read 31 | 32 | steps: 33 | - name: "Checkout code" 34 | uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 35 | with: 36 | persist-credentials: false 37 | 38 | - name: "Run analysis" 39 | uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # v2.0.6 40 | with: 41 | results_file: results.sarif 42 | results_format: sarif 43 | # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: 44 | # - you want to enable the Branch-Protection check on a *public* repository, or 45 | # - you are installing Scorecards on a *private* repository 46 | # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. 47 | # repo_token: ${{ secrets.SCORECARD_TOKEN }} 48 | 49 | # Public repositories: 50 | # - Publish results to OpenSSF REST API for easy access by consumers 51 | # - Allows the repository to include the Scorecard badge. 52 | # - See https://github.com/ossf/scorecard-action#publishing-results. 53 | # For private repositories: 54 | # - `publish_results` will always be set to `false`, regardless 55 | # of the value entered here. 56 | publish_results: true 57 | 58 | # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF 59 | # format to the repository Actions tab. 60 | - name: "Upload artifact" 61 | uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 62 | with: 63 | name: SARIF file 64 | path: results.sarif 65 | retention-days: 5 66 | 67 | # Upload the results to GitHub's code scanning dashboard. 68 | - name: "Upload to code-scanning" 69 | uses: github/codeql-action/upload-sarif@fdcae64e1484d349b3366718cdfef3d404390e85 # v2.22.1 70 | with: 71 | sarif_file: results.sarif 72 | -------------------------------------------------------------------------------- /wg-meetings/2018-06-27.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-06-13 Minutes 2 | 3 | ## Attendees 4 | - @mhdawson 5 | - @kjin 6 | - @ofrobots 7 | - @mike-kaufman 8 | - @mrkmarron 9 | 10 | ## Links 11 | - **This Meeting**: 12 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-06-27.md 13 | - Notes: https://docs.google.com/document/d/1ZCeraqdV4ywxe3ajNuXD0CnGOfLBleSOVqjsKNPyK50/edit 14 | - You Tube: http://youtu.be/N-cTM71q24o 15 | - **Previous Meeting**: 16 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-06-13.md 17 | - Notes: https://docs.google.com/document/d/1_YaY8URKkDsQOwA4Wd3MGAMuQfw7kUMUDtsjptWKe9w/edit 18 | - You Tube: http://youtu.be/WUzmqf0Uvu4 19 | 20 | ## Agenda 21 | 22 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | - Next Diagnostic Summit #201 27 | - we'll let this evolve organically, whatever works for people 28 | - removed from Diag WG agenda 29 | 30 | - Diagnostics Channel - Next steps [#180](https://github.com/nodejs/diagnostics/issues/180) 31 | - @Quard not here 32 | - now an npm module to support open census on node.js 33 | - https://www.npmjs.com/package/@opencensus/nodejs 34 | - this is not using something like Diagnostics Channel, but they'd like it to be 35 | 36 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 37 | - no updates. From last week: 38 | - Need to schedule one on async context terminology and tiers of support 39 | - **Actions** 40 | - @mhdawson has action for Tiers 41 | - @mike-kaufman has action for async context deep-dive 42 | 43 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 44 | - @mhdawson has next steps here. 45 | 46 | - Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 47 | - per @mmarchini, this is completed. 48 | - removed from agenda 49 | 50 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 51 | - Not much progress since collab summit 52 | - two new related PRs: 53 | - one to support GetCurrentResource API 54 | - another to suport GetActiveHandles API 55 | 56 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 57 | - Updated PR with examples for generators & async/await. 58 | - Also added some text on how concepts will plug into ECMAScript spec, which is looking like a nice set of targeted mods to some key definitions and abstract operations. 59 | - Still need to update doc with: 60 | - how do we simplify traversals 61 | - Mike will be at node summit to answer questions 62 | 63 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 64 | - work happening here to add an intrinsic to v8 to make trave_events APIs available from JS. 65 | - Some crashes occurring on shutdown 66 | - PR 21335 fixes some of these, but still intermittent errors are occurring on windows in CI runs 67 | - @ofrobots hasn't been able to repro 68 | -------------------------------------------------------------------------------- /wg-meetings/2020-11-25.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-11-25 2 | 3 | ## Links 4 | 5 | * **Recording**: 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/445 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Rafael Gonzaga (@rafaelgss) 12 | * Mary Marchini 13 | * Gireesh Punathil (@gireeshpunathil) 14 | 15 | ## Announcements 16 | 17 | ## Agenda 18 | 19 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 20 | 21 | ### nodejs/node 22 | 23 | * lib: add span API to diagnostics_channel [#35534](https://github.com/nodejs/node/pull/35534) 24 | * lib: make diagnostics_channel async iterable [#35532](https://github.com/nodejs/node/pull/35532) 25 | * Both PRs need review 26 | * Mary will try to get to it today or tomorrow 27 | * Gireesh is good with the PR that landed, but from span API PR is a bit difficult to understand how the span will going to be used within the diagnostics channel. 28 | * Span API was removed from original proposal to reduce complexity 29 | * Is this absolutely essential? Does this need to be an add on? 30 | * Mary: Good to ask both question (how to use API and is it even necessary) 31 | * Michael has looked at them but not sure on the complexity/benefit on these 2. Agree with 32 | Gireesh that the original Diagnostic channel PR was good and great that it landed. 33 | * Mary: maybe we should set a target for minimum number of producers (frameworks) before adding new features 34 | 35 | * Proposal: mark AsyncResource and AsyncLocalStorage as stable [#35286](https://github.com/nodejs/node/issues/35286) 36 | * Next steps are to define `exit` criteria for AsyncLocalStorage. Seems like there was already 37 | consensus that AsyncResource can exit, but some questions if it makes sense to do one with 38 | the other. 39 | 40 | * Node.js' internal scripts should be hidden in the inspector. [#11893](https://github.com/nodejs/node/issues/11893) 41 | * call for action: who wants to work on this? 42 | * Rafael would like to help with this issue 43 | 44 | ### nodejs/diagnostics 45 | 46 | * Improve the V8 Profiler performance [#444](https://github.com/nodejs/diagnostics/issues/444) 47 | * Created because the CPU Profiler Roadmap was done. 48 | * The remaining task is to improve V8 CPU Profiler performance for production environments on startup. 49 | * Should we add a benchmark on [node/benchmark](https://github.com/nodejs/node/tree/master/benchmark)? Sould like a good idea 50 | 51 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 52 | * No update 53 | * Suggestion to move to deep dive 54 | * Add ioredis to problematic-modules.md [#430](https://github.com/nodejs/diagnostics/pull/430) 55 | * Mary still needs to create the issues here 56 | 57 | * Question about agenda vs deep dive 58 | * We’ll try to use more meetings to deep dive moving forward, when there are no urgent items on the agenda 59 | * Meeting time 60 | * Should be discussed in the issue to avoid timezone bias 61 | 62 | 63 | 64 | ## Q&A, Other 65 | 66 | ## Upcoming Meetings 67 | 68 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 69 | 70 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 71 | -------------------------------------------------------------------------------- /wg-meetings/2020-02-12.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2020-02-12 2 | 3 | ## Links 4 | 5 | * **Recording**: https://youtu.be/oyl6-HYBw9w 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/354 7 | 8 | ## Present 9 | 10 | * Diagnostics team: @nodejs/diagnostics 11 | * David Anderson (@daviande) 12 | * Matheus Marchini (@mmarchini) 13 | * Michael Dawson (@mhdawson) 14 | * Peter Marton (@hekike) 15 | * Ruben Bridgewater (@BridgeAR) 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | *Extracted from **diag-agenda** labelled issues and pull requests from the 22 | **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Future of llnode [#355](https://github.com/nodejs/diagnostics/issues/355) 27 | * Mattheus: proposing to remove review restrictions because other maintainers 28 | are less active and this is blocking to make progress on important things 29 | like Node 12.x release. This one took months and we fell behind the LTS 30 | schedule. Which prevented people from using llnode on Node 12.x. Because of 31 | the nature of llnode it needs rapid iteration to keep it sync with V8 32 | upgrades. 33 | * Michael: we could introduce something like after some time it can land if 34 | nobody looks at it. 35 | * Matheus: that could work 36 | * Michael: what would be the reasonable time for this auto approval window? 37 | * Mattheus: how about 3-4 days? 38 | * Michael: is it under node/* 39 | * Matheus: yes 40 | * Peter: how to announce this change? 41 | * Matheus: I’ll open a PR and ping diagnostics and llnode teams 42 | * Consensus was made on “auto approval after 3 days” 43 | * Peter: do you want to discuss more on the future aspect? 44 | * Matheus: this was the important one, more contributors would be good and I’m 45 | thinking about a refactor that would make entry bar for new contributors 46 | easier. 47 | 48 | * reportVersion semantics are not defined 49 | [#349](https://github.com/nodejs/diagnostics/issues/349) 50 | * Peter asked why have a separate version number from Node.js version, and if 51 | there were precedents of doing that 52 | * Number is separate because a major Node.js version might not change the 53 | report format. It's easier for tools consuming the report to deal with a 54 | sequential number separated from the Node.js version 55 | * N-API also has its own version not tied to Node.js version 56 | * Proposal to drive Diagnostics WG initiatives through user journeys 57 | [#295](https://github.com/nodejs/diagnostics/issues/295) 58 | * We discussed memory leaks user journey and tooling (see docs below) 59 | * Ran out of time, we'll continue this user journey on the next meeting 60 | * Diagnostics "Best Practices" Guide? 61 | [#211](https://github.com/nodejs/diagnostics/issues/211) 62 | * Nothing to discuss 63 | * \[async_hooks\] stable API - tracking issue 64 | [#124](https://github.com/nodejs/diagnostics/issues/124) 65 | * Nothing to discuss 66 | 67 | ## User Journey Deep Dive: Memory Leak 68 | https://docs.google.com/document/d/16PeoMhREmJxSbrpyom9Uypl2lJuMsqAfB96oocDTPwQ/edit# 69 | 70 | ## Q&A, Other 71 | 72 | ## Upcoming Meetings 73 | 74 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 75 | 76 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 77 | -------------------------------------------------------------------------------- /wg-meetings/2022-05-31.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-05-31 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=ZHV2kZ7d75E 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/564 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1gHnRSzZxetRpwzayA-UXIOEpcdRHO4DNLvfUyd9tFV8/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga: @RafaelGSS 13 | * Michael Dawson @mhdawson 14 | * Gireesh Punathil @gireeshpunathil 15 | * Tony Gorez @tony-go 16 | 17 | 18 | ## Agenda 19 | 20 | ## Announcements 21 | 22 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Re-evaluate `--trace-gc` in the tools tier-list [#554](https://github.com/nodejs/diagnostics/issues/554) 27 | * Move Node.js org PR to Diagnostics repo 28 | * Raise a new issue to coordinate migration to Node.js org, Tony 29 | 30 | * Re-evaluate `mdb_V8` tool in the tier-list [#549](https://github.com/nodejs/diagnostics/issues/549) 31 | * Closed, no further action required 32 | 33 | * Re-evaluate `heapdump` in the tools tier-list [#548](https://github.com/nodejs/diagnostics/issues/548) 34 | * Closed, no further action required 35 | 36 | * Re-evaluate `llnode`in the tools tier-list [#547](https://github.com/nodejs/diagnostics/issues/547) 37 | * Nobody maintaining, we'll remove from the support list 38 | * Ping No9, Gireesh 39 | 40 | * Re-evaluate Chrome Dev Tools (CDT) tool in the tier-list [#546](https://github.com/nodejs/diagnostics/issues/546) 41 | * Move to tier 3, Tony 42 | 43 | * Re-evaluate trace_events (API) tool tier-list [#544](https://github.com/nodejs/diagnostics/issues/544) 44 | * Closed. trace_events is experimental, can’t be moved to tier 1 45 | * new issue to re-evaluate to trace_events stability (e.g: https://github.com/nodejs/node/pull/37748) 46 | 47 | * Re-evaluate LTTng tool tier-list [#543](https://github.com/nodejs/diagnostics/issues/543) 48 | * Rafael will collect information from Nearform about this 49 | * Rafael will re-evaluate it 50 | 51 | * Re-evaluate ETW tool tier-list [#542](https://github.com/nodejs/diagnostics/issues/542) 52 | * Raise a PR to remove it from the list, Tony 53 | 54 | * Re-evaluate `Systemtap` tool tier-list [#541](https://github.com/nodejs/diagnostics/issues/541) 55 | * Raise a PR to remove it from the list, Tony 56 | 57 | * Re-evaluate `DTrace` tool tier-list [#540](https://github.com/nodejs/diagnostics/issues/540) 58 | * Raise a PR to remove it from the list, Tony 59 | 60 | * Re-evaluate `Windows xperf` tool tier-list [#539](https://github.com/nodejs/diagnostics/issues/539) 61 | * Re-evaluate `0x` tool tier-list [#538](https://github.com/nodejs/diagnostics/issues/538) 62 | * Re-evaluate `appmetrics` tool tier-list [#536](https://github.com/nodejs/diagnostics/issues/536) 63 | * Re-evaluate eBPF Tracing tool tier-list [#535](https://github.com/nodejs/diagnostics/issues/535) 64 | * re-assess the tooling list and their maturity status [#532](https://github.com/nodejs/diagnostics/issues/532) 65 | 66 | 67 | 68 | ## Q&A, Other 69 | 70 | ## Upcoming Meetings 71 | 72 | * **Node.js Project Calendar**: 73 | 74 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 75 | -------------------------------------------------------------------------------- /wg-meetings/2022-06-28.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2022-06-28 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=SCfQh6nuJlM 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/566 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/1QFbD4ZRZYSsSdPH_S0ByJBalxt_-ViEW9JrEjXCBS-0/edit 8 | 9 | ## Present 10 | 11 | * Diagnostics team: @nodejs/diagnostics 12 | * Rafael Gonzaga: @rafaelgss 13 | * Gireesh Punathil @gireeshpunathil 14 | * Tony Gorez @tony-go 15 | 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | 23 | ### nodejs/diagnostics 24 | 25 | * Re-evaluate `--trace-gc` in the tools tier-list [#554](https://github.com/nodejs/diagnostics/issues/554) 26 | Include Tony work in the current trace-gc diagnostics documentation 27 | Removed from the agenda once it was already re-evaluated 28 | 29 | * Re-evaluate `llnode`in the tools tier-list [#547](https://github.com/nodejs/diagnostics/issues/547) 30 | Removed from the agenda once it was already re-evaluated 31 | 32 | * Re-evaluate Chrome Dev Tools (CDT) tool in the tier-list [#546](https://github.com/nodejs/diagnostics/issues/546) 33 | Removed from the agenda once it was already re-evaluated 34 | 35 | * Re-evaluate LTTng tool tier-list [#543](https://github.com/nodejs/diagnostics/issues/543) 36 | Nobody in this group has enough knowledge in this tool. 37 | A PR will be raised to remove it and if someone wants to keep this support, they will complain/argue about it. 38 | * Re-evaluate ETW tool tier-list [#542](https://github.com/nodejs/diagnostics/issues/542) 39 | Removed from the agenda once it was already re-evaluated 40 | 41 | * Re-evaluate `Systemtap` tool tier-list [#541](https://github.com/nodejs/diagnostics/issues/541) 42 | * Re-evaluate `DTrace` tool tier-list [#540](https://github.com/nodejs/diagnostics/issues/540) 43 | Rafael used it a long time ago. Nevertheless, we don’t have anyone in charge of this support. 44 | A PR will be raised to remove it and if someone wants to keep this support, they will complain/argue about it. 45 | 46 | * Re-evaluate `Windows xperf` tool tier-list [#539](https://github.com/nodejs/diagnostics/issues/539) 47 | A PR will be raised to remove it and if someone wants to keep this support, they will complain/argue about it. 48 | 49 | * Re-evaluate `0x` tool tier-list [#538](https://github.com/nodejs/diagnostics/issues/538) 50 | This tool is widely used, latest node.js version is supported. 51 | We’ve defined to move it to Tier 4 52 | 53 | * Re-evaluate `appmetrics` tool tier-list [#536](https://github.com/nodejs/diagnostics/issues/536) 54 | A PR will be raised to remove it and if someone wants to keep this support, they will complain/argue about it. 55 | 56 | * Re-evaluate eBPF Tracing tool tier-list [#535](https://github.com/nodejs/diagnostics/issues/535) 57 | Let it open for a while. Rafael is interested in this support. He’ll investigate it 58 | 59 | * re-assess the tooling list and their maturity status [#532](https://github.com/nodejs/diagnostics/issues/532) 60 | 61 | 62 | 63 | ## Q&A, Other 64 | 65 | ## Upcoming Meetings 66 | 67 | * **Node.js Project Calendar**: 68 | 69 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 70 | 71 | -------------------------------------------------------------------------------- /wg-meetings/2023-04-04.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2023-04-04 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=MDRi3PjK4aA 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/610 7 | 8 | ## Present 9 | 10 | 11 | * Michael Dawson (@mhdawson) 12 | * Stephen Belanger (@qard) 13 | * Chengzhong Wu (@legendecas) 14 | 15 | ## Agenda 16 | 17 | ## Announcements 18 | 19 | 20 | * Stephen, tracing channel as discussed in previous meetings has landed, should be out in Node.js 20 21 | 22 | *Extracted from **diag-agenda** labeled issues and pull requests from the **nodejs org** prior to the meeting. 23 | 24 | 25 | ### nodejs/diagnostics 26 | 27 | * TC39 proposal AsyncContext [#608](https://github.com/nodejs/diagnostics/issues/608) 28 | * Chengzhong 29 | * has been a while since discussed in this venue 30 | * have been working over the last year to get a AsyncContext proposal added to language in 31 | TC39 - reached stage 2 just recently 32 | * Next step is to find more use was and work through perf and other issues in the browser 33 | * Good time to discuss in diagnostic wg and provide feedback 34 | * We should also discuss migration path 35 | * Michael understand it was based on AsyncLocalStorage, how big will the migration be 36 | * Chengzhong - already some work by James Snell 37 | https://github.com/nodejs/node/issues/46262 due to differences in semantics 38 | * Want people to be aware/review to make sure proposal matches expectations 39 | * Michael should we work to get broader input on proposal 40 | * Step 1 41 | * Get Diagnostics WG feedback 42 | * Maybe later step, then broader feedback. Stage 2 proposal is not far enough along for 43 | broader feedback later. 44 | * Ask is that people from the Diagnostic WG review the proposal and comment either in 45 | https://github.com/nodejs/diagnostics/issues/608 or open an issue in the proposal repository. 46 | * Stephen, James Snell talked about plans to re-write AsyncLocalStorage to not use async 47 | hooks, but instead on V8's context ContinuationPreservedEmbedderData APIs. 48 | * Chengzhong, probably not a good idea to migrate to the new API as V8 suggested 49 | the APIs are still experimental and can be changed significantly. 50 | * Some methods in AsyncLocalStorage are not part of AsyncContext, Stephen is working on\ 51 | seeing if Datadog can work around not having them. 52 | * Stephen think it is mostly compatible, have some some additions in mind for 53 | AsyncLocalStorage, but holding off on Understanding if those would also be 54 | compatible with AsyncContext 55 | 56 | * User Journey tracking documentation [#502](https://github.com/nodejs/diagnostics/issues/502) 57 | * Need Rafael in the discussion so lets skip until next time 58 | 59 | * Stephen 60 | * Proposed session for collaborator summit - https://github.com/openjs-foundation/summit/issues/349 61 | * Any good agenda items for that? 62 | * Already includes AsyncLocal Storage 63 | * Michael good summary of diagnostics Channels work that Stephen has worked on would be 64 | good as opportunity for greater visibility and feedback. 65 | 66 | ## Q&A, Other 67 | 68 | 69 | ## Upcoming Meetings 70 | 71 | 72 | * **Node.js Project Calendar**: 73 | 74 | 75 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 76 | -------------------------------------------------------------------------------- /wg-meetings/2019-04-03.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2019-04-03 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=JxNIUzmuyIw 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/287 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Thomas Watson (@watson) 12 | * Kelvin Jin (@kjin) 13 | * Peter Marton (@hekike) 14 | 15 | ## Agenda 16 | 17 | ## Announcements 18 | 19 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 20 | 21 | * Thomas, merged doc with minutes from summit. If you had slides please add to the 22 | folder. 23 | * Kelvin will have perfetto code for review by next meeting. Should likely create fork under 24 | repo to start working on it. 25 | 26 | * Peter, Netflix thinking about OpenCensus Client and are talking to Ali/Kelvin about getting 27 | involved. Have some suggested changes (making CLS usage optional and working on some 28 | child span creation API improvements). 29 | 30 | * Michael interested as well in OpenCensus, Kelvin to set follow up meeting. 31 | 32 | ### nodejs/node 33 | 34 | * Support pausing the debugger on script load [#24687](https://github.com/nodejs/node/issues/24687) 35 | * Kelvin to follow up as it may be an orphan 36 | 37 | ### nodejs/diagnostics 38 | 39 | * Post-mortem debugging support inside V8/Node.js [#227](https://github.com/nodejs/diagnostics/issues/227)\ 40 | * Michael take off agenda until there is something to discuss. 41 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 42 | * Peter Marton - starting to work on draft for diagnostic memory leak, and other most 43 | common use case 44 | * will contain structure, and will try to share doc by the end of the week 45 | * Michael also trying to sync up with Gireesh to start on concrete next steps as well. 46 | 47 | * Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 48 | * No new on this front/. 49 | 50 | * Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 51 | * To be driven by best practices. 52 | 53 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 54 | * Nothing new to report this week 55 | * Need to update the issue based on discussion in the summit. 56 | * Focus on CLS instead so that stable API is less important 57 | * Should we have CLS as strategic initiative, and find a Champion? 58 | * Thomas will volunteer as champion. 59 | 60 | * Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 61 | * Michael K was going to talk to Microsoft team about potential experimentation in v8 62 | * No update this week. 63 | 64 | * \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 65 | * Michael did work with IBMer, who is going to look at starting to add more tracepoints. 66 | * Kelvin will check with Perfetto team on what kind of options for enabling based on categories 67 | or levels there is. 68 | 69 | ## Q&A, Other 70 | 71 | ## Upcoming Meetings 72 | 73 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 74 | 75 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 76 | 77 | 78 | -------------------------------------------------------------------------------- /wg-meetings/2020-08-05.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2020-08-05 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=Hq41on9RN1c 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/422 7 | * **Minutes Google Doc**: https://hackmd.io/s/rJkEziD-P 8 | 9 | ## Present 10 | 11 | * Mary Marchini (@mmarchini) 12 | * Stephen Belanger (@qard) 13 | * Chengzhong Wu (@legendecas) 14 | 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | * No announcments 23 | 24 | ### nodejs/diagnostics 25 | 26 | * Expand the scope of deep dive meetings [#417](https://github.com/nodejs/diagnostics/issues/417) 27 | * Good idea 28 | * We can either wait to finish UJ or jump to other topics 29 | * Discuss during issue 30 | * Continue unified hooks discussion [#401](https://github.com/nodejs/diagnostics/issues/401) 31 | * Will continue to work on diagnostics channel stuff 32 | * Will open an issue to share context 33 | * Diagnostics channel: idea from a few years ago to have a general data fire hose(?) 34 | * There were some performance concerns around it 35 | * Trying to redesing so we can still have the fire hose deliberately without overhead when not in use 36 | * Difference between this and Node.js tracing? 37 | * OpenTracing is more (?) 38 | * More like the `debug` module, where you create a named channel and put data there 39 | * Pub/sub system where subscribers subscribe for a particular name 40 | * Construct and produce data _if_ there's a listener for given name 41 | * discuss: node.js contributor survey [#398](https://github.com/nodejs/diagnostics/issues/398) 42 | * Gireesh is not here, so skipping 43 | * Discuss usage and support of eBPF [#386](https://github.com/nodejs/diagnostics/issues/386) 44 | * Removed from agenda 45 | * Reviving "Zones" like proposals to TC39 [#375](https://github.com/nodejs/diagnostics/issues/375) 46 | * Presented on last TC39 meeting 47 | * Didn't advance 48 | * Still some concerns around dynamic scoping 49 | * Will be discussed in an incubator call in a couple of weeks 50 | * No actions from Diag WG in the next few weeks 51 | * Can remove from agenda 52 | * COVID-19 and WG sittings [#370](https://github.com/nodejs/diagnostics/issues/370) 53 | * No changes 54 | * Will close the issue later 55 | * Improving automated remote connection via Inspector Protcol [#348](https://github.com/nodejs/diagnostics/issues/348) 56 | * Will present a demo on next meeting 57 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 58 | * Some async stuff got backported recently that broke older(?) users 59 | * Shouldn't block advancement though 60 | * Apparently Myles has a fix PR somewhere 61 | * Stephen: personally don't see any paths to ever getting it to stable 62 | * From my perspective it's the internals for things that people should actually use, like AsyncLocalStorage 63 | * Eventually we should deprecate it as an exposed thing 64 | * Not now, but when public APIs cover the actual use cases for async_hooks 65 | 66 | ## Q&A, Other 67 | 68 | ## Upcoming Meetings 69 | 70 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 71 | 72 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 73 | -------------------------------------------------------------------------------- /wg-meetings/2019-07-03.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2019-07-03 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=cwaEQx2BPRM 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/312 7 | * **Minutes Google Doc**: https://docs.google.com/document/d/12T3pj5V3cs1_S3qoOjEkNQmWnuiGZ4GseBsuQD0xqds/edit 8 | 9 | ## Present 10 | 11 | * Peter Marton: @hekike 12 | * Michael Dawson: @mhdawson 13 | * Gireesh Punathil @gireeshpunathil 14 | 15 | ## Agenda 16 | 17 | ## Announcements 18 | 19 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 20 | 21 | ### nodejs/node 22 | 23 | * Async Hooks do not recognize execution contexts created when processing thenables [#22360](https://github.com/nodejs/node/issues/22360) 24 | * Next step is not clear for WG: those in attendance don’t have enough context 25 | https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2019-06-19.md#nodejsnode 26 | * no comment on issue since last WG meeting 27 | * those in attendance don’t have enough context 28 | 29 | ### nodejs/diagnostics 30 | 31 | * seeking feedback: diagnostic report tooling [#301](https://github.com/nodejs/diagnostics/issues/301) 32 | * Discussed last time, remove from agenda. 33 | * proposal: --inspect-store flag [#298](https://github.com/nodejs/diagnostics/issues/298) 34 | * proposal by Aleksei, 35 | * Next action, Peter will try to get Aleksei to the next meeting. 36 | * Proposal to drive Diagnostics WG initiatives through user journeys [#295](https://github.com/nodejs/diagnostics/issues/295) 37 | * new survey https://docs.google.com/document/d/1T2hGtYcUxLiBZD29daDNvZkgRZi4YPNHwYqZ8YtT0yw/edit#heading=h.c7us85wlqw23 38 | Open an issue in the user feedback repo to reach out to foundation 39 | * Perfetto in Node.js [#277](https://github.com/nodejs/diagnostics/issues/277) 40 | * last comment on issue Apr 17, 2019 41 | * last commit in repo: May 9, 2019 42 | * commented on issue asking if there is an issue. 43 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 44 | * Waiting on some review on PR 45 | * Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 46 | * A bit of a place holder. Remove from agenda for now. 47 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 48 | * stale since Oct 21, 2018 49 | * Needs a champion 50 | * Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 51 | * stale since Dec 17, 2017 52 | * Needs a champion, remove from agenda 53 | * OpenTelemetry Node SIG meetings update 54 | * Peter participates on OpenTelemetry Node SIG meetings 55 | * You can find notes here https://docs.google.com/document/d/1S_pN7sBU7wO6cBP2hDSAt3bjSWdWdm6jWeUikC9KrcY/edit# 56 | * lots of talk about the Node.js agent 57 | * Discussion around the general specification, more focus on Java as many of 58 | the participants are from Java side. 59 | * Have started discussion on propagation. 60 | * Focus on APIs now. Implementation related work is going to speed up soon. 61 | * Propagation may be most important part for Diagnostics WG. 62 | 63 | ## Q&A, Other 64 | 65 | ## Upcoming Meeting 66 | 67 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 68 | 69 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 70 | 71 | 72 | -------------------------------------------------------------------------------- /wg-meetings/2018-09-19.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-09-19 Minutes 2 | 3 | ## Attendees 4 | * Michael Dawson (@mhdawson) 5 | * Thomas Watson (@watson) 6 | * Stephen Belanger (@qard) 7 | * @mike-kaufman 8 | * @ofrobots 9 | * @kjin 10 | * @hashseed 11 | 12 | 13 | ## Links 14 | - **This Meeting**: 15 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-09-19.md 16 | - Notes: https://docs.google.com/document/d/1eRPIYOti87UGsUObdgoNs_KSFMvH-7QI3_FDCq5TdxQ/edit 17 | - You Tube: http://youtu.be/YOp0w6XXkNQ 18 | - **Previous Meeting**: 19 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-09-05.md 20 | - Notes: 21 | - You Tube: http://youtu.be/UgHFJsTviF8 22 | 23 | ## Agenda 24 | 25 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 26 | 27 | ### nodejs/diagnostics 28 | 29 | - Session at Collab Summit Vancouver 2018 [#229](https://github.com/nodejs/diagnostics/issues/168) 30 | - need someone to drive 31 | - produce some slides/agenda that includes the following: 32 | - overview of diag WG 33 | - where we need help 34 | - deep dives (e.g., async context) 35 | - @mhdawson & @kjin agreed to try to get a cut 36 | - should have confidence this is handled at the 10/3 meeting 37 | 38 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 39 | - limited progress 40 | 41 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 42 | - @mike-kaufman to schedule deep-dive on async-context formalizations. 43 | 44 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 45 | - now we need to move some stuff up 46 | - PR open on getting node-report into core 47 | - issue [#234](https://github.com/nodejs/diagnostics/issues/234) to get node clinic moved to tier 3 48 | - some discussion here that it may be better to have a more targeted tool here, or API-level tests 49 | - something smaller is easier to reason about than clinic, which is pretty broad 50 | - issue [#234](https://github.com/nodejs/diagnostics/issues/234) discussion updated w/ summary 51 | 52 | 53 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 54 | - Open PR [21313](github.com/nodejs/node/pull/21313), eliminates need for destroy callback & significantly improves perf 55 | - this is stalled 56 | - current pushback is some http parser resources are pooled and shared across requests 57 | - @hashseed of opinion that we should try to get this unstuck since it addresses perf impact 58 | - @ofrobots to schedule a "doodle" on this w/ appropriate people 59 | - if needed, we can add to agenda of things to discuss at summit 60 | 61 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 62 | - PR https://github.com/nodejs/diagnostics/pull/197 open, would love feedback 63 | - will schedule a deep-dive 64 | 65 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 66 | - @ofrobots investigating threading issues on shutdown, has some fixes 67 | - wants to use pefetto 68 | - thinks this can be done w/out changing APIs 69 | - would be nice to see a demo of all the things that can be done with trace_events 70 | 71 | -------------------------------------------------------------------------------- /meetings-other/2019-01-16.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Best Practices Guide Content Definition Meeting 2019-01-16 2 | 3 | ## Links 4 | 5 | * **Recording**: 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/270 7 | 8 | ## Present 9 | 10 | * Gireesh Punathil (@gireeshpunathil) 11 | * Michael Dawson (@mhdawson) 12 | * Matheus Marchini (@mmarchini) 13 | * Ruben Bridgewater (@BridgeAR) 14 | 15 | ## Agenda 16 | 17 | ## Announcements 18 | 19 | * No announcements this week. 20 | 21 | *Extracted from **diag-best-practices-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | 23 | ### nodejs/diagnostics 24 | 25 | * Diagnostics Best Practices Guide content definition meeting [#254](https://github.com/nodejs/diagnostics/issues/254) 26 | 27 | * Baseline issue to discuss “Best practices” - https://github.com/nodejs/diagnostics/issues/211 28 | * First question is how we structure the Best parctices guide? 29 | * Michael, first thought is we’d structure around issue type. (ex: symptom) 30 | * Matheus, start with symptom then narrow down to deployment scenarios. (same as Michael) 31 | * Gireesh, one issue is that there may be a lot of deployment variations so hard to 32 | start there. On the other hand production deployments will still need the steps to get 33 | there. 34 | * Michael, starting with symptom provides common basis that can be used to build base content. 35 | Additional level of production level deployment can be built on top of it. 36 | * Gireesh, starting with symptom we can also re-use existing documentation more easily. 37 | * After we are in discussion we seem to be in agreement with structuring around symptoms 38 | and then having a second layer with additional guidance for specific deployment 39 | environments. 40 | 41 | * Next question is how to prioritize the content. 42 | * Based on frequency of reporting, or based on tooling availability, etc. 43 | * Gireesh, most common issues are memory leak and exceptions, hang is the least reported. 44 | * Gireesh we should start with memory leak, crash and performance based on the symptom. 45 | * Michael, Matheus, Ruben, sounds reasonable. 46 | 47 | * Gireesh, referring to the issue related to the level of support for tooling, how do we 48 | position the tools in the best practices? 49 | * Michael, work from the perspective of best tools, then work on the improving support 50 | for the tools that are important. 51 | * Gireesh if there are multiple tools, do we refer to all? Have multiple flows etc.? 52 | * Matheus, we should probably mention more than one tools. Likely also layered so 53 | you start with something simple and then progress to more sophisticated tools. 54 | * Michael, for equivalent tools I don’t see a problem mentioning both. 55 | 56 | * Gireesh as we go through the process, we’ll likely come across existing tools and 57 | shortcomings. 58 | 59 | * Last issue is how do we get started, who will take up what? 60 | * Michael, first thing we need is a table of contents. 61 | 62 | * Which format should we use for the content? 63 | * Markdown, same as core documentation and blog posts (for example: https://github.com/nodejs/nodejs.org/pull/1961/files) 64 | * Start with pull requests to nodejs/diagnostics 65 | 66 | ## Q&A, Other 67 | 68 | * No Q&A this week. 69 | 70 | ## Upcoming Meetings 71 | 72 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 73 | 74 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 75 | -------------------------------------------------------------------------------- /documentation/hang/step2/using_chrome_devtools.md: -------------------------------------------------------------------------------- 1 | # Using Chrome DevTools 2 | 3 | [Chrome DevTools][] are very useful on development. It allows us to step into 4 | our programs and get our hands on every slice of our code and values of its 5 | local variables. 6 | 7 | It is worth to know that inspectors are built to be production safe, 8 | *as long as properly used*. Attaching to a production instance using Chrome 9 | DevTools is discouraged. 10 | 11 | Tools that are compatible with [Chrome DevTools Protocol][] can be used with 12 | Node.js either. 13 | 14 | ## Launch Node.js with Inspector Enabled 15 | 16 | On most platforms, Node.js can be launched with inspector enabled to allow 17 | Chrome DevTools Protocol compatible tools like Chrome DevTools, and VSCode 18 | debugger to attach to the process and inspecting variables or step into the 19 | running code. The behavior have to be explicitly enabled by command line 20 | option `--inspect` or `--inspect-brk`. 21 | 22 | `inspect-brk` can block the process from executing user codes until an 23 | inspector has attached to the process. 24 | 25 | Node.js process that launched with inspection options will emit messages 26 | telling us to which port we can use inspector tools to connect. 27 | 28 | ```bash 29 | > node --inspect-brk src/work.js 30 | Debugger listening on ws://127.0.0.1:9229/e9fa2087-65c6-4c10-b292-19f5d26f19a4 31 | For help, see: https://nodejs.org/en/docs/inspector 32 | ``` 33 | 34 | If there is Chrome available to be used, open a page with URL 35 | `chrome://inspect`, and there will show all the processes available to be 36 | inspected. 37 | 38 | For more Chrome DevTools Protocol compatible debugging tools, please refer 39 | to the [Debugging API][] document for more information. 40 | 41 | ## Attach to the Running Process 42 | 43 | As mentioned above, Node.js process will not open inspector port for listening 44 | inspector client connections. What if we didn't realize that we might need 45 | live debugging at first until then the problem occurs to us? 46 | 47 | We can send a signal `SIGUSR1` to the running process and then the inspector 48 | will start listening for new debugger connections. 49 | 50 | Since signal `SIGUSR1` isn't available on Windows platform, this method doesn't 51 | work on Windows. 52 | 53 | If say we have a Node.js process running without any prediction of later 54 | debugging intent. 55 | 56 | ```bash 57 | > node src/work.js 58 | # the process is doing something we don't expect... 59 | ``` 60 | 61 | We can first find out it's process id by CLI tools like `ps` in UNIX and send a 62 | signal to it by CLI tools like `kill`. 63 | 64 | ```bash 65 | > ps 66 | PID TTY TIME CMD 67 | 100 ttys002 0:04.02 /bin/bash 68 | 101 ttys002 3:27.99 node src/work.js # this is the Node.js process. 69 | 102 ttys003 0:04.02 /bin/bash 70 | > kill -SIGUSR1 101 # the pid field from `ps` outputs. 71 | ``` 72 | 73 | With the signal `SIGUSR1` sent to the process, there will be output from the 74 | original shell of the process, which tells us to which port we can use the debugger 75 | to connect. 76 | 77 | ```bash 78 | Debugger listening on ws://127.0.0.1:9229/e9fa2087-65c6-4c10-b292-19f5d26f19a4 79 | For help, see: https://nodejs.org/en/docs/inspector 80 | ``` 81 | 82 | Then we can use Chrome DevTools to attach to the process with methods mention 83 | on previous section. 84 | 85 | ## Useful Links 86 | 87 | - https://nodejs.org/api/process.html#process_signal_events 88 | 89 | [Debugging API]: ../../../debugging/README.md 90 | [Chrome DevTools]: https://developers.google.com/web/tools/chrome-devtools 91 | [Chrome DevTools Protocol]: https://chromedevtools.github.io/devtools-protocol/ 92 | -------------------------------------------------------------------------------- /wg-meetings/2018-03-21.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-03-21 Minutes 2 | 3 | ## Attendees 4 | * Michael Dawson (@mhdawson) 5 | * Stephen Belanger (@qard) 6 | * Matteo Collina (@mcollina) 7 | * Mike Kaufman @mike-kaufman 8 | * Yang Guo (@hashseed) 9 | * Mike Kaufman 10 | * Kelvin Jin (@kjin) 11 | * Ali Sheikh (@ofrobots) joined in the last minute :) 12 | 13 | 14 | ## Links 15 | - **This Meeting**: 16 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-03-21.md 17 | - Notes: https://docs.google.com/document/d/1SsT2lSkA_2BwLFtaNBJ5fzCC9cfms6KXXTEQYmSPO1w/edit 18 | - You Tube: http://youtu.be/FI8Bk3L8N14 19 | - **Previous Meeting**: 20 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-03-07.md 21 | - Notes: https://docs.google.com/document/d/16mMvzSePDY2-UuJAooj86EhIsg76iPFyYOLyKBBaPCM/edit 22 | - You Tube: http://youtu.be/Ef3zM6syH6M 23 | 24 | ## Agenda 25 | 26 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 27 | 28 | ### nodejs/diagnostics 29 | 30 | - * Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 31 | - deep dive on profiling happened 32 | - 5-6 attendees, was productive 33 | - some actions came out of this 34 | 35 | - * Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 36 | - Some actions from deep-dive, but names were not assigned 37 | - For now, focus on PR, as changes there may cause changes in other actions 38 | 39 | 40 | - * Eliminate Monkey Patching for Diagnostic Instrumentation [#134](https://github.com/nodejs/diagnostics/issues/134) 41 | - no update 42 | - **ACTIONS**: 43 | - @mhdawson to open issue to drive discussion about code repo and what code to use to start this 44 | 45 | 46 | - * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 47 | - Yang is going to put together doc on what to do in order to make it perform better 48 | - Has not yet had enough time to do that, but has had some discussions with Ali 49 | - Help a lot to not attach the resource to the promise hook. Just pass an async id instead. 50 | - Spec has a lot of temporary promises, but they are not observable in regular JS, but they 51 | are through promise hooks. Question is if we can skip those? Matteo, should be ok as long 52 | as context is preserved and is in tact when you are out of them 53 | - Promise hook should not be bound to isolate but instead to the context. (Would fix electron 54 | issue). 55 | - v8 has improved performance of promises, which is widening impact of promise hooks 56 | - ~50% impact of promise hooks on some benchmark (hapi) 57 | 58 | 59 | 60 | - * Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 61 | - Mike K has some code which is monkey-patching node libraries to generate async events. 62 | - not quite working yet 63 | - Nothing else to report this week. 64 | - **ACTIONS**: 65 | - @mike-kaufman to discuss monkey-patching code next week 66 | - @kjin to open issue to demo/discuss a visualization tool he's been working on 67 | 68 | - * \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 69 | - no update 70 | 71 | - Q&A, Other 72 | - 0x v4 released based on the tick profiler, same output logic for both kernel tools and tick 73 | Profiler 74 | - **ACTIONS**: 75 | - David/@mcollina to push an issue in the Diag repo to start discussion. Maybe will ask him to do demo 76 | next week. 77 | -------------------------------------------------------------------------------- /wg-meetings/2019-04-17.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics WorkGroup Meeting 2019-04-17 2 | 3 | ## Links 4 | 5 | * **Recording**: https://www.youtube.com/watch?v=FxsT8qZua-E 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/292 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Peter Marton (@hekike) 12 | * Ruben Bridgewater (@BridgeAR) 13 | * Kelvin Jin (@kjin) 14 | * Diagnostics team: @nodejs/diagnostics 15 | 16 | ## Agenda 17 | 18 | ## Announcements 19 | 20 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 21 | 22 | * Kevin, perfetto repo is now created, https://github.com/nodejs/perfetto-nodejs-wip 23 | * Have build perfetto with gyp, ironing out a few issues. 24 | * Peter still working on use cases, hope to share today, but hope to share tomorrow and we 25 | can discuss in 2 weeks. 26 | 27 | ### nodejs/node 28 | 29 | * Support pausing the debugger on script load [#24687](https://github.com/nodejs/node/issues/24687) 30 | * Kevin was going to follow up since person who opened left Google. 31 | will report back next time. 32 | 33 | ### nodejs/diagnostics 34 | 35 | * Post-mortem debugging support inside V8/Node.js [#227](https://github.com/nodejs/diagnostics/issues/227) 36 | * We can take agenda tag off, we agree on way forward at summit 37 | now we just need to wait for progress. 38 | 39 | * Diagnostics "Best Practices" Guide? [#211](https://github.com/nodejs/diagnostics/issues/211) 40 | * Work that Peter is doing is moving this forward as mentioned before. 41 | 42 | * Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 43 | * No update this week. 44 | * Peter Marton, after he shares use cases would be good to do deep dive on each use case. 45 | 46 | * Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 47 | * No update this week, focus is on defining best practices 48 | * Peter Marton working on a doc with an updated set of user stories. 49 | * Removing agenda tag until we make progress on the best practices. 50 | 51 | * \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 52 | * Related is issue around async context propagation. Vladimir is trying to resolve one 53 | test case where state is lost. 54 | 55 | * Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 56 | * We don’t have Mike K this week so no update. 57 | 58 | * \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 59 | * Working on perfetto but nothing else to report this week. 60 | 61 | * Flag for unhandled rejects in core 62 | * Should we talk about new default? 63 | * you can opt in, strict or warn (almost default but no deprecation warning) 64 | * Would like to have a survey to get more opinions on what they would prefer 65 | * blog post, followed by survey on what they would like as the default 66 | * would also want to figure based on type of user. 67 | * Ruben, will open an issue and work on the questions the first step. 68 | 69 | * Diagnostic WG mission, was surprised current content. 70 | * Peter will submit PR to suggest a few modifications. 71 | 72 | * Who’s coming to summit 73 | * Michael, Ruben and Peter from those in attendance. 74 | 75 | 76 | ## Q&A, Other 77 | 78 | * Question (@wentout) about Async Storage and it’s connection to #107 79 | https://github.com/nodejs/node/pull/26540 80 | 81 | * No other questions this week 82 | 83 | ## Upcoming Meetings 84 | 85 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 86 | 87 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 88 | -------------------------------------------------------------------------------- /wg-meetings/2018-09-05.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-09-05 Minutes 2 | 3 | ## Attendees 4 | * Michael Dawson (@mhdawson) 5 | * Jan Krems (@jkrems) 6 | * Thomas Watson (@watson) 7 | * Matheus Marchini (@mmarchini) 8 | * Stephen Belanger (@qard) 9 | * Peter Marton (@hekike) 10 | * @mike-kaufman 11 | * @ofrobots 12 | * @bridgeAR 13 | 14 | 15 | ## Links 16 | - **This Meeting**: 17 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-09-05.md 18 | - Notes: 19 | - You Tube: http://youtu.be/UgHFJsTviF8 20 | - **Previous Meeting**: 21 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-08-22.md 22 | - Notes: https://docs.google.com/document/d/1b7InhqjUTZY0c9jYrpFgzo0xwDgbZ4LjtLPH98ZU4kg/edit 23 | - You Tube: http://youtu.be/0MJ_VIKzoJg 24 | 25 | ## Agenda 26 | 27 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 28 | 29 | ## nodejs/node 30 | - http2: diagnostic use cases [#21888](https://github.com/nodejs/node/issues/21888) 31 | - tweeted out, no response 32 | - closed issue 33 | 34 | ### nodejs/diagnostics 35 | 36 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 37 | - @mike-kaufman to schedule deep-dive on async-context formalizations. 38 | 39 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 40 | - general agreement that this will be a good thing 41 | - at a minimum if it is just a list of links, that's a start that we can improve on 42 | - leave on agenda & try to make progress 43 | 44 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 45 | - original PR that lists tools has landed 46 | - now tools need to be categorized into some tier (they're all uncategorized now) 47 | - we will leave open to track progress 48 | - next steps are to start moving tools into tiers 49 | - there's a PR open on node-report moving into core 50 | - Code event listeners can move up since we now have tests 51 | - Mateus or Peter to open a PR on this 52 | 53 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 54 | - Open PR [21313](github.com/nodejs/node/pull/21313), eliminates need for destroy callback & significantly improves perf 55 | - this is stalled 56 | - current pushback is some http parser resources are pooled and shared across requests 57 | 58 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 59 | - PR https://github.com/nodejs/diagnostics/pull/197 open, would love feedback 60 | - will schedule a deep-dive 61 | 62 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 63 | - @mhdawson pinged James, didn't hear back 64 | - some things in this list are done, some things are missing 65 | - @ofrobots said he'd try to find some time to clean up 66 | - one thing that is missing is production-quality implementation for an event store 67 | - perfeto is project that chromium is moving to 68 | - some refactoring to change v8 to accept a pluggable implementation for the store would simplify things here. 69 | 70 | - discussion on how to keep llnode working 71 | - matheus is looking into how to metadata for llnode is emitted 72 | - trying to find a new way to analyze core dumps 73 | - last 4 or 5 v8 updates broke llnode 74 | - 1st prototype that Matheus did had poor perf 75 | - calculated memory offsets of various properties 76 | - trying another approach to use an API on v8 and let v8 do the calculations efficiently. 77 | -------------------------------------------------------------------------------- /wg-meetings/2018-10-17.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-10-17 Minutes 2 | 3 | ## Attendees 4 | - Mike Kaufman 5 | - Andreas Madsen: @andreasmadsen 6 | - Thomas Watson @watson 7 | - Matheus Marchini @mmarchini 8 | - Daniel Beckert @Drieger 9 | - Michael Dawson @mhdawson 10 | - Stephen Belanger @qard 11 | - Ali Sheikh @ofrobots 12 | - Kelvin Jin @kjin 13 | - Natalie Wolf 14 | - Bryan Clement 15 | 16 | ## Links 17 | - **This Meeting**: 18 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-10-17.md 19 | - Notes: https://docs.google.com/document/d/1l-hbheqECIKO0TMNymMweNX3LvtMxA2Id3dY7qUAoAQ/edit 20 | - You Tube: http://youtu.be/3linTf2Z1N8 21 | - **Previous Meeting**: 22 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-10-03.md 23 | - Notes: https://docs.google.com/document/d/1zPXlGg3-yx5fthXOIw9l66fbFKt6edE_aK7infiyo4I/edit 24 | - You Tube: http://youtu.be/VzBdlYATQfE 25 | 26 | ## Agenda 27 | 28 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 29 | 30 | ### nodejs/diagnostics 31 | 32 | - Session at Collab Summit Vancouver 2018 [#229](https://github.com/nodejs/diagnostics/issues/168) 33 | - Intro to key initiatives to get broader awareness/interest 34 | - Async hooks formalization, points at wanting a different API than Async hooks, need to work 35 | on next steps. 36 | - [#245](https://github.com/nodejs/diagnostics/issues/245) summarizes next steps for 37 | port mortem/promises discussion 38 | 39 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 40 | - Mike from NodeSource has written some content 41 | - Need to find way to move this forward. 42 | - Gireesh will setup separate meeting to get this moving forward 43 | 44 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 45 | - @mike-kaufman will try to schedule a deep-dive on async context for sometime in November 46 | 47 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 48 | - nothing new to report 49 | 50 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 51 | - no update this week 52 | - Open PR [21313](github.com/nodejs/node/pull/21313), eliminates need for destroy callback & significantly improves perf 53 | - Some discussion of reviving async resource. Goal is to 54 | remove the destroy hook, or so optional that it does not interfere with performance, PR 55 | to remove promise from Promise wrap. Will make escape analysis easier but requires 56 | work on the V8 side to use escape analysis in emitting the hook 57 | - Ali need Yang and Matteo to go into more details. Ali will schedule a separate time 58 | for the discussion. 59 | 60 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 61 | - will schedule a deep-dive for november 62 | - Natalie & Bryan from new relic are going to do some code 63 | 64 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 65 | - @ofrobots - crashy/flakiness is mostly fixed. 66 | - James working on more instrumentation, but need more experimentation from community 67 | to what the default on set should be. Would also be good to have benchmark to make 68 | sure we don’t degrade base overhead (say 1-2%) 69 | 70 | - Meeting Timeslot [#235](https://github.com/nodejs/diagnostics/issues/235) 71 | - we should try to find a meeting time that better suits people in different time zones. 72 | - Michael Dawson asked Gireesh to see if he could drive a bit on this. 73 | -------------------------------------------------------------------------------- /wg-meetings/2021-02-24.md: -------------------------------------------------------------------------------- 1 | # Node.js Diagnostics WorkGroup Meeting 2021-02-24 2 | 3 | ## Links 4 | 5 | * **Recording**: https://youtu.be/x6racZBptck 6 | * **GitHub Issue**: https://github.com/nodejs/diagnostics/issues/466 7 | 8 | ## Present 9 | 10 | * Michael Dawson (@mhdawson) 11 | * Stephen Belanger (@qard) 12 | * Gerhard Stöbich (@flarna) 13 | * Chengzhong Wu (@legendecas) 14 | * Rafael Gonzaga (@rafaelgss) - 30min late 15 | * Bradley Farias 16 | 17 | ## Agenda 18 | 19 | ## Announcements 20 | 21 | *Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 22 | 23 | ### nodejs/node 24 | 25 | * async_hooks: use new v8::Context PromiseHook API [#36394](https://github.com/nodejs/node/pull/36394) 26 | * Was working on it before Christmas, have joined Datadog on Monday and will start working 27 | on it again. Addressed some nits. Close to landing. 28 | * Working on redoing Node.js PR, few changes needed. Need to redo V8 patch commit. 29 | 30 | ### nodejs/diagnostics 31 | 32 | * Seeking consensus: Move node-inspect into core? [#459](https://github.com/nodejs/diagnostics/issues/459) 33 | * Seems like Diagnostics WG is good with it, closing. 34 | 35 | * Identify async_hooks use cases beyond AsyncLocalStorage [#437](https://github.com/nodejs/diagnostics/issues/437) 36 | * Next steps seems like blog post to get broader input. 37 | * Qard to write first draft, PR into https://github.com/nodejs/diagnostics/blog-posts directory 38 | * When ready Michael will connect with Rachel from Foundation to get published 39 | 40 | * Gerhard - anybody looking at ESM/Diagnostics 41 | * Bradley - ESM team did look at it and wrote example (would have to change) 42 | * Did not work as APMs today, can use policy or loader. Loader hooks are very 43 | unstable, lots of pushback when tried to update. 44 | * If need more hooks, could add 45 | * Just does not work like current APMs, must wrap full module 46 | * Gerhard - must use transform hook, only single hook available 47 | * Bradley tried to get consensus on having multiple .. 48 | * Stephen, this issue is one of the primary issues of the Diagnostic channel work 49 | * Sidestep issue of monkey patch, instead have module provide info 50 | * Gerhard, need to convince world to use it 51 | * Bradley, would there be a better hook if you need to change the behaviour 52 | * Can’t pass a function reference around 53 | * Gerhard if has good idea of how to fix, would have posted already 54 | * Bradley, took a few suggestions to TC39 (Dynamic modules records) that allowed 55 | to loosen some of the constraints, the committee does not want them to be loosed as that 56 | make things a lot more complicated, want early error instead. 57 | * In browsers already have problem, works ok if there is one APM, but problems once there 58 | are 2. 59 | * Stephen, has been discussion in DataDog, and what led to some of the work on Diagnostic 60 | Channel, but still at same point of not sure of how to solve in a good way. 61 | * Stephen, part of challenge is things being marked experimental 62 | * Bradley, key take away, write up how people can use Diagnostic channel instead of monkey 63 | Patching. 64 | * Stephen, need people to spend more time looking at how/what is needed. 65 | 66 | ### nodejs/node-inspect 67 | 68 | * update: add blackbox by default [#99](https://github.com/nodejs/node-inspect/pull/99) 69 | * Discussed issue with Mary, don’t have reason why it does not work for internal use 70 | * After 15x, can use prefix but not others. Not sure if that is a bug, waiting for feedback from 71 | V8 team. 72 | * Rafael will update 73 | 74 | ## Q&A, Other 75 | 76 | ## Upcoming Meetings 77 | 78 | * **Node.js Foundation Calendar**: https://nodejs.org/calendar 79 | 80 | Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. 81 | -------------------------------------------------------------------------------- /wg-meetings/2018-03-07.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-02-07 Minutes 2 | 3 | ## Attendees 4 | - @mike-kaufman 5 | - @mmarchini 6 | - @mhdawson (Michael Dawson) 7 | - @jasnell 8 | - @ofrobots 9 | - @hashseed 10 | - @AndreasMadsen 11 | - + some others (apologies going off memory) 12 | 13 | ## Links 14 | - **This Meeting**: 15 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-03-07.md 16 | - Notes: https://docs.google.com/document/d/16mMvzSePDY2-UuJAooj86EhIsg76iPFyYOLyKBBaPCM/edit 17 | - You Tube: http://youtu.be/Ef3zM6syH6M 18 | - **Previous Meeting**: 19 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-02-21.md 20 | - Notes: https://docs.google.com/document/d/1ucTWrJuU7YA-PA2DQraqzIjp3mhf0cyx3tmgGiYw-RA/edit?usp=sharing 21 | - You Tube: http://youtu.be/RyUR6Ec4BQs 22 | 23 | ## Agenda 24 | 25 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org*- prior to the meeting. 26 | 27 | ### nodejs/diagnostics 28 | 29 | ### nodejs/diagnostics 30 | 31 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 32 | - Discussed and we agreed it is a good idea. 33 | - Will schedule for every other meeting 34 | - People should add suggestions for topics in the issue 35 | 36 | - Diag WG meeting times? [#158](https://github.com/nodejs/diagnostics/issues/158) 37 | - Changed time, closing 38 | 39 | - Deep dive meeting on CI testing to ensure tools compatibility [#156](https://github.com/nodejs/diagnostics/issues/156) 40 | - Closing in favor of #168 41 | 42 | - Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 43 | - Prototype has been done that allows interpreter stack frames to be visible by perf 44 | - will make a PR to v8 45 | - open question on what tests will look like 46 | - end-to-end tests are good, but will introduce a dependency on perf 47 | - this is a good topic for deep dive 48 | - **ACTIONS**: 49 | - @andreasmadsen (?) to put together outline if what needs to happen to line up the steps to make 50 | this happen. 51 | - @mmarchini (?) to update #168 w/ suggestion of this as a deep-dive topic 52 | 53 | - Eliminate Monkey Patching for Diagnostic Instrumentation 54 | [#134](https://github.com/nodejs/diagnostics/issues/134) 55 | - Matteo, they will be measuring and reporting performance deltas between monkey patching and async hooks 56 | 57 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 58 | - pending bug fix to address Electron issues will make perf of Promise Hooks worse than it already is 59 | - Electron apps have two "contexts" - one for the embedder and another from v8 60 | - Promise Hooks model has one "context" per isolate 61 | - May necessitate changes in Promise Hooks API 62 | - May also necessitate changes in Async Hooks 63 | - **ACTIONS:** 64 | - @hashseed - will write a proposal for Promise Hooks changes. Can verify impact on API then. 65 | 66 | 67 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 68 | - Nothing new to report on this. 69 | 70 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 71 | - Lots of discussion on this 72 | - @jasnell has several PRs up and is working on some other changes (e.g., trace points for DNS lookups) 73 | - one open question is what data is useful to trace 74 | - @mhdawson is looking into Java to see what kind of data they're tracing now 75 | - discussion on pros/cons of different trace provider implementations. 76 | 77 | ### nodejs/benchmarking 78 | 79 | - Perf/Node.js [#168](https://github.com/nodejs/benchmarking/issues/168) 80 | - Close in favor of #148 81 | 82 | -------------------------------------------------------------------------------- /wg-meetings/2018-10-03.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-10-03 Minutes 2 | 3 | ## Attendees 4 | - Mike Kaufman 5 | - Thomas Watson: @watson 6 | - Michael Dawson: @mhdawson 7 | - Gireesh Punathil 8 | - Peter Marton @hekike 9 | - Ruben Bridgewater: @BridgeAR 10 | - Stephen Belanger: @qard 11 | - Ali Ijaz Sheikh @ofrobots 12 | - Kelvin Jin @kjin 13 | 14 | 15 | 16 | ## Links 17 | - **This Meeting**: 18 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-10-03.md 19 | - Notes: https://docs.google.com/document/d/1zPXlGg3-yx5fthXOIw9l66fbFKt6edE_aK7infiyo4I/edit 20 | - You Tube: http://youtu.be/VzBdlYATQfE 21 | - **Previous Meeting**: 22 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-09-19.md 23 | - Notes: https://docs.google.com/document/d/1eRPIYOti87UGsUObdgoNs_KSFMvH-7QI3_FDCq5TdxQ/edit 24 | - You Tube: http://youtu.be/YOp0w6XXkNQ 25 | 26 | ## Agenda 27 | 28 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 29 | 30 | ### nodejs/diagnostics 31 | 32 | - please note survey about collab summit attendance 33 | - https://github.com/nodejs/summit/issues/115 34 | 35 | 36 | - Session at Collab Summit Vancouver 2018 [#229](https://github.com/nodejs/diagnostics/issues/168) 37 | - rough agenda in the issue 38 | - @kjin to produce some overview slides that go through first sets of bullet points 39 | - working sessions identfied for async context (@mike-kaufman to drive) & for post-mortem debugging of promises (@hekike to drive) 40 | - currently diag break-out is scheduled for same time as promise debugging session 41 | - can we do anything to move this? 42 | - may not be able to? 43 | - mateus marcini is going to do a working session on llnode 44 | 45 | - Diagnostics "Best Practices" Guide? - [#211](https://github.com/nodejs/diagnostics/issues/211) 46 | - Let's kick off a meeting here after node interactive 47 | 48 | 49 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 50 | - @mike-kaufman doing a talk on async context at 11:40 on Wednesday 51 | - let's see how working session at summit goes, and then schedule a follow-up if necessary 52 | 53 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 54 | - initial list is checked in here: https://github.com/nodejs/node/blob/master/doc/guides/diagnostic-tooling-support-tiers.md 55 | - now we need to move some stuff up 56 | - PR open on getting node-report into core 57 | - issue [#234](https://github.com/nodejs/diagnostics/issues/234) to get node clinic moved to tier 3 58 | - some gaps in test coverage that resulted in breaks to clinic identified - these need to be filled 59 | - Profiling APIs 60 | - Action here is to "document the gaps" where things are "partially tested" and then fill those gaps 61 | - use profiling APIs here as an example of how we "move things up" in level of support 62 | 63 | 64 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 65 | - Open PR [21313](github.com/nodejs/node/pull/21313), eliminates need for destroy callback & significantly improves perf 66 | - @ofrobots to drive a discussion at summit w/ appropriate people 67 | 68 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 69 | - PR https://github.com/nodejs/diagnostics/pull/197 open, would love feedback 70 | - will schedule a deep-dive 71 | - Talk at node summit on Wed on 11:40 AM 72 | 73 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 74 | - @ofrobots investigating threading issues on shutdown, has some fixes 75 | - @ofrobots still owes an update here on next steps. 76 | 77 | 78 | -------------------------------------------------------------------------------- /wg-meetings/2018-04-18.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-03-21 Minutes 2 | 3 | ## Attendees 4 | - @mike-kaufman 5 | - @mrkmarron 6 | - @tedsuo 7 | - @ofrobots 8 | - @mcollina 9 | - @hekike 10 | 11 | 12 | ## Links 13 | - **This Meeting**: 14 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-04-18.md 15 | - Notes: https://docs.google.com/document/d/14dRC5OT6gD0jP8YG6a7Iunahw86CaGKj2DmQsggq0Jg/edit 16 | - You Tube: http://youtu.be/hePMyxKiCf0 17 | - **Previous Meeting**: 18 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-04-04.md 19 | - Notes: https://docs.google.com/document/d/1gRRyLfakH69lnpZMMcaBsB5c8WOO5LG7utNm7mrLEoo/edit 20 | - You Tube: http://youtu.be/Yh4pdMmM330 21 | 22 | ## Agenda 23 | 24 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 25 | 26 | ### nodejs/diagnostics 27 | 28 | - Diagnostics Channel - Next steps [#180](https://github.com/nodejs/diagnostics/issues/180) 29 | - @qard added link to some prototype code for pub/sub channel 30 | - no other progress 31 | - Visualizing Async Context [#179](https://github.com/nodejs/diagnostics/issues/179) 32 | 33 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 34 | - please update if anyone has any topics 35 | 36 | - Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 37 | - PR in v8 was merged last week 38 | - will be available in v8 6.7 release 39 | - node v10 will ship with 6.6 40 | - Ali: is this worth backporting to v8 6.6? 41 | - @mmarchini: @hashseed not optimistic 42 | - see discussion [here](https://github.com/nodejs/diagnostics/pull/183#discussion_r182600716) for more detail 43 | - @mmarchini is starting to look at a new code event listener API 44 | - API will be covered by tests, and will prevent breaks in future 45 | - **ACTIONS:** 46 | - [ ] Ali to look into PR & start conversation about back-porting to 6.6[] 47 | 48 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 49 | - No update here - waiting on a doc about how to address promise hooks perf issues 50 | - Blocking thing here is perf 51 | - Zones was brought up in TSC meeting - does it need to be resurrected? 52 | - Some people would like to see Zones come back 53 | - acknowledgement that "async context" is a missing piece of node/javascript programming model 54 | - whether zones or not is TBD 55 | - Matteo shared a deck 56 | - discussion raised more questions than answers 57 | - some concern about perf of Zones always being on. 58 | - Ali: Zones was on by default in Dart, we could reach out to Dart folks to understand perf impact of this 59 | - Ali: v8 team thinks they can support zones more efficiently in v8 than promise hooks 60 | - Ali: Async Hooks has high overhead, it listens to way too many events 61 | - Matteo: He has some perf measurements that show Async Hooks has ~8% overhead & is more efficient than monkey-patching approaches. 62 | - Is Async Hooks going to be out of experimental for v10? 63 | - Diag WG should make recommendation to TSC on this 64 | - We need a list of criteria to exit experimental 65 | - **ACTIONS:** 66 | - [ ] Ali to start list of exit criteria #124 67 | 68 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 69 | - update to terminology in this PR: github.com/mike-kaufman/async-context-definition/pull/18/files 70 | - Frames problem around concept of a `Continuation` - which is a function that passed from one async context and then when invoked starts another 71 | - 72 | 73 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 74 | - ran out of time here 75 | 76 | -------------------------------------------------------------------------------- /wg-meetings/2017-11-15.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2017-11-15 2 | 3 | -------------------------------------- 4 | 5 | ## Attendees 6 | 7 | Ali Sheikh (@ofrobots) 8 | Kelvin Jin (@kjin) 9 | Dominic Kramer (@dominickramer) 10 | Stephen Belanger (@qard) 11 | Nikhil Komawar (@komawar) 12 | Mark Marron (@mrkmarron) 13 | Mike Kaufman (@mike-kaufman) 14 | Zbyszek Tenerowicz (@naugtur) 15 | 16 | ## Links 17 | 18 | * **Minutes Google Doc**: 19 | - https://docs.google.com/document/d/1cqw00x3kWLYp7jmu6f6D4qmqiPpSwGdJaa3fQ4GHx0U/edit?usp=sharing 20 | - google doc was innacessible for part of the meeting, so notes here are incomplete 21 | 22 | * **Previous Minutes**: 23 | - [md doc](https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2017-11-01.md) 24 | - [google doc]( https://docs.google.com/document/d/1YPysjpqnMdiXwAubWvN3AoMRGBEzk9cq2eLluj9hP6w/edit?usp=sharing) 25 | 26 | ## Agenda 27 | - **Time zone shift:** 28 | - In US, we shifted from Daylight Savings Time to Standard Time (moving from UTC-7 to UTC-8). This meeting remained at UTC 20:00 & did not shift to account for DST. 29 | - Node.js calendar was not updated 30 | - not clear we have quorum, but agreed to discuss what we could 31 | - **Actions:** 32 | - [x] fix calendar 33 | 34 | - **Async-context formalization and diagnostics support** [#107](https://github.com/nodejs/diagnostics/issues/107) 35 | - Interest for others to get involved in this, in particular @kjin. 36 | - @mrkmarron, @mike-kaufman have a very rough draft of a document to "democratize" what's in the OOPSLA paper 37 | - Plan was to get this concrete enough such that we can get useful feedback. 38 | - Form will be a mark-down document in a PR that ppl can provide feedback on. 39 | - Currently, document is on an microsoft-internal GH repo. Will try to find a way to either make public or grant access to others in the interim, in particular @kjin 40 | - Need to move this forward, will shoot to have something public by 11/29 meeting 41 | - Good discussion on "async context"s 42 | - @ofrobots - we need to communicate why "async context" is a relevant problem. Thinks long stacks are a good motivating example. 43 | - general high-level discussion about the DAG model about async context. 44 | - analogy of thread/thread join brought up 45 | - **ACTIONS**: 46 | - [ ] @mike-kaufman - figure out how to grant access to early draft of md 47 | - [ ] @mrkmarron, @mike-kaufman - get draft polished up enough to make public & make a PR to diagnostics GH repro 48 | 49 | - **Integrate C++ AsyncHooks Embedder API with native abstraction** [#13254](https://github.com/nodejs/node/issues/13254) 50 | - no update 51 | 52 | - **Summary of Diag WG Discussion - 2017/10/05 (Node Interactive)** [#106](https://github.com/nodejs/diagnostics/issues/106) 53 | - **ACTIONS:** 54 | - [ ] @ofrobots to follow up on Chrome's plans for making their `trace-events` library public 55 | 56 | - **Node.js Collaboration Summit diagnostics discussion minutes** [#95](https://github.com/nodejs/diagnostics/issues/95) 57 | - no update 58 | 59 | - **requesting comments on diagnostics-howtos project** [#92](https://github.com/nodejs/diagnostics/issues/92) 60 | - @naugtur opened a PR on this 61 | 62 | - **\[trace_event\] tracking issue** [#84](https://github.com/nodejs/diagnostics/issues/84) 63 | - no updates 64 | 65 | - **\[async_hooks\] tracking issue** [#29](https://github.com/nodejs/diagnostics/issues/29) 66 | - no updates 67 | 68 | - **@mike-kaufman can't tag issues** 69 | - issue #120 opened to track 70 | 71 | - **Documentation Discussion during diagnostics WG meeting** [163](https://github.com/nodejs/community-committee/issues/163) 72 | - issue was opened based on discussion from 11/01/2017 meeting 73 | - probably need to get more concrete w/ what needs to happen there, or just close it 74 | 75 | -------------------------------------------------------------------------------- /wg-meetings/2018-06-13.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-06-13 Minutes 2 | 3 | ## Attendees 4 | - ofrobots@ 5 | - mike-kaufman@ 6 | - watson 7 | - yangguo@ 8 | - yunong@ 9 | - hekike@ 10 | - Michael Dawson (@mhdawson) 11 | 12 | ## Links 13 | - **This Meeting**: 14 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-06-13.md 15 | - Notes: https://docs.google.com/document/d/1_YaY8URKkDsQOwA4Wd3MGAMuQfw7kUMUDtsjptWKe9w/edit 16 | - You Tube: http://youtu.be/WUzmqf0Uvu4 17 | - **Previous Meeting**: 18 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-05-16.md 19 | - Notes: https://docs.google.com/document/d/1efhZ-QhIVSlBCwtYti93XnAV_XO3qdkupPZJkgXgbVI/edit 20 | - You Tube: http://youtu.be/trVxoa2owU0 21 | 22 | ## Agenda 23 | 24 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 25 | 26 | ### nodejs/diagnostics 27 | 28 | - Next Diagnostic Summit #201 29 | - proposal is to do this around node summit in July @ netflix offices 30 | - concern that there is limited time for people to plan for this, and this isn't very inclusive 31 | - general consensus is that people who are in town can get together in July informally 32 | - Will try to land on a diag summit in october timeframe 33 | - **Actions**: 34 | - @yunong to update #201 with plan for any informal summit meetings 35 | - @yunong to post on an issue about proposed dates/locations for next summit 36 | 37 | - Strategic Initiatives/Champions like we have on TSC [#185](https://github.com/nodejs/diagnostics/issues/185) 38 | - Done, issue closed. 39 | 40 | - Diagnostics Channel - Next steps [#180](https://github.com/nodejs/diagnostics/issues/180) 41 | - @Quard not here, skip until next time. 42 | 43 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 44 | - Need to schedule one on async context terminology and tiers of support 45 | - **Actions** 46 | - @mhdawson has action for Tiers 47 | - @mike-kaufman has action for async context deep-dive 48 | 49 | - Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 50 | - making progress 51 | - Yang what is still missing is that it does not work for inlined functions. 52 | - @mcollina thinks this is ok - if he wants to avoid inlined functions, he can just pass a flag to disable them. 53 | 54 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 55 | - Not much progress since collab summit 56 | - Discussion at summit around if we are ready. General discussion was that we needed 57 | the semantics as a pre-req before we would want to make them non-experimental. 58 | 59 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 60 | - PR posted, some comments been added 61 | - A few themes are coming out, he needs to post those and then update do. Mike mentioned 62 | these: 63 | - how does this work with generators 64 | - how does it work for async await 65 | - how do we simplify traversals 66 | - please review and provide feedback 67 | 68 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 69 | - @jasnell volunteered to be champion here 70 | - trace events now in CrDP 71 | - UI is available in Chrome Dev Tools perf tab 72 | - still some gaps here, some work happening, but it is progressing 73 | - @ofrobots working through bugs 74 | - @jasnell is still working through intrinsics 75 | 76 | - Expectation about tier of support from diagnostic tools and VMs [#157](https://github.com/nodejs/diagnostics/issues/157) 77 | - Discussed at the summit, we need to put together list and then work on what the 78 | support levels should be for each. 79 | - nodejs/node#21313 80 | - discussion, but take back to github for future progress. 81 | -------------------------------------------------------------------------------- /documentation/abnormal_termination/step2/using_diagnostic_report.md: -------------------------------------------------------------------------------- 1 | # Using Diagnostic Report 2 | 3 | Formerly known as node-report. The report is intended for development, test and 4 | production use, to capture and preserve information for problem determination. 5 | It includes JavaScript and native stack traces, heap statistics, platform 6 | information, resource usage etc. Diagnostic Report can be useful to discover 7 | configuration and component version issues with in your process. 8 | 9 | ## How To 10 | 11 | 1. Open the generated report (either from file or from console) 12 | 13 | Report can be generated using the following cli flags: `node --report-on-fatal-error `. 14 | Report can be generated using the following programatic configuration: 15 | ```js 16 | process.report... 17 | ``` 18 | 19 | 2. Open the generated report which is in the format `report.20200410.114639.4623.0.001.json`. 20 | 21 | 3. Look at `javascriptStack` to see what is the cause of abnormal termination. Are there evidence of it being caused by programatic errors? If yes, examine the source as pointed in the call frame and attempt to figure out what went wrong. 22 | 23 | 4. If programatic error is ruled out, then examine `javascriptStack` to see if there is evidence of memory leak / exhaustion. If so, the stack will show the victim of the memory leak which can be the allocation pattern and /or the actual source. Note that `javaScriptStack` will not always point to the right frame. 24 | 25 | The `javascriptHeap` will give the details of memory allocation. It is split into 6 regions: 26 | * read_only_space 27 | * new_space 28 | * old_space 29 | * code_space 30 | * map_space 31 | * large_object_space 32 | 33 | 5. Inpsect each spaces. For each space, 34 | ```js 35 | "old_space": { 36 | "memorySize": 5332910528, 37 | "committedMemory": 5332846624, 38 | "capacity": 5332901608, 39 | "used": 5332770856, 40 | "available": 130752 41 | }, 42 | ``` 43 | * used is high : Out of allocated memory 5332910528 bytes, 5332770856 bytes are used. 44 | * available is very low : 130752 bytes. 45 | 46 | 6. The cause may be because of any of the following 2 reasons 47 | 48 | a. Process runs out of memory 49 | Symptoms 50 | * Continuously increasing memory usage is observed (can be fast or slow, over days or even weeks). 51 | * Eventually the process crashes and restarted by the process manager. 52 | * The process maybe running slower than before and the restarts make certain requests to fail (load balancer responds with 502). 53 | 54 | Side Effects 55 | * Process restarts due to the memory exhaustion and request are dropped on the floor. 56 | * Increased GC activity leads to higher CPU usage and slower response time. 57 | * Increased memory swapping slows down the process. 58 | * May not have enough available memory to get a Heap Snapshot. 59 | 60 | Debugging 61 | To debug a memory issue we need to be able to see how much space our specific type of objects take, and what variables retain them to get garbage collected. For the effective debugging we also need to know the allocation pattern of our variables over time. 62 | 63 | b. Process utilises memory inefficiently 64 | Symptoms 65 | * The application uses an unexpected amount of memory (out of proportion with the application's designed consumption). 66 | * Observe elevated garbage collector activity. 67 | 68 | Side Effects 69 | * An elevated number of page faults. 70 | * Higher GC activity and CPU usage. 71 | 72 | Debugging 73 | To debug a memory issue we need to be able to see how much space our specific type of objects 74 | take, and what variables retain them to get garbage collected. For the effective debugging we also 75 | need to know the allocation pattern of our variables over time. 76 | 77 | ## Useful Links 78 | 79 | _ https://nodejs.org/api/report.html 80 | - https://medium.com/the-node-js-collection/easily-identify-problems-in-node-js-applications-with-diagnostic-report-dc82370d8029 81 | -------------------------------------------------------------------------------- /wg-meetings/2018-05-02.md: -------------------------------------------------------------------------------- 1 | # Node.js Foundation Diagnostics Working Group Meeting 2018-03-21 Minutes 2 | 3 | ## Attendees 4 | - @mike-kaufman 5 | - @ofrobots 6 | - @kjin 7 | - @mrkmarron 8 | - @mafintosh 9 | - @hashseed 10 | - @qard 11 | - @mcollina 12 | 13 | ## Links 14 | - **This Meeting**: 15 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-05-02.md 16 | - Notes: https://docs.google.com/document/d/1OKz_LnKIPLZvRQplawP2WkmmfnXuCdfQMFhwBycr4Ck/edit 17 | - You Tube: http://youtu.be/-Xcf8WPiH10 18 | - **Previous Meeting**: 19 | - Minutes: https://github.com/nodejs/diagnostics/blob/master/wg-meetings/2018-04-18.md 20 | - Notes: https://docs.google.com/document/d/14dRC5OT6gD0jP8YG6a7Iunahw86CaGKj2DmQsggq0Jg/edit 21 | - You Tube: http://youtu.be/hePMyxKiCf0 22 | 23 | ## Agenda 24 | 25 | Extracted from **diag-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. 26 | 27 | ### nodejs/diagnostics 28 | 29 | - Strategic Initiatives/Champions like we have on TSC [#185](https://github.com/nodejs/diagnostics/issues/185) 30 | - Question about what is the difference between an "issue" and a "strategic initiaitve"? 31 | - i.e., why not just use issues to track things & assign the issues to owners? 32 | - problem is that there are multiple issues under the same umbrella. 33 | - e.g., cpu profiling has 3 or 4 issues 34 | - **ACTIONS:** 35 | - [ ] Clean up issues 36 | - [ ] Create tracking issues for broad things that span multiple sub-issues 37 | - [ ] Discuss individual ownership of these tracking issues 38 | - [x] Add a Label for "Tracking-Issue" 39 | 40 | - Diagnostics Channel - Next steps [#180](https://github.com/nodejs/diagnostics/issues/180) 41 | - no update 42 | 43 | - Visualizing Async Context [#179](https://github.com/nodejs/diagnostics/issues/179) 44 | - Nothing here. 45 | 46 | - Diag WG Deep Dives - topics [#168](https://github.com/nodejs/diagnostics/issues/168) 47 | - Please chime in here for anything you'd like to deep-dive on 48 | 49 | - Node CPU Profiling Roadmap [#148](https://github.com/nodejs/diagnostics/issues/148) 50 | - PR open for code events listener 51 | - should land in next few weeks 52 | 53 | - \[async_hooks\] stable API - tracking issue [#124](https://github.com/nodejs/diagnostics/issues/124) 54 | - No exit criteria exists for async_hooks 55 | - Update from Yang on Promise Hooks performance 56 | 57 | - Different async_hooks behavior in Node 10 [nodejs/node#20274](https://github.com/nodejs/node/issues/20274) 58 | - not discussed 59 | 60 | - Proposal for Promise hooks to improve performance. [#188] 61 | - Doc is linked via issue 62 | - Goal w/ doc is to address perf impact of Promise Hooks 63 | - Measured impact on Hapi benchmark - 70% perf impact by introducing promise hooks 64 | - part of this is v8 getting faster with their promises. 65 | - as v8 gets faster, the gap increases, since promise hooks forces v8 onto slow paths that don't contain optimizations 66 | - One problem is per spec, every await has 4 promises 67 | - 1 of these is "throw-away" 68 | - "probably doesn't matter to most users" (big assumption in this statement) 69 | - use of promise hooks implies need to call 4 hooks for each promise, so async-await has large number of calls from native -> JS 70 | - these calls are missed by V8's optimizer 71 | - Doc lays out various options to address perf gap. 72 | 73 | - Async-context formalization and diagnostics support [#107](https://github.com/nodejs/diagnostics/issues/107) 74 | - we're tweaking terminology 75 | - will look to make a PR of documents into Diagnostics WG to force conversation 76 | 77 | - \[trace_event\] tracking issue [#84](https://github.com/nodejs/diagnostics/issues/84) 78 | 79 | - Showcasing some new profiling tools at the next WG meeting [#186] 80 | - Demo on "Bubble-prof" from @mafintosh 81 | - they will make this available to anyone that wants early access 82 | - Reach out @mafintosh or @mcollina for early access 83 | --------------------------------------------------------------------------------