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/

servicegraph-example

StackDriver and DataDog also have similar features.

Edited Sep 07, 2018 by silv
Assignee Loading
Time tracking Loading