jaegertracing/jaeger

Find Traces Matching Multiple Services

Open

#423 opened on Sep 24, 2017

View on GitHub
 (8 comments) (17 reactions) (0 assignees)Go (18,974 stars) (2,326 forks)batch import
help wantedui

Description

Counterpart to UI ticket https://github.com/jaegertracing/jaeger-ui/issues/180

Currently, you can only search spans belonging to a one service. It would be nice if you could find traces belonging to multiple services. Then, you could search tags where error:true on all tags or search for traces which include multiple services.

Implementation plan:

  • define a new Storage Capability property indicating if multi-service search is supported (default: not supported)
  • change the UI to receive this flag via existing capabilities mechanism and allow / disallow not specifying service name in the search panel
  • implement multi-service search in memory store (should be trivial)
  • implement multi-service search in Elasticsearch / Opensearch (probably the easiest across real backends)
  • try to implement it in Badger (difficulty: unknown)
  • for Cassandra, introduce another flag to allow / disallow multi-service searches. The motivation is that with the current indexing scheme the only way to support multi-service search is by reading all service names and iterating across all of them (which I think what Zipkin implementation did). This might work for small deployments, but would be useless for large companies like Uber, so they would likely opt to disable it.
    • Another possibility is to use secondary index in Cassandra. The current schema is not designed for that, so difficulty: unknown.

Contributor guide