-
Notifications
You must be signed in to change notification settings - Fork 337
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
Elastic APM Agent distributed tracing support #517
Comments
@AriPaaWun Hi Ari, Could you please describe, at a conceptual level at least, how you'd see a feature like this working in http-client? What kind of API do you have in mind? |
Of course. We are using Elastic APM agent to monitor our services. Part of this monitoring is request tracing. A request to our backend creates a transaction where all inner operations and outgoing requests (by http-client in most cases) are logged and visualised in our Elastic stack. For the outgoing requests to show the full trace of the second and subsequent backends there must be a distributed tracing header in the call. Elastic APM agent does distributed tracing by adding the Elastic offers a Plugin API that supposedly can be used to instrument other HTTP clients not supported out-of-the-box. While I was looking into this, I ran into two problems.
Easiest for me and other users of HTTP Kit and Elastic APM agent would be if HTTP Kit support was added to Elastic APM agent and we could just update to the newest versions. |
Hi Ari, thanks for the extra info.
I'm sorry, I have no involvement in or familiarity with Elastic APM, so can't advise on that.
Would it be possible to describe precisely how you'd need the http-kit API to change? What exactly would it need to be able to open/do/provide, that isn't currently the case? As a first step, we don't need to know how the functionality should be implemented - just a clear understanding of what the desired functionality is. The more clear you can be, the more likely it is that someone here will be able to provide feedback on feasibility and/or potentially assist with getting in the necessary support if it's indeed lacking. E.g. when I call Cheers! |
The Clojure API doesn't need to change, I think. But the underlaying Java class(es) would need some changes for the instrumentation to be possible. At the least it should be possible to read Headers from The other instrumentations in
Above example from this RequestHeaderAccessor. I couldn't find similar HttpRequest class in http-kit's code. If the Please keep in mind that my experience with this kind of instrumentation is very limited. |
Having given it some thought, I may have an idea, it also might coincide with needs for open telemetry or other metrics frameworks; |
Well, yes, that sounds like it could do the trick. |
any updates on this ? |
@bsless's idea above sounds broadly reasonable to me - would be open to seeing a PR in that direction, or concrete feedback advocating for another approach 👍 |
This is a feature request.
It would be nice if HTTP Kit client would support Elastic APM distributed tracing or W3C Trace Context.
I spent a few hours trying to figure out how I could do a plugin for Elastic APM Agent, but in the end I couldn't see any feasible solution.
Maybe it would easier for people who understand http-kit better.
In the meanwhile, it is possible to add the traceparent header per application, but there are a lot of applications where I need to do this.
The text was updated successfully, but these errors were encountered: