-
Notifications
You must be signed in to change notification settings - Fork 784
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
Add remoteEndpoint in RPC spans #1039
Comments
Can you elaborate exactly on what in your opinion is missing in the current instrumentation? I don't think I follow. |
For example, from zipkin spans we collected,
Above span has client-side service name as Similarly in SERVER spans, we only have localEndpoint as the server-side service name, but not knowing which service is calling it. Maybe we can set |
Isn't it Zipkin that has the data on both sides (client and server) and can come to such conclusions properly? |
True, but we would like to conclude the whole RPC in source -> destination form in a single span. The advantage is that we can subscribe to the sleuth/zipkin MQ broker and streaming through spans to compute analysis data without saving and joining with other spans.. The background is that we want to build performance analysis functions based on zipkin data. Zipkin can query traces from the whole trace aspect vertically. This is nice, but it would be even better if we can look at service endpoint aggregations to give us horizontal statistics. Hope this explains what we want to achieve. |
WDYT @adriancole ? |
in HttpTracing component, you can scope spans to a service with httpTracing.clientOf("your-serviceName").. this is helpful when the remote service name is static for the client. of course you can override this explicitly with Span.remoteEndpoint. However, it might not be ideal as setting this could remove better data already set. Will be interesting to see the api or code impact of what you are interested in. |
If we could read |
two things here.. in the next patch of sleuth, Span.remoteServiceName(your_name) will be exposed for writes. In the next minor (hopefully) brave itself will have a handler for aggregation openzipkin/brave#557 either way I think there's no action to take in sleuth at the moment |
This is an enhancement request to support zipkin remoteEndpoint in auto-instrumented RPC spans, something like examples from the docs at https://cloud.spring.io/spring-cloud-sleuth/multi/multi__features.html#_rpc_tracing:
This would be a nice feature and would open up opportunities for users to stream through the spans, and build up service performance analytics without cross-joining with other spans.
For clients, this would require all RPC clients, e.g. FeignClient, to build spans with additional target service names. For server side spans, not sure it requires according changes.
Let me know if this makes sense.
The text was updated successfully, but these errors were encountered: