We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Observability-driven development with OpenTelemetry

Formal Metadata

Title
Observability-driven development with OpenTelemetry
Subtitle
Use traces to enrich your integration tests!
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Testing large systems with multiple microservices is hard to understand. You need to understand the whole system, all connections, and how the microservices interconnect. With tracing you get a map of everything which makes your whole system easier to understand. I want to showcase traditional test-driven development vs the new observability-driven development. I'll use open-source tools like Tracetest and OpenTelemetry to showcase how to use trace-based testing and enrich integration tests with trace data. What's the problem? Testing large systems and multiple microservices is hard to understand. Such a big system can quickly become convoluted. You need to be a specialist in that area to understand the whole system, all connections, and how the microservices interconnect. How do we solve it? With tracing you get a map of everything which makes your whole system easier to understand. I want to showcase traditional test-driven development vs the new observability-driven development with Tracetest and OpenTelemetry. With observability-driven development, you can improve your traces by using trace-based testing to enrich integration tests. No more black boxes when running integration tests. You'll know exactly what's happening in each microservice. You'll also be able to add test specs and assertions for every step the transaction takes through your distributed system! What's our production use case? Test-driven development is your thing. But, you’re using OpenTelemetry for traces? You have everything you need to move to observability-driven development. It will leverage your OpenTelemetry traces to create integration tests with more details and precision than ever before. We call it trace-based testing. It’s becoming popular to test systems at an integration or end-to-end level by applying assertions against the data contained in an OpenTelemetry trace. These tests can check your code, they can verify your trace info is added correctly and can verify processes that show up deep in the trace worked as expected. We’re building an open-source tool called Tracetest (https://github.com/kubeshop/tracetest) to make observability-driven development mainstream. It leverages the observability enabled by OpenTelemetry traces to allow you to create trace-based tests. These tests can check your code, they can verify your trace info is added correctly and can verify processes that show up deep in the trace worked as expected.