How to trace through calls between http services, gRPC, and queues (aws sns / sqs). #2617
Unanswered
victorpacheco3107
asked this question in
Q&A
Replies: 1 comment 1 reply
-
In the java-instrumentation repository, there's already support for propagation of grpc calls, and I know there's ongoing work for propagation through AWS services as well. Here's the grpc support: https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/grpc-1.5/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_5 And here's the AWS support (I think): https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2 Does that help? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi everybody!
Currently in my company we were able to implement opentelemetry for distributed traceability between different calls of microservices based on http. We use a collector and jeager. Java as programming language and spring boot as development framework. That implementation was done a couple of months ago, so we used version 0.9.1.
We implement this using aspects to intercept http requests, and in clients we capture and inject the headers, as follows:
Server side
The aspect:
ClsUtilPropagator:
TextMapPropagatorImpl:
Client side:
In all clients, before making a request to a microservice, we call this method:
All this works perfectly, the spans are perfectly correlated between the different calls to the microservices.
But now we face a new challenge. From any microservice you can call other microservices exposed in gRPC. And from any microservice you can write to an SNS topic (aws), and from another microservice in charge of reading from the SQS queue (aws). As if that were not enough, we have new services developed in Golang.
Is there a way to be able to correlated the spans between java/go microservices through calls http, gRPC and message queues?
If so, what would be the way to achieve this? Could you do something like a generic propagator to work with http, gRPC and queues at the same time?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions