--
You received this message because you are subscribed to the Google Groups "Jaeger Tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-tracing+unsubscribe@googlegroups.com.
To post to this group, send email to jaeger-tracing@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jaeger-tracing/acff6eb7-87d3-4a3b-b006-c2b7ee75edb7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To post to this group, send email to jaeger-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jaeger-tracing/CAGf8jNAFMz3a148A6q%3DpvfMk%3DKZLvo5J4CEdE-q0tgb3zoXAPg%40mail.gmail.com.To post to this group, send email to jaeger-tracing@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-tracin...@googlegroups.com.
To post to this group, send email to jaeger-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jaeger-tracing/acff6eb7-87d3-4a3b-b006-c2b7ee75edb7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Jaeger Tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-tracin...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-tracing+unsubscribe@googlegroups.com.
To post to this group, send email to jaeger-tracing@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jaeger-tracing/2589a948-e535-4a72-b5a9-59c166916a84%40googlegroups.com.
Actually, there are two parts here. First, it's the question of where the business logic for aggregation should reside. We recently made a decision to write that logic in Go, because we already have a lot of infrastructure in Go for reading traces from storage, converting to domain model, applying various adjustments / enrichments. Rewriting all of that in Java was rather wasteful. So our current data pipeline looks something like this:Stage 1:
- collectors write spans to Kafka
- a Flink job applies time window grouping and produces a stream of trace IDs that are considered "completed" (as in: no more spans are expected for these traces)
- completed trace IDs are written to another Kafka topic
After this first stage, a number of parallel aggregation jobs are running:Stage 2:
- read completed trace IDs from Kafka
- make an RPC call to a Go service
- Go service loads the trace from storage, extracts statistics sought by the job, and returns them (e.g. a set of dependency links [parent, child, callCount])
- Flink job then aggregates statistics and writes the summary to storage even N minutes
In this approach, the amount of Java code is fairly minimal, and the actual streaming framework is not that important, it can be Flink or Spark or Storm, whatever. We decided to try Flink instead of Spark because of internal politics and levels of infra support.Our previous Spark solution that was mentioned in the blog post was very different, it was a batch, not streaming, solution, all of the code was in Scala, and the job had to read the entire Cassandra database once a day, which made it rather fragile.Hope that helps.
On Thu, May 4, 2017 at 3:15 PM, Gary Brown <gary....@gmail.com> wrote:
Hi
In the original architecture diagram from the post https://eng.uber.com/distributed-tracing/ it shows Apache Spark. However in recent discussions Apache Flink has been mentioned as an alternative.
Would it be possible to provide the details behind the switch?
Regards
Gary
--
You received this message because you are subscribed to the Google Groups "Jaeger Tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-...@googlegroups.com.
To post to this group, send email to jaeger-...@googlegroups.com.