-
Notifications
You must be signed in to change notification settings - Fork 857
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
Client span missed when Armeria GRPC sever A call Armeria GRPC sever B #9726
Comments
Probably requires adding instrumentation for armeria grcp client/server. |
One possible quick fix may be to change the advice location to main...jrhee17:opentelemetry-java-instrumentation:feature/support-armeria-grpc |
|
@laurit Is there any plan to add instrumentation for armeria grcp client/server base on jrhee17 andikhoon's comment ? |
@cxjava Have you tried using grpc instrumentation from https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/grpc-1.6/library as @ikhoon suggested? Perhaps a dedicated instrumentation isn't needed at all? |
Hi @laurit, do you have any concern about open telemetry java agent support for armeria grcp client/server not only open telemetry dependency? |
Hi @laurit , I hope this email finds you well. I would like to propose this feature again that could greatly benefit this project and enhance opentelemetry observability capabilities. As you may be aware, I have recently encountered a scenario where we need to leverage the power of OpenTelemetry's Java Agent. However, I do not anticipate the need to introduce dependencies such as There is an implementation contributed by @jrhee17 that perfectly aligns with our needs. This implementation allows us to utilize the OpenTelemetry Java Agent without the need for additional dependencies. I have successfully built and tested the jar locally, and it fulfills our requirements flawlessly.
By adopting jrhee17's implementation, we can benefit from enhanced observability capabilities while maintaining a lean and efficient codebase. This approach aligns with our project's principles of minimizing external dependencies and promoting code clarity. I kindly request your consideration and approval to merge jrhee17's implementation into this codebase. This addition will not only streamline our development process but also ensure that we maintain a high level of code quality and maintainability. I believe that other Armeria users also hope that this becomes a natively supported feature for OpenTelemetry Java Agent. Please let me know if you require any further information or have any concerns regarding this. I would be happy to provide additional details or clarify any aspects of the proposed feature. Thank you for your time and consideration! Best regards the screenshot and opentelemetry java agent
|
Describe the bug
When user have two Armeria GRPC services:
Armeria GRPC services A
andArmeria GRPC services B
if the call chain is
web client -> Service A's GRPC method -> Service B's GRPC method
The client span is missed,
server A span -> client span(❌missed❌) -> server B span
server A and server B have different trace id.
Steps to reproduce
Reproduce it in the armeria grpc example project.
copy the grpc folder to grpc2.
for original grpc folder, don't need to do too much changes, just need add the gradle setting:
=======================
for grpc2 folder, need update the first method in
HelloServiceImpl
:update default port in
main
method:update the default JVM args:
When call
localhost:8180
the response is :Expected behavior
Can find the two span in JEAGER:
Actual behavior
but only find the one span in each service:
grpc service:
grpc2 service:
Javaagent or library instrumentation version
1.31.0
Environment
JDK: corretto-17.0.6
OS: macOS 13.6
Armeria: 1.25.2
Jaeger v1.48.0
Additional context
@laurit maybe need to do some enhancements like this PR
CC: @jrhee17
The text was updated successfully, but these errors were encountered: