-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
APM summit #58
Comments
What does the acronym APM mean? "Asynchronous Programming Model" doesn't make sense to me in this context. |
@watson Thanks for posting this. APM summit would be great! Please count me and @matthewloring in as well. It would be great if we could formalize on some generic APM tracing protocol. Insofar as context loss due to user-land queuing is concerned, I started writing this simple module that could be a good starting point: https://github.com/ofrobots/context-is-everything. The basic idea this could be a central protocol that context observers (APM modules, continuation-local-storage, etc.) and user-land queuing modules (mongodb, mysql, redis, grpc, etc.) could both sign up to in order to propagate async context. Here's an example patch on how continuation-local-storage could work with this module: ofrobots/node-continuation-local-storage@8fca413. @AndreasMadsen APM stands for Application Performance Management. |
Sounds good to me as well. @tobespc and @mchamberlain FYI |
Thank's for putting that all together @watson - I'm obviously in as well. |
iirc ES Modules presents some important challenges for APM, mainly due to their static nature and the standard APM monkey-patching pattern, that should probably be on the agenda unless I'm not remembering the details correctly. It's really important that we have APM in the Modules discussion so we can move forward without leaving a massive chunk of our tooling ecosystem behind. |
Indeed. @bmeck has already contacted some of us about ES6 module concerns. It'd be good for us to find a solution together face-to-face. |
Thanks @watson, I'd certainly like to meet you all F2F 👍 /cc @avanderhoorn @nikmd23
Could also help to have some open discussions in this repo now. Some topics from this thread which could be issues/topics:
I didn't specify what the payload objects would look like, but was prototyping architecture and API for this in #50 and joshgav/node-trace. A few more places we might start from:
Also see #53 for the work @matthewloring and @ofrobots are doing.
My module referenced above integrated into core: joshgav/node/trace-event-integration. Seems like putting a trace system in core will be necessary to enable data collection without requiring developers to explicitly opt-in (e.g. by importing a module). |
In addition to the tracing facilities needed, I think we should also define metrics like event loop timings that should be provided via a potential API. |
👍 for providing internal APIs for event loop timing. I'm currently using http://npm.im/loopbench, which is far from ideal. |
+1 for the API to get pre-aggregated metrics from node core and solve various problems for each metric type:
Instead of handling all kinds of events (like GC) and run own aggregations in user land, it might be much more efficent when stats could be collected in node core and emitted in a defined interval e.g. every 10 seconds or once a minute. For example listening to each GC event (as we do today), would trigger many times the function that collects metrics, while an internal function could just update internal counters/arrays and emit the event once a while.
All values should be reset in after emitting the 'stats' event - I've seen often API's that just count up and agents collecting this data have to keep last value and calculate the differnence to current value, another waste of CPU cycles ... BTW, I wrote a while ago an article about Node.js metrics and hope it is helpful for the discussion: https://sematext.com/blog/2015/12/02/top-nodejs-metrics-to-watch/ |
With one month to go until Node Summit and flight bookings coming up, I think we should announce the APM Summit and set a time and date (25th or 26th of July). After the date has been set: |
AppNeta seems to be unwilling to send me down for this. 😞 |
Please sign me up for this summit. We've been working on USDT support for perf and ebpf on Linux, and would also like to discuss how we could more tightly integrate this into restify. |
(For people like me who had to google what USDT stands for: http://www.brendangregg.com/blog/2015-07-03/hacking-linux-usdt-ftrace.html) |
For additional details on USDT: see this issue @brendangregg has filed #61 |
Thanks @yunong; that's the Linux perf_events work, which is all mainline. There's also the Linux bcc/BPF work, where the BPF is mainline and bcc is a python add-on. @goldshtn wrote a post showing initial Node.js USDT support here: http://blogs.microsoft.co.il/sasha/2016/03/30/usdt-probe-support-in-bpfbcc/ |
Important update: The APM Summit was on the agenda at yesterdays Node.js Diagnostics Working Group meeting and it was decided to not have it at the NodeSummit this month. If you're interested, you can watch the APM segment from the meeting on YouTube or read the minutes. Action needed:Please fill in this Doodle if you want to attend the APM Summit and mark the dates / locations you are able to attend: http://doodle.com/poll/utqxycqki8chyddd |
Opened a continuation of this as a proposal for the Austin collaboration summit: openjs-foundation/summit#30 |
Closing in deference to Austin Summit thread, @watson - please re-open if you'd like. Thanks! |
APM stands for Application Performance Management.
We had a really good tracing/APM session at NodeConf Adventure two days ago with many of the APM vendors represented (NodeSource, Dynatrace, AppNeta and Opbeat).
There seemed to be a general agreement that we would all benefit from working closer together. A first step in this process would be to arrange an APM summit and meet up in person. Kind of like the error summit held this January.
It would be most beneficial if we could narrow the scope of the summit as much as possible. I'd like if the fist item on the agenda could be to lay out a roadmap of what we would like to achieve, but please pitch in below.
I suggest that we have the summit at NodeSummit in San Francisco on July 25th (the day before the conference starts). I've heard they have an extra meeting room that we might be able to borrow (I'll follow up with more details).
Here a some of the notes from the NodeConf Adventure session:
I most likely forgot some of what we discussed, so please add your comments below. In fact, all comments are highly appreciated 😃
Action needed:
Please fill in this Doodle if you want to attend the APM Summit and mark the dates / locations you are able to attend: http://doodle.com/poll/utqxycqki8chyddd
/cc @othiym23 @brycebaril @danielkhan @groundwater @Qard @dshaw
The text was updated successfully, but these errors were encountered: