Service Graph
Because a Service Mesh like Istio has support for emitting traces, it becomes possible to understand the dependency graph of an application between services.
This can provide some important perspectives:
- What other services/functions is a given application dependent on? Similarly, what other services depend on this one?
- Are errors being generated in response to only a specific service, as opposed to other services also making calls?
- What is the relative frequency of calls from one service to another? Where is most of the traffic going?
- etc.
Other benefits from detecting this information:
- Automatically generating a dependency graph could also be interesting from a CI/CD point of view, in knowing what to test/validate after a change to one particular service.
Jaeger in fact already has a relatively primitive view of this currently with its dependency diagram, and plans to continue to enhance this: https://www.jaegertracing.io/docs/roadmap/#path-based-dependency-diagrams
Istio can also generate a service graph by itself as well: https://istio.io/docs/tasks/telemetry/servicegraph/
StackDriver and DataDog also have similar features.
Edited by silv
