Tracing

Overview

Produces the information required to observe series of correlated operations in a distributed system. Once collected they show the path, measurements, and faults in an end-to-end transaction.

Best Practices

  • Ensure that at least key business transactions are traced.

  • Include in each trace necessary information to identify software releases (i.e. service name, version). This is important to correlate deployments and system degradation.

  • Ensure dependencies are included in trace (databases, I/O).

  • If costs are a concern use sampling, avoiding throwing away errors, unexpected behavior and critical information.

  • Don't waste a lot of time for no reason, use existing tools to collect and analyze the data.

  • Ensure personal identifiable information policies and restrictions are followed.

  • Azure Monitor - Umbrella of services including system metrics, log analytics and more.

  • Jaeger Tracing - Open source, end-to-end distributed tracing.

  • Grafana - Open source dashboard & visualization tool. Supports Log, Metrics and Distributed tracing data sources.

Consider using OpenTelemetry as it implements open-source cross-platform context propagation for end-to-end distributed transactions over heterogeneous components out-of-the-box. It takes care of automatically creating and managing the Trace Context object among a full stack of microservices implemented across different technical stacks.

Last updated