Dasith Wijesiriwardena

Information & Communications Technology

Software Design Software Development Software Architecture .net core Event Sourcing Domain Driven Design

Melbourne, Victoria, Australia

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 Consultant @ Microsoft (Azure Cloud & AI Team)

Dasith is a solutions architect, full stack .NET developer with distributed systems focus, keen problem solver and an improving cricketer. He's got close to 2 decades of experience designing and building software solutions and loves all things technology. After leading the development of an ERP solution for the construction industry and working on trade printing software for a while he used to work as a lead consultant for Readify (Telstra Purple) and currently practices his trade as an Application Development Consultant for Microsoft working with clients of all sizes. As a consultant over the last few years he's worked on a broad technology stack which consists of all things from Serverless to IoT. He is a recovering competitive fps gamer who still talks about things like mouse sensitivity and ping over a frothy beverage.

  dasith.me (blog)

Dasith's full speaker profile