and propagate it across processes • the correlation id identifies the business activity • application instances send instances to a central service • tools: ELK, Papertrail, Loggregator, graylog, Splunk
centralised logging but with structure • view end-to-end latency graphs (traces) in near real time • academic paper Dapper (from Google) • span • trace
events and tags • example: sending an RPC call or sending an RPC response. • have an ID, and another ID which identifies the trace • other data: description, timestamped events, key-value annotations (tags)
common communication channels (HTTP client integration, Asynchronous communication, Messaging, etc…) • adds the trace and span ids to the Slf4J MDC (Mapped Diagnostic Context) • records timing information • sampling • propagates the IDs (trace, span) in-band and the rest (tags, annotations) out-of band
distributed tracing system • OpenZipkin is a GitHub organisation • aggregates timing data that can be used to track down latency issues. • the community is starting to standardise around Zipkin
Zipkin collectors. • via HTTP (spring-cloud-sleuth-zipkin) • via Spring Cloud Stream (spring-cloud-sleuth-stream) • the spans are stored into a database (mysql / cassandra) • a UI is provided which is using an REST API to query the database