Application is spread out across multiple clusters and traffic is routed to a cluster based on client location. How to have one Jaeger UI to see traces in all the clusters?
Is it possible to have collector,db,query and ui all in one cluster where all agents running in multiple clusters send their traces to? And if so is there a way to tag/label the span with cluster/region name?
There is no documentation on what the possible/best patterns are.
I am tagging this as a documentation request.
We don't have good support for multi-region setup yet, unless you're willing to ship all data in a single region.
For multi-zone setup within a single region, it is possible to run agents in all zones and instruct them to forward traces to collectors running elsewhere (we use this configuration at Uber). You can even run collectors in multiple zones, as long as your storage is regional (and ideally replicated across zones to be tolerate of a single zone failure).
Thanks @yurishkuro, could you in the documentation mention any caveats of a multi-region setup where all data is shipped to a single region?
The main caveats are:
If you architecture generally does not have cross-region calls, then it's better to run separate Jaeger installations per region. That's what we do at Uber. In our case we do have some percentage of requests going cross-region, and we don't yet have a good story for those. In my book I discussed several ways of dealing with that.
Thanks for explaining that @yurishkuro
Finally, as for accessing the various UIs, what do you think is better/what is used at Uber?
1.
jaeger-us-east.uber.com
jaeger-us-west.uber.com
2.
jaeger.uber.com/us-east
jaeger.uber.com/us-west
I don't think there's much difference, it's more about how your infra is configured.
Should we move this to documentation repository?
I'd keep it here for better discoverability. But no strong opinion.