SkyAPM / SkyAPM-nodejs

The NodeJS server side agent for Apache SkyWalking
Apache License 2.0
128 stars 86 forks source link

Support trace eggjs framework #18

Closed ascrutae closed 6 years ago

ascrutae commented 6 years ago

The eggjs is the famous web framework that purpose to build better enterprise framework and apps. And Skywalking intent to support trace eggjs framework in next 0.2.0 version. @eggjs

wu-sheng commented 6 years ago

Good proposal. @ascrutae

FYI @eggjs community, hope we can have a successful integration in here. Consider we are doing good in SOFA(@Alipay) framework. I am very positive. Also, look forward to our cooperations about sofa-mosn too.

popomore commented 6 years ago

I prefer to use egg-opentracing, maybe skywalking can implement collector like egg-opentracing-zipkin

wu-sheng commented 6 years ago

I prefer to use egg-opentracing, maybe skywalking can implement collector like egg-opentracing-zipkin

@popomore OpenTracing is more complex than you think. I am an OpenTracing Specification Council member, as far as I have known that, we didn't want to provide this as the only solution.

We can work on JS-OT bridge someday, but not today.

And if you are following Zipkin twitter, you will know, APM(like SkyWalking) is much more complex than tracing.

So, let us try js auto instrument first. Hope this can work out.

popomore commented 6 years ago

I agreed. OpenTracing is complex than I think, but auto instrument is not stable.

If framework, npm package or application has changed the code which OpenTracing is injecting to instrument, it will lost trace data, maybe will break the application.

ascrutae commented 6 years ago

@popomore if framework has changed, and the instrumentation will also change. And if the framework and instrumentation are incompatible, Agent will not instrument this framework, at that time, The Agent lost the data that the instrumentation generated, not whole trace data.

wu-sheng commented 6 years ago

I agreed. OpenTracing is complex than I think, but auto instrument is not stable.

@popomore Definitely. Totally agree with that. But, since SkyWalking auto instrument will not be integrated into eggjs framework. So it is just a risk for SkyWalking. Which always exists in all of our agents(Java, .NET, Nodejs).

Anyway, the end user will be asked to add a single line to there source codes. I think should be good enough.

wu-sheng commented 6 years ago

@popomore Our auto instrument agent is ready to go. I want to explain more that, Apache SkyWalking is not just a tracing solution. We are an APM, also guarantee the support for egg applications.

Could you point us a place, where we could contribute a guide and tutorial pages in egg official website? We think this integration is so important for our both communities. Like we do with SOFA team.

popomore commented 6 years ago

Recommend put it on https://github.com/eggjs/awesome-egg

wu-sheng commented 6 years ago

@popomore Should we create a new section? Such as APM solution? I think SkyWalking us neither a framework, nor a plugin.

popomore commented 6 years ago

Agreed

wu-sheng commented 6 years ago

Thanks for the guide. I will send the pull requests after release and article post.

ascrutae commented 6 years ago

@popomore I had send the https://github.com/eggjs/awesome-egg/pull/28 to awesome-egg, Please contact me if you have any questions

wu-sheng commented 6 years ago

That PR merged. Closing this.