Propagating context and tracing across your distributed process boundaries using OpenTelemetry

Everyone is building distributed systems these days. Some better than others. One thing the teams building and running distributed systems well have in common is they have very good observability of the components and services. Conversely, the teams that don't have good observability struggle when things go wrong in a distributed system because it's often terribly time consuming to put the pieces together to analyse the crime scene. The logs might sit in disparate log aggregation systems and even when in one place, leave you with having to do the hard work to correlate and visualize the system workflows yourself.

OpenTelemetry is an observability framework for cloud-native software which aims to solve some of these issues by having a common set of definitions of concepts around observability and exposing them to the tool of your choice.

In this talk, I examine how to propagate your tracing context across process boundaries and visualize the flow of requests through your distributed services (Microservices/Serverless/Other) easily using tools like Zipkin and Jaeger. We will see how to use already instrumented libraries and also how to propagate the trace information yourself. At the end of this talk you will know how to easily trace and observe distributed components of the systems you build.

Almost all software developers are building distributed systems to some degree. Teams that are new to the paradigm often don't pay attention to observability until they have a production system which is giving them grief. In this talk, I want to stress the importance of designing and building observable systems from ground up and what options to take when doing so. OpenTelemtry is going to be the industry standard pretty soon and hence it's important that developers have it in their peripheral vision.

Dasith Wijesiriwardena

Senior Software Engineer @ Microsoft

Melbourne, Australia

View Speaker Profile