-
Notifications
You must be signed in to change notification settings - Fork 15
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
Dependency graph: per topic aggregation. #5
Comments
Thanks @Karchevskiy ! I think this issue is related openzipkin/brave#895. I look forward to put some time on bump the discussion again but here are some thoughts on what's missing: If you follow the discussion, there seem to be a (potential) mismatch between what the dependency graph currently express and what we want to achieve: a topic-based relation between producers and consumers, instead of cluster-based. We have to look over the full pipeline to see where the mismatch might be:
As this value--remote service name-- is defined once, we can't redefine it on-the-fly, when creating spans. Though, initially the referenced issue is a feature-request to support this as a concat between cluster name and topic instead of only cluster name. Another initial/naive alternatives that I have in mind:
Both involve a considerable change and additions to the current model. |
Thank you @jeqo for the detailed answer. It seems like the easiest workaround (may be not fast, but should working, if I understood correctly) is to simply overwrite zipkin2.collector.Collector#record endpoint data (add concatenation with any related to Kafka tags data) without changing any client configurations. sorry if this barbarism breaks Zipkin's philosophy (: |
Depends what you're trying to achieve. If you are looking to change the kafka service name to something like kafkaTracing = KafkaTracing.newBuilder(messagingTracing)
.remoteServiceName("my-broker_topic1")
.build(); Then service dependency graph will show relationships based on kafka topics and not just kafka. Will this work on your context? |
PS If you are using Brave, FinishedSpanHandler was made exactly for things
like this.
…On Thu, Mar 26, 2020 at 10:47 PM Jorge Quilcate Otoya < ***@***.***> wrote:
Depends what you're trying to achieve. If you are looking to change the
kafka service name to something like kafka+[topic_name] and you have 1
topic per client, you can set that directly when instatiating KafkaTracing
:
kafkaTracing = KafkaTracing.newBuilder(messagingTracing)
.remoteServiceName("my-broker_topic1")
.build();
Then service dependency graph will show relationships based on kafka
topics and not just kafka. Will this work on your context?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#5 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAPVVY4KHJE2C47K5JLRSDRJNTJBANCNFSM4LQQH4FQ>
.
|
@Karchevskiy ⬆️ |
Hi Jorge! I am really inspired by the work you have done in the direction of building distributed systems traces for systems contains kafka as message broker service. You probably also explored the issue of building a diagram of component relationships. It seems that kafka should not be a single node on such graphs, since it is often used as a transport for asynchronous operations and working on different way if compare with rest-dependent nodes. The default connectors provide information about the topics and types of messages sent (at least for java implementations). Whether someone uses aggregation on diagram not by the service name (kafka), but by the attribute indicating the topic or even message type. Were there any similar solutions?
The text was updated successfully, but these errors were encountered: