-
Notifications
You must be signed in to change notification settings - Fork 923
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
Can't found the trace chain between Armeria service when use opentelemetry as java agent #5239
Comments
Hi, I think this is probably better to ask to the opentelemetry team. When I tried setting the exporter to Checking the code at otel side for the java agent, I couldn't find any points which actually exports a span. Do you mind opening a thread at the otel instrumentation side and mentioning me? |
Sure, I will create it later |
@jrhee17 Already created the issue in the otel instrumentation side, -> open-telemetry/opentelemetry-java-instrumentation#9695 . |
Thanks for the ping, left a comment |
It seems still have issue when web client call Service A's GRPC method, and service A's GRPC method will call service B's GRPC method. Call chain is |
seems the snapshot version also miss the client span if the call chain is
|
I see, my guess is that grpc doesn't use My guess is that the following might be a better injection point, but I'll have to do some testing armeria/core/src/main/java/com/linecorp/armeria/client/AbstractClientOptionsBuilder.java Line 503 in bb79158
|
I create other issue in OTEL side, just for tracking |
Left a comment 😄 |
The related issue in opentelemetry-java-instrumentation open-telemetry/opentelemetry-java-instrumentation#9726 has already been closed with this PR, so I think we can close this one too. Now if we use the opentelemetry-javaagent-2.4.0-SNAPSHOT.jar, it can show the trace chain between Armeria services. @jrhee17 Feel free to close this issue. |
Thanks a lot for reporting, @cxjava! 😉 |
Hi Armeria team,
Recently I try to use the opentelemetry in our armeria service, but found can't find the trace chain in the jaeger.
for example: spring-boot-tomcat -> spring-boot-jetty -> demo, it will found the trace chain in the jaeger normally,
the result in our service is that: service A call service B , service A and service B is use the build in armeria server( not tomcat and jetty). Only found the service A in the Jaeger, don't found the Service B in the Jaeger.
versions
code
to make it sample, I try to reproduce it in the armeria example project.
call chain is : spring-boot-jetty -> spring-boot-tomcat -> spring-boot-minimal
spring-boot-minimal(no changes, port is 8080):
how to run spring-boot-minimal
spring-boot-tomcat(change port to 8180) :
how to run spring-boot-tomcat
spring-boot-jetty(change port to 8280):
how to run spring-boot-jetty
When I run
curl http://localhost:8280/hello
, the response isHello, from jetty & Hello, from tomcat & Hello, minimal! This message is from Armeria annotated service!
But the call chain is like below, trace id is end in the spring boot minimal.
don't find the spring-boot-minimal:
If I call the spring-boot-minimal
curl http://localhost:8080/hello/test
, it will work fine and can find the trace in the Jeager.end
Seems opentelemetry works fine with tomcat and jetty.
I am not sure about that is it the correct way armeria integrate with opentelemetry.
I also read some issue such as #4570 , don't find any solution. And I also don't know it is the issue of Armeria, or an issue of opentelemetry java agent.
Waiting for your response~
The text was updated successfully, but these errors were encountered: