Skip to content
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

[async_hooks] stable API - tracking issue #124

Closed
13 of 20 tasks
AndreasMadsen opened this issue Nov 20, 2017 · 32 comments
Closed
13 of 20 tasks

[async_hooks] stable API - tracking issue #124

AndreasMadsen opened this issue Nov 20, 2017 · 32 comments

Comments

@AndreasMadsen
Copy link
Member

AndreasMadsen commented Nov 20, 2017

I posted requirements list for getting async_hooks into stable a while ago (nodejs/node#14717 (comment)). This is a very similar list.

Internal Technical

Internal Non-Technical

External Non-Technical

After Stable

@AndreasMadsen
Copy link
Member Author

/cc @nodejs/async_hooks @nodejs/diagnostics

@AndreasMadsen
Copy link
Member Author

/cc @jasnell who sometimes asks me about this

@refack
Copy link

refack commented Nov 20, 2017

@AndreasMadsen how about adding some external criteria, like TC39 uses or N-API (nodejs/node#14532)

  1. major APM vendor that uses async_hooks (N/Solid)
  2. npm modules with at least 5000 DL/month based on async_hooks (https://www.npmjs.com/package/trace & https://www.npmjs.com/package/cls-hooked)

@AndreasMadsen
Copy link
Member Author

@refack added your 1. and 2. to the list. I'm not sure what you mean by TC39 uses. Regarding N-API I don't see why that should be a requirement. async_hooks has its own native Embedder API outside N-API, we can mark that as stable without N-API. In fact N-API shouldn't be marked stable before the async_hooks native Embedder API is marked stable since they depend on that. But async_hooks doesn't depend on N-API.

@refack
Copy link

refack commented Nov 20, 2017

Thanks. I just referenced TC39 and N-API as processes that use exit criteria that are independent of the development process, but take into account ecosystem adoption. So I agree that stability of N-API and async_hooks are independent (except for the embedder API)

@vdeturckheim
Copy link
Member

FWIW, We plan to start using Async Hooks in Sqreen Agent in the upcomming weeks.

@jkrems
Copy link
Contributor

jkrems commented Nov 29, 2017

Link by @watson for elastic: elastic/apm-agent-nodejs#77

@kjin
Copy link
Contributor

kjin commented Nov 29, 2017

PR to add async_hooks in Stackdriver Trace: googleapis/cloud-trace-nodejs#538

@AndreasMadsen
Copy link
Member Author

Updated "Deprecate setTriggerId"

@AndreasMadsen
Copy link
Member Author

Added:

@bmeurer
Copy link
Member

bmeurer commented Jan 16, 2018

So based on discussion in the benchmarking WG meeting yesterday I did setup test cases to run the Promise heavy Bluebird and Wikipedia benchmarks (used by the V8 project) with and without async_hooks to answer the first question in this thread, and slow-down is pretty significant even with just an empty init hook.

@mhdawson suggested to kick-off some discussion on the performance via nodejs/benchmarking#188 and bubble up the issue to make sure we consider the performance aspect before async_hooks goes out of EXPERIMENTAL.

@mike-kaufman
Copy link
Contributor

FYI I added an item to list above to identify the perf impact we're willing to tolerate from async-hooks. Current benchmark data cited in nodejs/benchmarking#181 show a ~2x-3x slowdown.

@bnb
Copy link

bnb commented Apr 16, 2018

Any thoughts on if this will be coming out of Experimental before v10 launches? Looking at the remaining items I can't quite tell if there are still significant barriers because I'm not familiar enough with the subject 🤔

@github-actions
Copy link

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.

@github-actions github-actions bot added the stale label Jul 19, 2020
@kamalmarhubi
Copy link

I figure this shouldn't go stale since it's a long-lived tracking issue?

@adamyeats
Copy link

Hey team, sorry it has taken me so long to follow up. Last time we spoke I believe you asked me to experiment with the async_hooks API more. We now have an async_hooks implementation in production in our Node.js integration - although it is not much different (if at all) from Cloud Trace's implementation.

I have some thoughts and feedback on the API that it would be great to sync with you all on at some point (if you have time), but it would be good to know if there's anything further you'd like me to do to move this forward?

@mhdawson
Copy link
Member

@xadamy maybe you can plan to come ot the next diagnostics meeting and give the team a runthrough of your thoughts.

@mhdawson
Copy link
Member

closing in favor of #437

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests