AA
Annanay Agarwal
They See Me Tracin' They Hatin'
Tracing is a widely adopted solution to provide performance insights into distributed applications. However, since most of the traces in a healthy application look almost alike, storing all traces from an application can often be overkill, and can increase the operational cost. Sampling is a good method to throttle down and store representative traces, but in most implementations, the sampling decision is made upfront and at random.
In this presentation we will discuss tail-sampling using the OpenTelemetry collector, which can be leveraged to make sampling decisions by evaluating conditions on full traces. The session will begin with a demo of Jaeger, a popular distributed tracing framework, and see all the insights it can provide into an application. We will then plugin the OpenTelemetry Collector and see how tail sampling can be leveraged to store representative traces.
At the end of this talk, the audience should have a clear understanding of distributed tracing concepts and implementations. They will also have an idea of how to bring distributed tracing into their infrastructure and manage it from an operational perspective.
Outline
- Introduction to distributed tracing.
- JaegerTracing framework architecture and demo.
- Problems with storing large trace volumes and how to handle this with sampling.
- Difference between Head and Tail sampling.
- Introduction to OpenTelemetry.
- Demo of tail sampling using OpenTelemetry Collector.
Requirements
None.
Speaker bio
Annanay’s involvement with Open Source tech started out with a Google Summer of Code scholar under the LLVM Compiler Infrastructure Project. His interest in distributed systems got him involved with the Distributed Tracing community and he is now a regular contributor to the Jaegertracing and OpenTelemetry projects. He works as a Backend Engineer at Grafana Labs.
When not at his desk, he is either watching football or listening to music!
Links
- Profile links: twitter.com/mrannanay, github.com/annanay25
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}