Distributed tracing is generally a binary affair—it's off or on. Either a trace is sampled or, according to a flag, it's not. Span placement is also assumed to be an "always-on" system where spans are always added if the trace is active. For general availability and service-level objectives, this is usually good enough. But when we encounter problems, we need more. In this talk, I'll show you how to "turn up the dial" with detailed diagnostic spans and span events that are inserted using dynamic conditions. The talk involves Java/Scala code examples, use of feature flag systems, and examines several possible dynamic conditions like time (for the next 10 minutes), error (the system's unhappy), or target condition (user's session, http user agent, etc).
Please register for o11ycon+hnycon first, then register for this workshop. Conference registration is required.
Michael is a Platform Engineer at Honeycomb.io. Has worked with various public and private cloud providers over for the past 8 years. Originally was deeply rooted in system administration but has since gained fondness for infrastructure as code and developer tooling. He has been using Kubernetes + Terraform software pairing since 2017. In his spare time he is an avid PC gamer, enjoys cooking and tinkers with mixed reality.