3 lines
7.2 KiB
HTML
3 lines
7.2 KiB
HTML
<!doctype html><html class="no-js" lang="en"><head><meta charset="UTF-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="width=device-width,initial-scale=1.0" name="viewport"><meta content="Eleventy v3.0.0" name="generator"><title>
|
||
OpenTelemetry Challenges: Handling Long-Running Spans | Hazel Weakly
|
||
</title><meta content="Hazel Weakly" name="author"><meta content="light dark" name="color-scheme"><meta media="(prefers-color-scheme: light)" content="#f3e7eb" name="theme-color"><meta media="(prefers-color-scheme: dark)" content="#2d161d" name="theme-color"><link href="https://hazelweakly.me/manifest.json" rel="manifest"><meta content="Long running spans are one of my biggest “we don’t really actually have a good standard solution for this” issues in opentelemetry. They’re something I’ve run..." name="description"><meta content="Long running spans are one of my biggest “we don’t really actually have a good standard solution for this” issues in opentelemetry. They’re something I’ve run..." property="og:description"><meta content="Long running spans are one of my biggest “we don’t really actually have a good standard solution for this” issues in opentelemetry. They’re something I’ve run..." name="twitter:description"><link title="Atom Feed for Hazel Weakly" href="/atom.xml" rel="alternate" type="application/atom+xml"><link title="RSS Feed for Hazel Weakly" href="/rss.xml" rel="alternate" type="application/rss+xml"><link title="JSON Feed for Hazel Weakly" href="/feed.json" rel="alternate" type="application/feed+json"><meta content="Hazel Weakly" name="og:site_name"><meta content="en-us" property="og:locale"><meta content="article" property="og:type"><link href="https://hachyderm.io/@hazelweakly" rel="me"><meta content="OpenTelemetry Challenges: Handling Long-Running Spans | Hazel Weakly" property="og:title"><meta content="OpenTelemetry Challenges: Handling Long-Running Spans | Hazel Weakly" name="twitter:title"><meta content="https://hazelweakly.me/images/og.jpg" property="og:image"><meta content="Hazel looks at the camera. She is wearing rose gold lipstick, black glasses, and a cherry blossom dress. In the background are flowers and a fence" name="og:image:alt"><meta content="https://hazelweakly.me/images/og.jpg" name="twitter:image"><meta content="Hazel looks at the camera. She is wearing rose gold lipstick, black glasses, and a cherry blossom dress. In the background are flowers and a fence" name="twitter:image:alt"><meta content="https://hazelweakly.me/blog/opentelemetry-challenges-handling-long-running-spans/" property="og:url"><meta content="summary_large_image" name="twitter:card"><link as="font" crossorigin="" href="/fonts/italiana-v16-latin-regular.woff2" rel="preload" type="font/woff2"><link as="font" crossorigin="" href="/fonts/zilla-slab-v11-latin-400.woff2" rel="preload" type="font/woff2"><link as="style" href="/theme.css" rel="preload"><link href="/theme.css" rel="stylesheet"><link href="/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"><link href="/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"><link href="/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"><meta content="article" property="og:type"></head><body class="flex flex-col flow"><div><a class="skip-link" href="#main-content">Skip to content</a><header role="banner"><div class="wrapper"><nav aria-label="primary" id="primary-navigation" tabindex="-1"><ul class="cluster" role="list"><li class="flex"><a href="/">Home</a></li><span class="skip"></span><div class="cluster"><li class="flex"><a href="/blog/"> Blog </a></li><li class="flex"><a href="/media/"> Media Listing </a></li><li class="flex"><a href="/about/"> About Me </a></li><li class="flex"><div class="user-toggle inline-flex"><div class="visually-hidden" role="status"></div><button aria-label="Toggle Theme"><span aria-hidden="true" class="icon"></span></button></div></li></div></ul></nav></div></header></div><main class="wrapper" id="main-content" tabindex="-1"><article class="flow"><h1 id="opentelemetry-challenges-handling-long-running-spans" tabindex="-1"><a class="header-anchor" href="#opentelemetry-challenges-handling-long-running-spans"><span>OpenTelemetry Challenges: Handling Long-Running Spans</span></a></h1><blockquote class="flow"><p>Long running spans are one of my biggest “we don’t really actually have a good standard solution for this” issues in opentelemetry. They’re something I’ve run into before, weirdly frequently, and especially so when attempting to try and instrument front-end or mobile facing systems.</p><p>It turns out, though, that the issues here with long running spans are actually pretty similar to the issues with interrupted, partial, or unclosed spans. In fact, they’re really mostly the same thing (with the added bonus that if you do tail sampling your sampling decision is going to happen before the span ends, which exacerbates the problem by turning functioning spans into partial and broken ones)</p><p>Anyway, I talk about this and more in this article and even point out a really cool solution from <a href="https://embrace.io">Embrace</a> that addresses this in an opentelemetry compatible way (hint: does the phrase “write ahead log” make you quiver with excitement? If so, you should definitely read this)</p></blockquote><p><a href="https://thenewstack.io/opentelemetry-challenges-handling-long-running-spans/">https://thenewstack.io/opentelemetry-challenges-handling-long-running-spans/</a></p></article></main><footer class="center min-h-[10ex]"><div class="center wrapper"><nav aria-label="secondary" id="secondary-navigation" tabindex="-1"><ul class="cluster" role="list"><div class="cluster"><li class="flex"><a href="/calendar/"> Calendar </a></li><li class="flex"><a href="/contact/"> Contact </a></li><li class="flex"><a href="/resume/"> Résumé </a></li><li class="flex"><a href="/speaker-rider/"> Speaker Rider </a></li></div></ul></nav><p class="text-center italic text-1">© 2026 Hazel Weakly</p></div></footer><script>document.documentElement.classList.remove(`no-js`)</script><script async="" defer="">document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role="status"]`);const c=()=>(localStorage.getItem(i)??getComputedStyle(document.documentElement).getPropertyValue(`--color-mode`).replace(/\'|"/g,``).trim())||(window.matchMedia(j).matches?k:l);const d=a=>{localStorage.setItem(m,n());localStorage.setItem(i,a);return a};const e=a=>a===k?l:k;const f=(a=c())=>{document.documentElement.classList.add(a);document.documentElement.classList.remove(e(a));b.innerText=`Color mode is now "${a}"`};a.addEventListener(`click`,a=>void (a.preventDefault(),f(d(e(c())))));window.matchMedia(j).addEventListener(`change`,a=>f(a.matches?k:l));const g=new o(+(localStorage.getItem(m)??n()));const h=new o(n());if((h- g)/1000>24*p*p){localStorage.removeItem(i);localStorage.removeItem(m)};f()})</script><script async="" data-goatcounter="https://5qcs9vnu0w.goatcounter.com/count" src="//gc.zgo.at/count.js"></script><noscript><img src="https://5qcs9vnu0w.goatcounter.com/count?p=/blog/opentelemetry-challenges-handling-long-running-spans/"></noscript></body></html> |