jaegertracing/jaeger

Find Traces Matching Multiple Services

开放

#423 创建于 2017年9月24日

 (8 条评论) (17 个反应) (0 位负责人)Go (2,326 个派生)batch import
help wantedui

仓库指标

星标
 (18,974 个星标)
PR 合并指标
 (平均合并 4天 11小时) (30 天内合并 85 个 PR)

描述

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.

贡献者指南