DiTrace is a distributed tracing system.
But with different and more simple architecture.
How it works¶
Every time, when one of distributed system’s microservice made a call to another microservice, the data object, called “span” should be created.
Span has an arbitrary number of annotations such as request and response parameters (timestamps, url, response code, etc).
Spans are belong to one trace in hierarchic order with one root span.
Microservices are responsible for:
- Creating traces, spans and sending traceid and spanid within requests between each other.
- Collecting spans and sending it to the DiTrace gate.
Look DiTrace gate API for more details.
DiTrace gate are responsible for:
- Collecting and grouping spans from multiple microservices
- Saving traces to elasticsearch
Elasticsearch has a various stats aggregations for data analysis. UI is an visualization tool for this aggregations and data.