These are my raw notes taken at the Node.js Collaboration Summit in Berlin. Sorry for the mess 馃槄. I'll update when new stuff comes up. Feel free to add stuff I missed 馃槂
Day 1: 2017-05-04
Problem: How do we make it easier for APM vendors to instrument node-core and userland modules without having to monkey-patch everything (even after AsyncHooks lands)?
Suggestion: We need to make it easier for module owners to know how to structure and build their modules so they are easier to instrument. We can make a guide on https://nodejs.org/en/docs/guides/ that specifies how module owners should make their modules easy to instrument.
Topic ideas:
- How to use the AsyncHooks Embedder API
- How to send detailed tracing events to APM vendors using some API
Other notes:
- This should be a living document
- Discussion on this could be had on a PR that鈥檚 opened to the nodejs.org website creating this guide
Problem: Can we standardise the way tracing information is sent from an instrumented module (called module-x below) to an APM agent?
Suggestions:
- Maybe we can use the V8 trace events API
- Pros: No need for module-x to know about the APM agents
- Cons:
- Currently no way to bind the trace event to the current context
- Might be expensive to cross the barrier into C-land
- Might not be detailed enough
- Overhead of running in production?
- Alternatively invent a new API in JavaScript land
- This could either be in Node core or a userland module
- If it鈥檚 a userland module, then module-x needs to detect if it鈥檚 present before it can send events to it. The APM agents need to do the same.
- What if there鈥檚 multiple versions of this module installed?
- Research if other languages have something similar
These are my raw notes taken at the Node.js Collaboration Summit in Berlin. Sorry for the mess 馃槄. I'll update when new stuff comes up. Feel free to add stuff I missed 馃槂
Day 1: 2017-05-04
Problem: How do we make it easier for APM vendors to instrument node-core and userland modules without having to monkey-patch everything (even after AsyncHooks lands)?
Suggestion: We need to make it easier for module owners to know how to structure and build their modules so they are easier to instrument. We can make a guide on https://nodejs.org/en/docs/guides/ that specifies how module owners should make their modules easy to instrument.
Topic ideas:
Other notes:
Problem: Can we standardise the way tracing information is sent from an instrumented module (called module-x below) to an APM agent?
Suggestions: