PageSourceSearch

https://ganhua.wang/series/observerbility

html ganhua.wang collected 2026-10-07 03:17:39 UTC 79,572 bytes, 42 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="https://cdn.hashnode.com/res/hashnode/image/upload/v1687235846899/_HpeveXrd.png"/><link rel="stylesheet" href="/_next/static/css/0d16c72050851854.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/7ffcc02a3c67389b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c20e76e7d11dec32.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/59fefb2212bd5b60.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-55b36f0cd6c208fe.js"/>
1<script src="/_next/static/chunks/4bd1b696-100b9d70ed4e49c1.js" async=""></script>
1<script src="/_next/static/chunks/9da6db1e-8a4e8c23641c31bf.js" async=""></script>
1<script src="/_next/static/chunks/1255-a242e0ce0372fddf.js" async=""></script>
1<script src="/_next/static/chunks/main-app-bda8a52fe841b3aa.js" async=""></script>
1<script src="/_next/static/chunks/4554-984b480a9db5f3fe.js" async=""></script>
1<script src="/_next/static/chunks/7563-4dfa0994a9b0e37c.js" async=""></script>
1<script src="/_next/static/chunks/9216-9272709ba40c1cfd.js" async=""></script>
1<script src="/_next/static/chunks/2810-6b74d77b4b0dc790.js" async=""></script>
1<script src="/_next/static/chunks/3091-bf1537ff6571a1bd.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-6ae7b4b583d4bba3.js" async=""></script>
1<script src="/_next/static/chunks/app/not-found-b861935655c5698b.js" async=""></script>
1<script src="/_next/static/chunks/5001-fae0bebdd93f95e3.js" async=""></script>
1<script src="/_next/static/chunks/2423-c8b1388240338d7d.js" async=""></script>
1<script src="/_next/static/chunks/652-f40dcb480b4e356f.js" async=""></script>
1<script src="/_next/static/chunks/730-8191af9e9424b148.js" async=""></script>
1<script src="/_next/static/chunks/app/series/%5Bslug%5D/page-95c6281db9d3a307.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Observerbility</title><meta name="description" content="Introducing observability engineering and the tools within its ecosystem
2"/><link rel="canonical" href="https://ganhua.wang/series/observerbility"/><meta property="og:title" content="Observerbility"/><meta property="og:description" content="Introducing observability engineering and the tools within its ecosystem
3"/><meta property="og:url" content="https://ganhua.wang/series/observerbility"/><meta property="og:site_name" content="MicroFIRE"/><meta property="og:image" content="https://ganhua.wang/api/og/page?og=eyJhdXRob3IiOiIlRTklOUIlQjdOIiwiaXNEZWZhdWx0TW9kZURhcmsiOmZhbHNlLCJkb21haW4iOiJnYW5odWEud2FuZyIsInRpdGxlIjoiT2JzZXJ2ZXJiaWxpdHkiLCJsb2dvIjoiaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2ODcyMzU4NDY4OTkvX0hwZXZlWHJkLnBuZyIsImZhdmljb24iOiJodHRwczovL2Nkbi5oYXNobm9kZS5jb20vcmVzL2hhc2hub2RlL2ltYWdlL3VwbG9hZC92MTY4MDM2NzAxNjU5My9WT3NsVUJRU1MuanBnIn0="/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Observerbility"/><meta name="twitter:description" content="Introducing observability engineering and the tools within its ecosystem
4"/><meta name="twitter:image" content="https://ganhua.wang/api/og/page?og=eyJhdXRob3IiOiIlRTklOUIlQjdOIiwiaXNEZWZhdWx0TW9kZURhcmsiOmZhbHNlLCJkb21haW4iOiJnYW5odWEud2FuZyIsInRpdGxlIjoiT2JzZXJ2ZXJiaWxpdHkiLCJsb2dvIjoiaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2ODcyMzU4NDY4OTkvX0hwZXZlWHJkLnBuZyIsImZhdmljb24iOiJodHRwczovL2Nkbi5oYXNobm9kZS5jb20vcmVzL2hhc2hub2RlL2ltYWdlL3VwbG9hZC92MTY4MDM2NzAxNjU5My9WT3NsVUJRU1MuanBnIn0="/><link rel="icon" href="https://cdn.hashnode.com/res/hashnode/image/upload/v1680367016593/VOslUBQSS.jpg"/>
4<script type="text/javascript">window.addEventListener('message',function(e){var d=e.data;if(!d||d.__hnWidget!==1||typeof d.h!=='number'||d.h<=0)return;var f=document.querySelectorAll('.hn-widget-frame');for(var i=0;i<f.length;i++){if(f[i].contentWindow===e.source){f[i].style.height=d.h+'px';break;}}});</script>
4<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
4</head><body class="__variable_c2612a __variable_246ccd __variable_3069d5 bg-background dark:bg-background"><div hidden=""><!--$--><!--/$--></div>
4<script>((a2, b2, c4, d3, e2, f2, g4, h3) => {
5          let i3 = document.documentElement, j2 = ["light", "dark"];
6          function k2(b3) {
7            var c5;
8            (Array.isArray(a2) ? a2 : [a2]).forEach((a3) => {
9              let c6 = a3 === "class", d4 = c6 && f2 ? e2.map((a4) => f2[a4] || a4) : e2;
10              c6 ? (i3.classList.remove(...d4), i3.classList.add(f2 && f2[b3] ? f2[b3] : b3)) : i3.setAttribute(a3, b3);
11            }), c5 = b3, h3 && j2.includes(c5) && (i3.style.colorScheme = c5);
12          }
13          if (d3) k2(d3);
14          else try {
15            let a3 = localStorage.getItem(b2) || c4, d4 = g4 && a3 === "system" ? window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : a3;
16            k2(d4);
17          } catch {
18          }
19        })("class","theme","system",null,["light","dark"],null,true,true)</script>
19<main id="main-content" class="min-h-screen bg-background dark:bg-background"><header class="sticky top-0 z-50 w-full py-4 bg-background backdrop-blur-sm transition-transform duration-300 translate-y-0"><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-sm focus:shadow">Skip to main content</a><div class="relative w-full mx-auto xl:max-w-[80rem] 2xl:max-w-[90rem] px-4 sm:px-12 md:px-18 lg:px-16 xl:px-10"><div class="flex items-center justify-between gap-3 xl:hidden"><div class="flex items-center gap-3 min-w-0 flex-1"><a href="https://hashnode.com/?utm_source=https%3A%2F%2Fganhua.wang&amp;utm_medium=referral&amp;utm_campaign=blog_header_logo&amp;utm_content=logo" class="inline-flex items-center justify-center text-lg text-muted-foreground hover:text-foreground transition border rounded-md h-9 w-9 shrink-0 border-border hover:bg-muted"><i class="text-xl fa-brands fa-hashnode" aria-hidden="true"></i><span class="sr-only">Hashnode</span></a><a class="flex items-center" href="/"><img alt="MicroFIRE" width="500" height="125" decoding="async" data-nimg="1" class="w-auto h-auto max-w-40 sm:max-w-48 max-h-10 sm:max-h-12 object-contain dark:hidden" style="color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687235846899/_HpeveXrd.png"/><img alt="MicroFIRE" loading="lazy" width="500" height="125" decoding="async" data-nimg="1" class="w-auto h-auto max-w-40 sm:max-w-48 max-h-10 sm:max-h-12 object-contain hidden dark:block" style="color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687235851405/dyMT_Y3op.png"/><span class="sr-only">MicroFIRE</span></a></div><div class="flex items-center gap-2 shrink-0"><button class="gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent py-2 h-9 w-9 px-0 flex items-center justify-center text-muted-foreground hover:text-foreground bg-transparent border-border shadow-none" aria-label="Open search (press Control or Command and K)"><i class="fa-jelly fa-search text-sm" aria-hidden="true"></i><span class="sr-only">Open search (press Control or Command and K)</span></button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent w-9 px-3 h-9 text-muted-foreground hover:text-foreground shadow-none" type="button" id="radix-_R_kp5bsnpfalb_" aria-haspopup="menu" aria-expanded="false" data-state="closed" data-slot="dropdown-menu-trigger"><i class="fa-jelly fa-sun text-sm scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" aria-hidden="true"></i><i class="fa-jelly fa-moon absolute text-sm scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" aria-hidden="true"></i><span class="sr-only">Toggle theme</span></button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground py-2 h-9 w-10 px-0 shadow-none" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_sp5bsnpfalb_" data-state="closed" data-slot="sheet-trigger"><i class="fa-jelly fa-bars" aria-hidden="true"></i><span class="sr-only">Open menu</span></button></div></div><div class="hidden xl:grid gap-4 items-center xl:grid-cols-[1fr_auto_1fr] xl:gap-6 max-w-full xl:mx-auto xl:max-w-[80rem] 2xl:max-w-[90rem]"><div class="flex items-center w-full gap-3 min-w-0"><a href="https://hashnode.com/?utm_source=https%3A%2F%2Fganhua.wang&amp;utm_medium=referral&amp;utm_campaign=blog_header_logo&amp;utm_content=logo" class="inline-flex items-center justify-center text-lg text-muted-foreground hover:text-foreground transition border rounded-md h-9 w-9 border-border hover:bg-muted"><i class="text-xl fa-brands fa-hashnode" aria-hidden="true"></i><span class="sr-only">Hashnode</span></a><span class="h-6 border-l border-border"></span><a class="flex items-center" href="/"><img alt="MicroFIRE" width="500" height="125" decoding="async" data-nimg="1" class="w-auto h-auto max-w-40 sm:max-w-48 max-h-10 sm:max-h-12 object-contain dark:hidden" style="color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687235846899/_HpeveXrd.png"/><img alt="MicroFIRE" loading="lazy" width="500" height="125" decoding="async" data-nimg="1" class="w-auto h-auto max-w-40 sm:max-w-48 max-h-10 sm:max-h-12 object-contain hidden dark:block" style="color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687235851405/dyMT_Y3op.png"/><span class="sr-only">MicroFIRE</span></a></div><nav aria-label="Main navigation" class="flex justify-center w-full"><nav aria-label="Main" data-orientation="horizontal" dir="ltr" data-slot="navigation-menu" data-viewport="false" class="group/navigation-menu relative flex flex-1 items-center max-w-max justify-center"><div style="position:relative"><ul data-orientation="horizontal" data-slot="navigation-menu-list" class="group flex flex-1 list-none items-center flex-nowrap justify-center gap-1 text-muted-foreground text-base" dir="ltr"><li data-slot="navigation-menu-item" class="relative"><a data-slot="navigation-menu-link" class="data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground focus:bg-accent focus:text-accent-foreground [&amp;_svg:not([class*=&#x27;text-&#x27;])]:text-muted-foreground flex-col p-2 outline-none focus-visible:outline-1 [&amp;_svg:not([class*=&#x27;
19size-&#x27;])]:size-4 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2" data-radix-collection-item="" href="/series/domain-driven-design">DDD</a></li><li data-slot="navigation-menu-item" class="relative"><a data-slot="navigation-menu-link" class="data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground focus:bg-accent focus:text-accent-foreground [&amp;_svg:not([class*=&#x27;text-&#x27;])]:text-muted-foreground flex-col p-2 outline-none focus-visible:outline-1 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2" data-radix-collection-item="" href="/series/observerbility">Observerbility</a></li><li data-slot="navigation-menu-item" class="relative"><a data-slot="navigation-menu-link" class="data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground focus:bg-accent focus:text-accent-foreground [&amp;_svg:not([class*=&#x27;text-&#x27;])]:text-muted-foreground flex-col p-2 outline-none focus-visible:outline-1 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2" data-radix-collection-item="" href="/series/go">Go</a></li><li data-slot="navigation-menu-item" class="relative"><button id="radix-_R_ct95bsnpfalb_" data-state="closed" aria-expanded="false" data-slot="dropdown-menu-trigger" class="group w-max focus:bg-accent focus:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent outline-none focus-visible:outline-1 group inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent py-2 h-9 px-3 text-muted-foreground hover:text-foreground bg-transparent shadow-none data-[state=open]:bg-transparent" type="button" aria-haspopup="menu" data-radix-collection-item="">More<!-- --> <span class="ml-1 flex items-center justify-center"><i class="fa-jelly fa-regular fa-angle-down size-3 leading-none transition duration-300 group-data-[state=open]:rotate-180" aria-hidden="true"></i></span></button></li></ul></div></nav></nav><div class="flex items-center justify-end gap-3 text-muted-foreground"><button class="gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent py-2 h-9 w-9 px-0 flex items-center justify-center text-muted-foreground hover:text-foreground bg-transparent border-border shadow-none" aria-label="Open search (press Control or Command and K)"><i class="fa-jelly fa-search text-sm" aria-hidden="true"></i><span class="sr-only">Open search (press Control or Command and K)</span></button><div class="flex items-center gap-3"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focu
19s-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent w-9 px-3 h-9 text-muted-foreground hover:text-foreground shadow-none" type="button" id="radix-_R_1n95bsnpfalb_" aria-haspopup="menu" aria-expanded="false" data-state="closed" data-slot="dropdown-menu-trigger"><i class="fa-jelly fa-sun text-sm scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" aria-hidden="true"></i><i class="fa-jelly fa-moon absolute text-sm scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" aria-hidden="true"></i><span class="sr-only">Toggle theme</span></button><a target="_blank" rel="noopener" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground py-2 gap-2 px-3 h-9 shadow-none" href="https://hashnode.com"><i class="text-sm fa-jelly fa-pencil" aria-hidden="true"></i>Write</a></div></div></div></div></header><div data-slot="dialog-header" class="flex flex-col gap-2 text-center sm:text-left sr-only"><h2 id="radix-_R_25bsnpfalbH1_" data-slot="dialog-title" class="text-lg leading-none font-semibold">Command Palette</h2><p id="radix-_R_25bsnpfalbH2_" data-slot="dialog-description" class="text-muted-foreground text-sm">Search for a command to run...</p></div><div class="px-4 sm:px-8"><div class="w-full xl:mx-auto xl:max-w-[80rem] 2xl:max-w-[90rem]"><div class="flex flex-col gap-8 pt-2 sm:pt-10"><section class="pb-16"><div class="space-y-8 max-w-4xl w-full mx-auto"><div class="relative overflow-hidden rounded-2xl border border-border bg-muted w-full" style="padding-top:52.5%"><img alt="Observerbility" loading="lazy" decoding="async" data-nimg="fill" class="object-cover" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717681429100/jzc4C-l83.jpg"/></div><header class="mb-8 space-y-4 text-center"><p class="text-sm font-semibold uppercase tracking-wide text-muted-foreground">Series</p><h1 class="text-3xl sm:text-4xl font-bold tracking-tight text-balance text-foreground">Observerbility</h1><div class="prose prose-lg dark:prose-invert max-w-none text-muted-foreground"><p>Introducing observability engineering and the tools within its ecosystem</p>
20</div></header><section aria-label="Observerbility posts"><ol id="_R_39bsnpfalb_" class="flex flex-col gap-5 list-none p-0" aria-busy="false"><li class="list-none"><article aria-labelledby="_R_1f9bsnpfalb_" class="h-full"><a class="block h-full" href="/ai-comprehension-problem"><div class="rounded-xl border bg-card text-card-foreground transition hover:border-slate-400 dark:hover:border-slate-600 h-full"><div class="grid h-full gap-4 p-4 items-stretch md:gap-6 md:p-6 md:grid-cols-[1.2fr_1fr]"><div class="flex flex-col gap-4"><header class="flex flex-col gap-3"><h3 id="_R_1f9bsnpfalb_" class="text-foreground text-lg sm:text-xl font-bold leading-snug tracking-tight transition-colors line-clamp-3">AI 時代下的系統可理解性問題</h3><p class="text-sm leading-relaxed text-muted-foreground line-clamp-3">GAI 的時代下,近一年很流行 Vibe-coding,幾乎人人都在草率地使用 Vibe-coding 一詞來指一系列的軟體工程實踐。它指的是一種開發者不親自手打 coding,而是僅透過自然語言向 AI 描述需求(給出「方向」或「感覺」),完全放手讓 AI 代理去自動生成、拼湊出整個應用程式的開發風格。 然而,在專業的軟體工程領域,這股看似美好的「Vibe」背後,隱藏著極高的安全隱患與系統崩潰危</p></header><div class="flex flex-wrap items-center gap-3 text-sm text-muted-foreground"><span class="whitespace-nowrap">Aug 24, 2026</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span>3 min read</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span><span data-state="closed" data-slot="tooltip-trigger">223</span></span></div></div><div class="flex items-center md:justify-end order-first md:order-last"><div class="relative overflow-hidden rounded-lg bg-muted aspect-[800/420] w-full md:max-w-[320px]"><img alt="AI 時代下的系統可理解性問題" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/uploads/covers/6420f5cbbdbe7d697133d12a/29776360-8b27-4c87-ad25-f0920a52db58.jpg"/></div></div></div></div></a></article></li><li class="list-none"><article aria-labelledby="_R_2f9bsnpfalb_" class="h-full"><a class="block h-full" href="/prompt-engineering-ai-agent"><div class="rounded-xl border bg-card text-card-foreground transition hover:border-slate-400 dark:hover:border-slate-600 h-full"><div class="grid h-full gap-4 p-4 items-stretch md:gap-6 md:p-6 md:grid-cols-[1.2fr_1fr]"><div class="flex flex-col gap-4"><header class="flex flex-col gap-3"><h3 id="_R_2f9bsnpfalb_" class="text-foreground text-lg sm:text-xl font-bold leading-snug tracking-tight transition-colors line-clamp-3">別再盲信 Prompt Engineering:為 AI Agent 建立低成本的糾錯系統</h3><p class="text-sm leading-relaxed text-muted-foreground line-clamp-3">我們的 AIOps agent 有個很具體的問題:它會捏造 trace ID。
21當 on-call 工程師問「payment service 有沒有 error trace?」,agent 有時會信心滿滿地回答「是的,見 trace a1b2c3d4...」——但這串 ID 根本不存在 Tempo 裡。工程師點進去,404。壞的不只是使用者體驗,而是這讓整個 RCA 結論失去可信度。
22另一個問題是</p></header><div class="flex flex-wrap items-center gap-3 text-sm text-muted-foreground"><span class="whitespace-nowrap">Jun 26, 2026</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span>7 min read</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span><span data-state="closed" data-slot="tooltip-trigger">55</span></span></div></div><div class="flex items-center md:justify-end order-first md:order-last"><div class="relative overflow-hidden rounded-lg bg-muted aspect-[800/420] w-full md:max-w-[320px]"><img alt="別再盲信 Prompt Engineering:為 AI Agent 建立低成本的糾錯系統" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/uploads/covers/6420f5cbbdbe7d697133d12a/1bb94f6d-fef3-4e16-8cc2-d5f2d78db35e.png"/></div></div></div></div></a></article></li><li class="list-none"><article aria-labelledby="_R_3f9bsnpfalb_" class="h-full"><a class="block h-full" href="/grafana-o11y-bench-ai-on-call"><div class="rounded-xl border bg-card text-card-foreground transition hover:border-slate-400 dark:hover:border-slate-600 h-full"><div class="grid h-full gap-4 p-4 items-stretch md:gap-6 md:p-6 md:grid-cols-[1.2fr_1fr]"><div class="flex flex-col gap-4"><header class="flex flex-col gap-3"><h3 id="_R_3f9bsnpfalb_" class="text-foreground text-lg sm:text-xl font-bold leading-snug tracking-tight transition-colors line-clamp-3">Grafana o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場</h3><p class="text-sm leading-relaxed text-muted-foreground line-clamp-3">o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場
23
24從任務設計、合成環境、Agent 架構、評分機制到報告輸出,逐一解析這個開放 benchmark 的每個組件——以及 Gemini 3 Flash Preview 的完整實測結果
25
26
27先說清楚這在解決什麼問題
28目前多數 LLM benchmark 測的是「知識」:模型知不知道 PromQL 的語法,知不知道什麼是 p99 </p></header><div class="flex flex-wrap items-center gap-3 text-sm text-muted-foreground"><span class="whitespace-nowrap">May 3, 2026</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span>17 min read</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span><span data-state="closed" data-slot="tooltip-trigger">451</span></span></div></div><div class="flex items-center md:justify-end order-first md:order-last"><div class="relative overflow-hidden rounded-lg bg-muted aspect-[800/420] w-full md:max-w-[320px]"><img alt="Grafana o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/uploads/covers/6420f5cbbdbe7d697133d12a/4702b54d-41c0-4e91-ada3-39f2d3d3ca54.png"/></div></div></div></div></a></article></li><li class="list-none"><article aria-labelledby="_R_4f9bsnpfalb_" class="h-full"><a class="block h-full" href="/otel-delta-to-cumulative-erroutoforder-and-errolderstart"><div class="rounded-xl border bg-card text-card-foreground transition hover:border-slate-400 dark:hover:border-slate-600 h-full"><div class="grid h-full gap-4 p-4 items-stretch md:gap-6 md:p-6 md:grid-cols-[1.2fr_1fr]"><div class="flex flex-col gap-4"><header class="flex flex-col gap-3"><h3 id="_R_4f9bsnpfalb_" class="text-foreground text-lg sm:text-xl font-bold leading-snug tracking-tight transition-colors line-clamp-3">OTel 戰地筆記:破解 Delta to Cumulative 的兩大夢魘 (ErrOutOfOrder &amp; ErrOlderStart)</h3><p class="text-sm leading-relaxed text-muted-foreground line-clamp-3">[OTel 深水區] 徹底拆解 deltatocumulative 的兩大夢魘:ErrOlderStart 與 ErrOutOfOrder
29接續上一篇我們對 deltatocumulative Processor 的架構剖析,今天我們要進入「深水區」。
30在生產環境中,你可能遇過這種情況:Metrics 莫名其妙開始 Drop,去查 deltatocumulative_datapoints 指標時,看到 error 標籤
30出現了 delta.ErrOutOfOrder 或 delta.ErrOlde...</p></header><div class="flex flex-wrap items-center gap-3 text-sm text-muted-foreground"><span class="whitespace-nowrap">Jan 22, 2026</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span>6 min read</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span><span data-state="closed" data-slot="tooltip-trigger">111</span></span></div></div><div class="flex items-center md:justify-end order-first md:order-last"><div class="relative overflow-hidden rounded-lg bg-muted aspect-[800/420] w-full md:max-w-[320px]"><img alt="OTel 戰地筆記:破解 Delta to Cumulative 的兩大夢魘 (ErrOutOfOrder &amp; ErrOlderStart)" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769094697034/3121ef65-d3bd-4cb4-a6c5-34aadb7e9694.png"/></div></div></div></div></a></article></li><li class="list-none"><article aria-labelledby="_R_5f9bsnpfalb_" class="h-full"><a class="block h-full" href="/otel-collector-delta-to-cumulative-processor"><div class="rounded-xl border bg-card text-card-foreground transition hover:border-slate-400 dark:hover:border-slate-600 h-full"><div class="grid h-full gap-4 p-4 items-stretch md:gap-6 md:p-6 md:grid-cols-[1.2fr_1fr]"><div class="flex flex-col gap-4"><header class="flex flex-col gap-3"><h3 id="_R_5f9bsnpfalb_" class="text-foreground text-lg sm:text-xl font-bold leading-snug tracking-tight transition-colors line-clamp-3">剖析 OTel Collector Delta To Cumulative Processor</h3><p class="text-sm leading-relaxed text-muted-foreground line-clamp-3">本文將深入探討 OpenTelemetry Collector Contrib 中的 deltatocumulative Processor。除了基本的配置與使用外,我們將從 源碼層級 (Source Code Level) 分析其內部運作機制、狀態管理策略,並詳細解釋生產環境中常見的異常現象。
311. 簡介
32deltatocumulativeprocessor 的核心任務是將 Metrics 的 Temporality 從 Delta (增量) 轉換為 Cumulative (累積)。這是一個 ...</p></header><div class="flex flex-wrap items-center gap-3 text-sm text-muted-foreground"><span class="whitespace-nowrap">Jan 21, 2026</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span>9 min read</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span><span data-state="closed" data-slot="tooltip-trigger">105</span></span></div></div><div class="flex items-center md:justify-end order-first md:order-last"><div class="relative overflow-hidden rounded-lg bg-muted aspect-[800/420] w-full md:max-w-[320px]"><img alt="剖析 OTel Collector Delta To Cumulative Processor" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769007242495/889ffd72-daea-4092-a832-eb726ef4568e.jpeg"/></div></div></div></div></a></article></li><li class="list-none"><article aria-labelledby="_R_6f9bsnpfalb_" class="h-full"><a class="block h-full" href="/grafana-opentelemetry"><div class="rounded-xl border bg-card text-card-foreground transition hover:border-slate-400 dark:hover:border-slate-600 h-full"><div class="grid h-full gap-4 p-4 items-stretch md:gap-6 md:p-6 md:grid-cols-[1.2fr_1fr]"><div class="flex flex-col gap-4"><header class="flex flex-col gap-3"><h3 id="_R_6f9bsnpfalb_" class="text-foreground text-lg sm:text-xl font-bold leading-snug tracking-tight transition-colors line-clamp-3">來自 Grafana 與 OpenTelemetry 的 Logging 最佳實踐</h3><p class="text-sm leading-relaxed text-muted-foreground line-clamp-3">現代可觀測性中的 Log 思維革命:來自 Grafana 與 OpenTelemetry 的最佳實踐
33
34
35以下是影片內容的完整解釋與重點摘要:
361. 2025 年 Log 的角色與重要性
37
38Log 是否仍有一席之地? [05:30]
39
40來賓們討論在現代可觀測性Observability)中 Log 的地位。Ed認為 Log 是「唯一真實的可觀測性訊號」,因為它是最容易獲取的(從 Hello World 就開始用),且無法被完全取代(如 process 的 stdout/stderr)。
41
42Zer...</p></header><div class="flex flex-wrap items-center gap-3 text-sm text-muted-foreground"><span class="whitespace-nowrap">Dec 19, 2025</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span>3 min read</span><span class="whitespace-nowrap"><span class="mr-3" aria-hidden="true">·</span><span data-state="closed" data-slot="tooltip-trigger">1.2K</span></span></div></div><div class="flex items-center md:justify-end order-first md:order-last"><div class="relative overflow-hidden rounded-lg bg-muted aspect-[800/420] w-full md:max-w-[320px]"><img alt="來自 Grafana 與 OpenTelemetry 的 Logging 最佳實踐" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766128085732/815177e9-16db-4c73-8287-e6b756338589.jpeg"/></div></div></div></div></a></article></li></ol><div class="flex justify-center py-8"><button type="button" class="group flex items-center gap-2 rounded-lg px-5 py-2.5 text-sm font-medium text-muted-foreground transition hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary disabled:opacity-50" aria-controls="_R_39bsnpfalb_" aria-label="Load more posts"><span aria-live="polite">Load more posts</span><i class="fa-regular fa-arrow-down text-sm transition-transform group-hover:translate-y-0.5" aria-hidden="true"></i></button></div></section></div></section></div></div></div>
42<script type="application/ld+json">{"@context":"https://schema.org","@type":"CollectionPage","name":"Observerbility","url":"https://ganhua.wang/series/observerbility","mainEntityOfPage":"https://ganhua.wang/series/observerbility","publisher":{"@type":"Organization","name":"MicroFIRE","url":"https://ganhua.wang","logo":"https://cdn.hashnode.com/res/hashnode/image/upload/v1687235846899/_HpeveXrd.png"},"description":"Introducing observability engineering and the tools within its ecosystem\n","image":{"@type":"ImageObject","url":"https://cdn.hashnode.com/res/hashnode/image/upload/v1717681429100/jzc4C-l83.jpg"},"creator":{"@type":"Person","name":"雷N","url":"https://hashnode.com/@nathanrayn"},"hasPart":[{"@type":"Article","headline":"AI 時代下的系統可理解性問題","url":"https://ganhua.wang/ai-comprehension-problem"},{"@type":"Article","headline":"別再盲信 Prompt Engineering:為 AI Agent 建立低成本的糾錯系統","url":"https://ganhua.wang/prompt-engineering-ai-agent"},{"@type":"Article","headline":"Grafana o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場","url":"https://ganhua.wang/grafana-o11y-bench-ai-on-call"},{"@type":"Article","headline":"OTel 戰地筆記:破解 Delta to Cumulative 的兩大夢魘 (ErrOutOfOrder & ErrOlderStart)","url":"https://ganhua.wang/otel-delta-to-cumulative-erroutoforder-and-errolderstart"},{"@type":"Article","headline":"剖析 OTel Collector Delta To Cumulative Processor","url":"https://ganhua.wang/otel-collector-delta-to-cumulative-processor"},{"@type":"Article","headline":"來自 Grafana 與 OpenTelemetry 的 Logging 最佳實踐","url":"https://ganhua.wang/grafana-opentelemetry"}]}</script>
42<footer class="px-4 pt-8 pb-20 sm:px-8 text-muted-foreground" aria-label="Footer"><div class="w-full max-w-4xl mx-auto"><div class="flex flex-col items-center gap-4 text-center text-sm"><p class="font-medium"><time dateTime="2026"><span class="font-sans">©</span> <!-- -->2026</time> <!-- -->MicroFIRE</p><nav aria-label="Footer navigation"><ul class="flex flex-wrap justify-center gap-4 text-sm tracking-wide"><li><a class="transition hover:text-foreground" href="/members">Members</a></li><li><a class="transition hover:text-foreground" href="/archive">Archive</a></li><li><a class="transition hover:text-foreground" target="_blank" rel="noopener" href="https://hashnode.com/privacy-policy">Privacy</a></li><li><a class="transition hover:text-foreground" target="_blank" rel="noopener" href="https://hashnode.com/terms">Terms</a></li></ul></nav><div class="pt-8 flex justify-center gap-6"><a target="_blank" rel="noopener" class="flex items-center gap-2 text-sm transition hover:text-foreground" title="Sitemap" href="/sitemap.xml"><i class="fa-regular fa-sitemap"></i><span>Sitemap</span></a><a target="_blank" rel="noopener" class="flex items-center gap-2 text-sm transition hover:text-foreground" title="RSS Feed" href="/rss.xml"><i class="fa-regular fa-rss"></i><span>RSS</span></a></div><div class="pt-10 text-center"><a target="_blank" rel="noopener" aria-label="Visit Hashnode (opens in a new tab)" class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-10 rounded-md text-xl px-5 py-4" href="https://hashnode.com/?utm_source=https%3A%2F%2Fganhua.wang&amp;utm_medium=referral&amp;utm_campaign=blog_footer_logo&amp;utm_content=logo"><svg fill="none" viewBox="0 0 282 39" aria-hidden="true" class="h-6 w-auto min-w-[9.5rem] text-muted-foreground transition hover:text-foreground"><path fill="currentColor" d="M2.68 13.032c-3.573 3.505-3.573 9.363 0 12.936L13.032 36.32c3.505 3.573 9.363 3.573 12.936 0L36.32 25.968c3.573-3.573 3.573-9.431 0-12.936L25.968 2.68c-3.573-3.573-9.431-3.573-12.936 0zm12.211 1.935c2.507-2.521 6.582-2.544 9.104-.038s2.544 6.582.038 9.104-6.582 2.544-9.104.038-2.544-6.582-.038-9.104"></path><path fill="currentColor" d="M268.379 39q-6.322 0-10.35-4.108-4.002-4.134-4.002-10.483 0-6.296 4.002-10.43 4-4.135 10.163-4.135 6.028 0 9.817 3.734 3.814 3.735 3.814 9.497v2.8h-24.248v-4.054h17.633q-.187-2.747-2.054-4.508-1.868-1.76-4.962-1.76-3.28-.001-5.388 2.374-2.108 2.373-2.108 6.375 0 4.188 2.348 6.695 2.347 2.481 5.895 2.481 1.68 0 2.934-.453a8.5 8.5 0 0 0 2.321-1.307q1.041-.854 2.268-2.614l4.694 2.96q-1.707 2.748-3.494 4.135a12.7 12.7 0 0 1-3.975 2.081q-2.187.72-5.308.72m-33.496 0q-5.575 0-9.283-4.028-3.681-4.029-3.681-10.484 0-6.43 3.761-10.51 3.76-4.108 9.47-4.108 2.8 0 5.175 1.2 2.4 1.174 3.628 3.148l.026-.08V0h7.016v38.2h-6.722v-4.722l.64.8-.694.133q-1.28 2.108-3.788 3.361Q237.924 39 234.883 39m1.627-6.002q3.308 0 5.495-2.428t2.188-6.135q0-3.762-2.214-6.109-2.214-2.374-5.469-2.374-3.28 0-5.522 2.347-2.214 2.348-2.214 6.163 0 3.76 2.214 6.162 2.214 2.374 5.522 2.374M205.811 39q-6.376 0-10.537-4.161-4.161-4.188-4.161-10.404 0-6.321 4.161-10.456 4.188-4.135 10.537-4.135 6.348 0 10.537 4.161 4.188 4.161 4.188 10.43 0 6.216-4.188 10.404Q212.186 39 205.811 39m0-6.162q3.307 0 5.575-2.374 2.267-2.374 2.267-6.055 0-3.707-2.294-6.056-2.267-2.347-5.548-2.347-3.308 0-5.575 2.374-2.268 2.348-2.268 6.029t2.241 6.055q2.268 2.374 5.602 2.374M162.586 38.2V10.644h6.802v5.015l-.8-.987h.906q1.308-2.187 3.762-3.494 2.48-1.335 5.228-1.334 4.615 0 7.256 2.8 2.667 2.776 2.667 7.603V38.2h-7.069V21.794q0-2.854-1.387-4.401t-4.134-1.547q-2.614 0-4.402 1.974-1.76 1.974-1.76 4.881V38.2zm-30.181 0V0h6.962v14.698h.134q1.2-2.187 3.574-3.521 2.375-1.335 5.229-1.334 4.615 0 7.255 2.828 2.668 2.801 2.668 7.522V38.2h-7.069V21.794q0-2.827-1.387-4.402-1.387-1.573-4.055-1.573-2.587 0-4.428 2.027-1.814 2.027-1.814 4.962v15.391zm-14.416.8q-2.882 0-5.015-.64-2.108-.614-3.761-1.84-1.654-1.228-2.668-2.695l-.987-1.467 4.695-3.174.773 1.067a9.1 9.1 0 0 0 1.788 1.814 8.2 8.2 0 0 0 2.32 1.2q1.308.4 3.068.4 2.161 0 3.441-.8 1.308-.8 1.307-2.294 0-1.36-1.147-2.108-1.12-.747-5.068-1.654-5.335-1.253-7.656-3.334-2.32-2.107-2.321-5.362 0-3.76 3.148-6.002 3.148-2.267 7.923-2.267 2.454 0 4.348.507t3.388 1.493q1.493.988 2.454 2.188l.987 1.2-4.482 3.255-.667-.774a7.4 7.4 0 0 0-1.627-1.387 6.4 6.4 0 0 0-2.054-.88 9.5 9.5 0 0 0-2.401-.294q-1.974 0-3.201.8-1.2.774-1.2 1.921 0 1.254 1.12 2.027 1.147.748 5.229 1.681 5.334 1.227 7.629 3.308 2.294 2.055 2.294 5.308 0 4.029-3.228 6.43Q123.217 39 117.989 39M87.61 39q-4.508 0-7.335-2.454-2.828-2.481-2.828-6.482 0-4.188 3.254-6.669t8.483-2.48q2.082 0 4.028.426 1.974.427 3.361 1.12v-1.6q0-2.588-1.813-4.082-1.788-1.493-4.615-1.493-1.628 0-2.801.373a8.7 8.7 0 0 0-2.188.987q-.987.614-1.84 1.414l-.854.8-4.081-3.788 1.307-1.173a18.7 18.7 0 0 1 2.934-2.108q1.601-.933 3.601-1.44t4.589-.507q5.868 0 9.229 2.88 3.361 2.882 3.361 8.084V38.2h-6.749v-5.922l1.654 2.187h-1.76q-1.308 2.055-3.655 3.308Q90.545 39 87.611 39m1.814-4.988q3.148 0 5.149-2.187 2-2.215 2-5.309v-.08q-1.12-.693-2.72-1.094a13 13 0 0 0-3.388-.426q-2.828 0-4.562 1.2-1.734 1.173-1.734 3.521 0 2.028 1.468 3.201t3.787 1.174M49 38.2V0h6.962v14.698h.134q1.2-2.187 3.574-3.521 2.375-1.335 5.229-1.334 4.615 0 7.255 2.828 2.668 2.801 2.668 7.522V38.2h-
427.07V21.794q0-2.827-1.386-4.402-1.387-1.573-4.055-1.573-2.587 0-4.428 2.027-1.815 2.027-1.814 4.962v15.391z"></path></svg></a></div></div></div></footer></main><!--$--><!--/$-->
42<script src="/_next/static/chunks/webpack-55b36f0cd6c208fe.js" id="_R_" async=""></script>
42<script>(self.__next_f=self.__next_f||[]).push([0])</script>
42<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[16174,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"2810\",\"static/chunks/2810-6b74d77b4b0dc790.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"7177\",\"static/chunks/app/layout-6ae7b4b583d4bba3.js\"],\"ThemeProvider\"]\n3:I[82180,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"2810\",\"static/chunks/2810-6b74d77b4b0dc790.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"7177\",\"static/chunks/app/layout-6ae7b4b583d4bba3.js\"],\"TooltipProvider\"]\n4:I[63851,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"2810\",\"static/chunks/2810-6b74d77b4b0dc790.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"7177\",\"static/chunks/app/layout-6ae7b4b583d4bba3.js\"],\"UrqlProvider\"]\n5:I[82714,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"2810\",\"static/chunks/2810-6b74d77b4b0dc790.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"7177\",\"static/chunks/app/layout-6ae7b4b583d4bba3.js\"],\"ConsentManager\"]\n6:I[9766,[],\"\"]\n7:I[98924,[],\"\"]\n8:I[33293,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"4345\",\"static/chunks/app/not-found-b861935655c5698b.js\"],\"default\"]\n9:I[21447,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"2810\",\"static/chunks/2810-6b74d77b4b0dc790.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"7177\",\"static/chunks/app/layout-6ae7b4b583d4bba3.js\"],\"Integrations\"]\na:I[35514,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"2810\",\"static/chunks/2810-6b74d77b4b0dc790.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"7177\",\"static/chunks/app/layout-6ae7b4b583d4bba3.js\"],\"Analytics\"]\nc:I[24431,[],\"OutletBoundary\"]\ne:I[15278,[],\"AsyncMetadataOutlet\"]\n10:I[24431,[],\"ViewportBoundary\"]\n12:I[24431,[],\"MetadataBoundary\"]\n13:\"$Sreact.suspense\"\n15:I[57150,[],\"\"]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/72a2a501b11d0ccb.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8934b430a4adeb19-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8e9860b6e62d6359-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/c4b700dcb2187787-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/0d16c72050851854.css\",\"style\"]\n:HL[\"/_next/static/css/7ffcc02a3c67389b.css\",\"style\"]\n:HL[\"/_next/static/css/c20e76e7d11dec32.css\",\"style\"]\n:HL[\"/_next/static/css/59fefb2212bd5b60.css\",\"style\"]\n0:{\"P\":null,\"b\":\"RrCGzNVHUG674hJ_sjvms\",\"p\":\"\",\"c\":[\"\",\"series\",\"observerbility?x-host=ganhua.wang\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"series\",{\"children\":[[\"slug\",\"observerbility\",\"d\"],{\"children\":[\"__PAGE__?{\\\"x-host\\\":\\\"ganhua.wang\\\"}\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0d16c72050851854.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7ffcc02a3c67389b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c20e76e7d11dec32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/59fefb2212bd5b60.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true"])</script>
42<script>self.__next_f.push([1,",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"window.addEventListener('message',function(e){var d=e.data;if(!d||d.__hnWidget!==1||typeof d.h!=='number'||d.h\u003c=0)return;var f=document.querySelectorAll('.hn-widget-frame');for(var i=0;i\u003cf.length;i++){if(f[i].contentWindow===e.source){f[i].style.height=d.h+'px';break;}}});\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_c2612a __variable_246ccd __variable_3069d5 bg-background dark:bg-background\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"children\":[[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L8\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}]]}]}]}]}]}]]}]]}],{\"children\":[\"series\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"observerbility\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$Lb\",null,[\"$\",\"$Lc\",null,{\"children\":[\"$Ld\",[\"$\",\"$Le\",null,{\"promise\":\"$@f\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L12\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$13\",null,{\"fallback\":null,\"children\":\"$L14\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$15\",[]],\"s\":false,\"S\":false}\n11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nd:null\n16:I[652,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"5001\",\"static/chunks/5001-fae0bebdd93f95e3.js\",\"2423\",\"static/chunks/2423-c8b1388240338d7d.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"652\",\"static/chunks/652-f40dcb480b4e356f.js\",\"730\",\"static/chunks/730-8191af9e9424b148.js\",\"7382\",\"static/chunks/app/series/%5Bslug%5D/page-95c6281db9d3a307.js\"],\"BlogHeader\"]\nb:[\"$\",\"main\",null,{\"id\":\"main-content\",\"className\":\"min-h-screen bg-background dark:bg-background\",\"children\":[[\"$\",\"$L16\",null,{\"publication\":{\"__typename\":\"Publication\",\"id\":\"64285d24d6d859da8c006768\",\"url\":\"https://ganhua.wang\",\"canonicalURL\":\"https://ganhua.wang\",\"urlPattern\":\"simple\",\"title\":\"MicroFIRE\",\"displayTitle\":\"MicroFIRE\",\"hasBadges\":false,\"descriptionSEO\":\"Observability、OpenTelemetry、Software Architecture、DataBase\",\"seo\":{\"title\":null,\"description\":\"Observability、OpenTelemetry、Software Architecture、DataBase\",\"__typename\":\"SEO\"},\"publicMembers\":{\"totalDocuments\":10,\"__typename\":\"PublicMembers\"},\"about\":null,\"features\":{\"proTeam\":{\"isEnabled\":false,\"__typename\":\"ProTeamFeature\"},\"newsletter\":{\"isEnabled\":true,\"__typename\":\"NewsletterFeature\"},\"viewCount\":{\"isEnabled\":true,\"__typename\":\"ViewCountFeature\"},\"readTime\":{\"isEnabled\":true,\"__typename\":\"ReadTimeFeature\"},\"textSelectionSharer\":{\"isEnabled\":true,\"__typename\":\"TextSelectionSharerFeature\"},\"gptBotCrawling\":{\"__typename\":\"GPTBotCrawlingFeature\",\"isEnabled\":true},\"headlessCMS\":{\"isEnabled\":false,\"__typename\":\"HeadlessCMSFeature\"},\"__typename\":"])</script>
42<script>self.__next_f.push([1,"\"PublicationFeatures\"},\"aeoSettings\":{\"isEnabled\":false,\"llmsTxtEnabled\":true,\"crawlers\":{\"gptBot\":true,\"claudeBot\":true,\"perplexityBot\":true,\"googleExtended\":true,\"ccBot\":true,\"__typename\":\"AeoCrawlerSettings\"},\"__typename\":\"PublicationAeoSettings\"},\"metaTags\":null,\"ogMetaData\":{\"image\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1741182767177/06f57f90-22f1-4c8b-acd3-a6b210b36a99.png\",\"__typename\":\"OpenGraphMetaData\"},\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"name\":\"雷N\",\"username\":\"nathanrayn\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\"},\"preferences\":{\"__typename\":\"PublicationPreferences\",\"logo\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1687235846899/_HpeveXrd.png\",\"darkMode\":{\"__typename\":\"DarkModePreferences\",\"logo\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1687235851405/dyMT_Y3op.png\",\"enabled\":false},\"navbarItems\":[{\"__typename\":\"PublicationNavbarItem\",\"id\":\"6489f160ed45e9bbe43fc666\",\"label\":\"DDD\",\"url\":null,\"type\":\"series\",\"series\":{\"__typename\":\"Series\",\"id\":\"648014877fef2032a24424e3\",\"slug\":\"domain-driven-design\"},\"page\":null},{\"__typename\":\"PublicationNavbarItem\",\"id\":\"6661bc93631fd2956406e50d\",\"label\":\"Observerbility\",\"url\":null,\"type\":\"series\",\"series\":{\"__typename\":\"Series\",\"id\":\"6431517194d1164842d98c55\",\"slug\":\"observerbility\"},\"page\":null},{\"__typename\":\"PublicationNavbarItem\",\"id\":\"6431543719dd2f34ad7ff092\",\"label\":\"Go\",\"url\":null,\"type\":\"series\",\"series\":{\"__typename\":\"Series\",\"id\":\"6431519319dd2f34ad7ff02e\",\"slug\":\"go\"},\"page\":null},{\"__typename\":\"PublicationNavbarItem\",\"id\":\"64907c27c167b41645fcf7aa\",\"label\":\"Node\",\"url\":null,\"type\":\"series\",\"series\":{\"__typename\":\"Series\",\"id\":\"64907c16aa3e031681681348\",\"slug\":\"node\"},\"page\":null},{\"__typename\":\"PublicationNavbarItem\",\"id\":\"6639b31c3b1b1bb178157401\",\"label\":\"AWS\",\"url\":null,\"type\":\"series\",\"series\":{\"__typename\":\"Series\",\"id\":\"6446b22e994f853a1efef502\",\"slug\":\"aws\"},\"page\":null}],\"enabledPages\":{\"__typename\":\"EnabledPages\",\"badges\":true,\"newsletter\":true,\"members\":true},\"layout\":\"grid\",\"disableFooterBranding\":false,\"isSubscriptionModalDisabled\":false},\"favicon\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1680367016593/VOslUBQSS.jpg\",\"headerColor\":\"#414042\",\"integrations\":{\"fbPixelID\":null,\"fathomSiteID\":null,\"fathomCustomDomainEnabled\":false,\"fathomCustomDomain\":null,\"hotjarSiteID\":null,\"matomoSiteID\":null,\"matomoURL\":null,\"gaTrackingID\":null,\"gTagManagerID\":null,\"plausibleAnalyticsEnabled\":false,\"wmPaymentPointer\":null,\"koalaPublicKey\":null,\"msClarityID\":null,\"openPanelClientId\":null,\"consentManagement\":{\"enabled\":false,\"version\":1,\"privacyPolicyURL\":null,\"__typename\":\"ConsentManagement\"},\"__typename\":\"PublicationIntegrations\"},\"imprintV2\":null,\"postsCount\":{\"totalDocuments\":75,\"__typename\":\"PostConnection\"},\"isTeam\":true,\"links\":{\"twitter\":null,\"instagram\":null,\"github\":null,\"website\":null,\"hashnode\":null,\"youtube\":null,\"dailydev\":null,\"linkedin\":null,\"mastodon\":null,\"facebook\":\"https://www.facebook.com/GanHuaKingSoftware\",\"bluesky\":null,\"__typename\":\"PublicationLinks\"},\"domainInfo\":{\"__typename\":\"DomainInfo\",\"hashnodeSubdomain\":\"microfire\",\"domain\":{\"__typename\":\"Domain\",\"host\":\"ganhua.wang\",\"ready\":true},\"wwwPrefixedDomain\":{\"__typename\":\"Domain\",\"host\":\"www.ganhua.wang\",\"ready\":true}},\"redirectionRules\":[{\"source\":\"/ddd\",\"destination\":\"/ddd-domain\",\"type\":301,\"__typename\":\"RedirectionRule\"},{\"source\":\"/5zcn6kme6kqq5pio77yn77yn6acy5zf\",\"destination\":\"/ddd-domain\",\"type\":301,\"__typename\":\"RedirectionRule\"},{\"source\":\"/day-6-io-context-switch\",\"destination\":\"/day-7-io-context-switch\",\"type\":301,\"__typename\":\"RedirectionRule\"},{\"source\":\"/go\",\"destination\":\"/gotestpackage\",\"type\":301,\"__typename\":\"RedirectionRule\"},{\"source\":\"/otel\",\"destination\":\"/otcaotelnotes\",\"type\":301,\"__typename\":\"RedirectionRule\"},{\"source\":\"/grafana-k6\",\"destination\":\"/getting-started-with-grafana-k6-hands-on-practice\",\"type\":301,\"__typename\":\"RedirectionRule\"}],\"customRules\":[],\"totalRecommendedPublication"])</script>
42<script>self.__next_f.push([1,"s\":0,\"allowContributorEdits\":false,\"series\":{\"id\":\"6431517194d1164842d98c55\",\"name\":\"Observerbility\",\"coverImage\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1717681429100/jzc4C-l83.jpg\",\"slug\":\"observerbility\",\"description\":{\"html\":\"\u003cp\u003eIntroducing observability engineering and the tools within its ecosystem\u003c/p\u003e\\n\",\"markdown\":\"Introducing observability engineering and the tools within its ecosystem\",\"text\":\"Introducing observability engineering and the tools within its ecosystem\\n\",\"__typename\":\"Content\"},\"cuid\":\"clg7wfug400qipxnv33yudvl5\",\"author\":{\"id\":\"6420f5cbbdbe7d697133d12a\",\"name\":\"雷N\",\"username\":\"nathanrayn\",\"__typename\":\"User\"},\"posts\":{\"edges\":[{\"node\":{\"__typename\":\"Post\",\"id\":\"6a8c7ab886ea666fde6aae13\",\"title\":\"AI 時代下的系統可理解性問題\",\"slug\":\"ai-comprehension-problem\",\"publishedAt\":\"2026-08-24T17:09:12.374Z\",\"cuid\":\"cmt7hqj2t000009j9d5kgey4o\",\"url\":\"https://ganhua.wang/ai-comprehension-problem\",\"subtitle\":\"\",\"brief\":\"GAI 的時代下,近一年很流行 Vibe-coding,幾乎人人都在草率地使用 Vibe-coding 一詞來指一系列的軟體工程實踐。它指的是一種開發者不親自手打 coding,而是僅透過自然語言向 AI 描述需求(給出「方向」或「感覺」),完全放手讓 AI 代理去自動生成、拼湊出整個應用程式的開發風格。 然而,在專業的軟體工程領域,這股看似美好的「Vibe」背後,隱藏著極高的安全隱患與系統崩潰危\",\"readTimeInMinutes\":3,\"views\":223,\"tags\":[],\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"username\":\"nathanrayn\",\"name\":\"雷N\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\",\"followersCount\":17},\"coverImage\":{\"__typename\":\"CoverImage\",\"url\":\"https://cdn.hashnode.com/uploads/covers/6420f5cbbdbe7d697133d12a/29776360-8b27-4c87-ad25-f0920a52db58.jpg\",\"isPortrait\":false,\"isAttributionHidden\":false}},\"cursor\":\"1\",\"__typename\":\"PostEdge\"},{\"node\":{\"__typename\":\"Post\",\"id\":\"6a3eb185449c3cc61cf25e5d\",\"title\":\"別再盲信 Prompt Engineering:為 AI Agent 建立低成本的糾錯系統\",\"slug\":\"prompt-engineering-ai-agent\",\"publishedAt\":\"2026-06-26T17:06:13.946Z\",\"cuid\":\"cmqv6ng2n00000ai2ellpeq3h\",\"url\":\"https://ganhua.wang/prompt-engineering-ai-agent\",\"subtitle\":\"\",\"brief\":\"我們的 AIOps agent 有個很具體的問題:它會捏造 trace ID。\\n當 on-call 工程師問「payment service 有沒有 error trace?」,agent 有時會信心滿滿地回答「是的,見 trace a1b2c3d4...」——但這串 ID 根本不存在 Tempo 裡。工程師點進去,404。壞的不只是使用者體驗,而是這讓整個 RCA 結論失去可信度。\\n另一個問題是\",\"readTimeInMinutes\":7,\"views\":55,\"tags\":[{\"id\":\"63f859c05e428f179a5cf8f3\",\"slug\":\"langchain\",\"name\":\"langchain\",\"__typename\":\"Tag\"},{\"id\":\"62e69bec430bd1d04a8442b6\",\"slug\":\"opentelemetry\",\"name\":\"OpenTelemetry\",\"__typename\":\"Tag\"}],\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"username\":\"nathanrayn\",\"name\":\"雷N\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\",\"followersCount\":17},\"coverImage\":{\"__typename\":\"CoverImage\",\"url\":\"https://cdn.hashnode.com/uploads/covers/6420f5cbbdbe7d697133d12a/1bb94f6d-fef3-4e16-8cc2-d5f2d78db35e.png\",\"isPortrait\":false,\"isAttributionHidden\":false}},\"cursor\":\"2\",\"__typename\":\"PostEdge\"},{\"node\":{\"__typename\":\"Post\",\"id\":\"69f7709576c1469ba4c4b6e9\",\"title\":\"Grafana o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場\",\"slug\":\"grafana-o11y-bench-ai-on-call\",\"publishedAt\":\"2026-05-03T15:58:13.602Z\",\"cuid\":\"cmopyfzo8000i1qkc6azddcrj\",\"url\":\"https://ganhua.wang/grafana-o11y-bench-ai-on-call\",\"subtitle\":\"\",\"brief\":\"o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場\\n\\n從任務設計、合成環境、Agent 架構、評分機制到報告輸出,逐一解析這個開放 benchmark 的每個組件——以及 Gemini 3 Flash Preview 的完整實測結"])</script>
42<script>self.__next_f.push([1,"果\\n\\n\\n先說清楚這在解決什麼問題\\n目前多數 LLM benchmark 測的是「知識」:模型知不知道 PromQL 的語法,知不知道什麼是 p99 \",\"readTimeInMinutes\":17,\"views\":451,\"tags\":[{\"id\":\"5e80d118cceb43e213bf73c5\",\"slug\":\"grafana\",\"name\":\"Grafana\",\"__typename\":\"Tag\"},{\"id\":\"63e1da068dd6c5e912a9f3d5\",\"slug\":\"agent\",\"name\":\"#agent\",\"__typename\":\"Tag\"},{\"id\":\"63d2447e3b3bbe137fa79889\",\"slug\":\"aiops\",\"name\":\"#AIOps\",\"__typename\":\"Tag\"}],\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"username\":\"nathanrayn\",\"name\":\"雷N\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\",\"followersCount\":17},\"coverImage\":{\"__typename\":\"CoverImage\",\"url\":\"https://cdn.hashnode.com/uploads/covers/6420f5cbbdbe7d697133d12a/4702b54d-41c0-4e91-ada3-39f2d3d3ca54.png\",\"isPortrait\":false,\"isAttributionHidden\":false}},\"cursor\":\"3\",\"__typename\":\"PostEdge\"},{\"node\":{\"__typename\":\"Post\",\"id\":\"69723d3aeb23b397b7f3194b\",\"title\":\"OTel 戰地筆記:破解 Delta to Cumulative 的兩大夢魘 (ErrOutOfOrder \u0026 ErrOlderStart)\",\"slug\":\"otel-delta-to-cumulative-erroutoforder-and-errolderstart\",\"publishedAt\":\"2026-01-22T15:07:38.567Z\",\"cuid\":\"cmkpl5whz000002lhepyn3pz6\",\"url\":\"https://ganhua.wang/otel-delta-to-cumulative-erroutoforder-and-errolderstart\",\"subtitle\":null,\"brief\":\"[OTel 深水區] 徹底拆解 deltatocumulative 的兩大夢魘:ErrOlderStart 與 ErrOutOfOrder\\n接續上一篇我們對 deltatocumulative Processor 的架構剖析,今天我們要進入「深水區」。\\n在生產環境中,你可能遇過這種情況:Metrics 莫名其妙開始 Drop,去查 deltatocumulative_datapoints 指標時,看到 error 標籤出現了 delta.ErrOutOfOrder 或 delta.ErrOlde...\",\"readTimeInMinutes\":6,\"views\":111,\"tags\":[{\"id\":\"6555da9115caa6554c23fe8b\",\"slug\":\"opentelemetry-collector\",\"name\":\"opentelemetry collector\",\"__typename\":\"Tag\"},{\"id\":\"5f1df3b4f4016901885ccc96\",\"slug\":\"observability\",\"name\":\"observability\",\"__typename\":\"Tag\"}],\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"username\":\"nathanrayn\",\"name\":\"雷N\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\",\"followersCount\":17},\"coverImage\":{\"__typename\":\"CoverImage\",\"url\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1769094697034/3121ef65-d3bd-4cb4-a6c5-34aadb7e9694.png\",\"isPortrait\":false,\"isAttributionHidden\":false}},\"cursor\":\"4\",\"__typename\":\"PostEdge\"},{\"node\":{\"__typename\":\"Post\",\"id\":\"6970e8a331251e87a768f361\",\"title\":\"剖析 OTel Collector Delta To Cumulative Processor\",\"slug\":\"otel-collector-delta-to-cumulative-processor\",\"publishedAt\":\"2026-01-21T14:54:27.304Z\",\"cuid\":\"cmko593ag000g02jl9uxjb66n\",\"url\":\"https://ganhua.wang/otel-collector-delta-to-cumulative-processor\",\"subtitle\":null,\"brief\":\"本文將深入探討 OpenTelemetry Collector Contrib 中的 deltatocumulative Processor。除了基本的配置與使用外,我們將從 源碼層級 (Source Code Level) 分析其內部運作機制、狀態管理策略,並詳細解釋生產環境中常見的異常現象。\\n1. 簡介\\ndeltatocumulativeprocessor 的核心任務是將 Metrics 的 Temporality 從 Delta (增量) 轉換為 Cumulative (累積)。這是一個 ...\",\"readTimeInMinutes\":9,\"views\":105,\"tags\":[{\"id\":\"62e69bec430bd1d04a8442b6\",\"slug\":\"opentelemetry\",\"name\":\"OpenTelemetry\",\"__typename\":\"Tag\"},{\"id\":\"5f1df3b4f4016901885ccc96\",\"slug\":\"observability\",\"name\":\"observability\",\"__typename\":\"Tag\"}],\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"username\":\"nathanrayn\",\"name\":\"雷N\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\",\"followersCount\":17},\"coverImage\":{\"__typename\":\"CoverImage\",\"url\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1769007242495/889ffd72-daea-4092-a832-eb726ef4568e.jpeg\",\"isPortrait\":false,\"isAttributionHidden\":false}},\"cursor\":\""])</script>
42<script>self.__next_f.push([1,"5\",\"__typename\":\"PostEdge\"},{\"node\":{\"__typename\":\"Post\",\"id\":\"6944f9ee93ff08d7c070f170\",\"title\":\"來自 Grafana 與 OpenTelemetry 的 Logging 最佳實踐\",\"slug\":\"grafana-opentelemetry\",\"publishedAt\":\"2025-12-19T07:08:30.127Z\",\"cuid\":\"cmjcj2re7000202jjc1l4ag4k\",\"url\":\"https://ganhua.wang/grafana-opentelemetry\",\"subtitle\":null,\"brief\":\"現代可觀測性中的 Log 思維革命:來自 Grafana 與 OpenTelemetry 的最佳實踐\\n\\n\\n以下是影片內容的完整解釋與重點摘要:\\n1. 2025 年 Log 的角色與重要性\\n\\nLog 是否仍有一席之地? [05:30]\\n\\n來賓們討論在現代可觀測性Observability)中 Log 的地位。Ed認為 Log 是「唯一真實的可觀測性訊號」,因為它是最容易獲取的(從 Hello World 就開始用),且無法被完全取代(如 process 的 stdout/stderr)。\\n\\nZer...\",\"readTimeInMinutes\":3,\"views\":1190,\"tags\":[{\"id\":\"5f1df3b4f4016901885ccc96\",\"slug\":\"observability\",\"name\":\"observability\",\"__typename\":\"Tag\"}],\"author\":{\"__typename\":\"User\",\"id\":\"6420f5cbbdbe7d697133d12a\",\"username\":\"nathanrayn\",\"name\":\"雷N\",\"profilePicture\":\"https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/avatars/6420f5cbbdbe7d697133d12a/026489db-b1a0-44ef-aeaf-01159f5b2a28.png\",\"followersCount\":17},\"coverImage\":{\"__typename\":\"CoverImage\",\"url\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1766128085732/815177e9-16db-4c73-8287-e6b756338589.jpeg\",\"isPortrait\":false,\"isAttributionHidden\":false}},\"cursor\":\"6\",\"__typename\":\"PostEdge\"}],\"pageInfo\":{\"endCursor\":\"6\",\"hasNextPage\":true,\"__typename\":\"PageInfo\"},\"__typename\":\"PostConnection\"},\"__typename\":\"Series\"}},\"posts\":[\"$b:props:children:0:props:publication:series:posts:edges:0:node\",\"$b:props:children:0:props:publication:series:posts:edges:1:node\",\"$b:props:children:0:props:publication:series:posts:edges:2:node\",\"$b:props:children:0:props:publication:series:posts:edges:3:node\",\"$b:props:children:0:props:publication:series:posts:edges:4:node\",\"$b:props:children:0:props:publication:series:posts:edges:5:node\"],\"host\":\"ganhua.wang\"}],\"$L17\",\"$L18\",\"$L19\"]}]\n1a:I[81356,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"5001\",\"static/chunks/5001-fae0bebdd93f95e3.js\",\"2423\",\"static/chunks/2423-c8b1388240338d7d.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"652\",\"static/chunks/652-f40dcb480b4e356f.js\",\"730\",\"static/chunks/730-8191af9e9424b148.js\",\"7382\",\"static/chunks/app/series/%5Bslug%5D/page-95c6281db9d3a307.js\"],\"Image\"]\n1b:I[12958,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"5001\",\"static/chunks/5001-fae0bebdd93f95e3.js\",\"2423\",\"static/chunks/2423-c8b1388240338d7d.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"652\",\"static/chunks/652-f40dcb480b4e356f.js\",\"730\",\"static/chunks/730-8191af9e9424b148.js\",\"7382\",\"static/chunks/app/series/%5Bslug%5D/page-95c6281db9d3a307.js\"],\"SeriesPostsList\"]\n17:[\"$\",\"div\",null,{\"className\":\"px-4 sm:px-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full xl:mx-auto xl:max-w-[80rem] 2xl:max-w-[90rem]\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-8 pt-2 sm:pt-10\",\"children\":[\"$\",\"section\",null,{\"className\":\"pb-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-8 max-w-4xl w-full mx-auto\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden rounded-2xl border border-border bg-muted w-full\",\"style\":{\"paddingTop\":\"52.5%\"},\"children\":[\"$\",\"$L1a\",null,{\"src\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1717681429100/jzc4C-l83.jpg\",\"alt\":\"Observerbility\",\"fill\":true,\"className\":\"object-cover\"}]}],[\"$\",\"header\",null,{\"className\":\"mb-8 space-y-4 text-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wide text-muted-foreground\",\"children\":\"Series\"}],[\"$\",\"h1\",null,{\"className\":\"text-3xl sm:text-4xl font-bold tracking-tight text-balance text-foreground\",\"children\":\"Observerbility\"}],[\"$\",\"div\",null,{\"className\":\"prose prose-lg dark:"])</script>
42<script>self.__next_f.push([1,"prose-invert max-w-none text-muted-foreground\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cp\u003eIntroducing observability engineering and the tools within its ecosystem\u003c/p\u003e\\n\"}}]]}],[\"$\",\"section\",null,{\"aria-label\":\"Observerbility posts\",\"children\":[\"$\",\"$L1b\",null,{\"initialPosts\":\"$b:props:children:0:props:posts\",\"initialCursor\":\"6\",\"initialHasNextPage\":true,\"seriesSlug\":\"observerbility\"}]}]]}]}]}]}]}]\n1c:T668,{\"@context\":\"https://schema.org\",\"@type\":\"CollectionPage\",\"name\":\"Observerbility\",\"url\":\"https://ganhua.wang/series/observerbility\",\"mainEntityOfPage\":\"https://ganhua.wang/series/observerbility\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"MicroFIRE\",\"url\":\"https://ganhua.wang\",\"logo\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1687235846899/_HpeveXrd.png\"},\"description\":\"Introducing observability engineering and the tools within its ecosystem\\n\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1717681429100/jzc4C-l83.jpg\"},\"creator\":{\"@type\":\"Person\",\"name\":\"雷N\",\"url\":\"https://hashnode.com/@nathanrayn\"},\"hasPart\":[{\"@type\":\"Article\",\"headline\":\"AI 時代下的系統可理解性問題\",\"url\":\"https://ganhua.wang/ai-comprehension-problem\"},{\"@type\":\"Article\",\"headline\":\"別再盲信 Prompt Engineering:為 AI Agent 建立低成本的糾錯系統\",\"url\":\"https://ganhua.wang/prompt-engineering-ai-agent\"},{\"@type\":\"Article\",\"headline\":\"Grafana o11y-bench 深入剖析:讓 AI 真正面對 on-call 現場\",\"url\":\"https://ganhua.wang/grafana-o11y-bench-ai-on-call\"},{\"@type\":\"Article\",\"headline\":\"OTel 戰地筆記:破解 Delta to Cumulative 的兩大夢魘 (ErrOutOfOrder \u0026 ErrOlderStart)\",\"url\":\"https://ganhua.wang/otel-delta-to-cumulative-erroutoforder-and-errolderstart\"},{\"@type\":\"Article\",\"headline\":\"剖析 OTel Collector Delta To Cumulative Processor\",\"url\":\"https://ganhua.wang/otel-collector-delta-to-cumulative-processor\"},{\"@type\":\"Article\",\"headline\":\"來自 Grafana 與 OpenTelemetry 的 Logging 最佳實踐\",\"url\":\"https://ganhua.wang/grafana-opentelemetry\"}]}18:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$1c\"}}]\n1d:I[52619,[\"4554\",\"static/chunks/4554-984b480a9db5f3fe.js\",\"7563\",\"static/chunks/7563-4dfa0994a9b0e37c.js\",\"5001\",\"static/chunks/5001-fae0bebdd93f95e3.js\",\"2423\",\"static/chunks/2423-c8b1388240338d7d.js\",\"9216\",\"static/chunks/9216-9272709ba40c1cfd.js\",\"3091\",\"static/chunks/3091-bf1537ff6571a1bd.js\",\"652\",\"static/chunks/652-f40dcb480b4e356f.js\",\"730\",\"static/chunks/730-8191af9e9424b148.js\",\"7382\",\"static/chunks/app/series/%5Bslug%5D/page-95c6281db9d3a307.js\"],\"\"]\n1f:I[80622,[],\"IconMark\"]\n1e:Tc98,M268.379 39q-6.322 0-10.35-4.108-4.002-4.134-4.002-10.483 0-6.296 4.002-10.43 4-4.135 10.163-4.135 6.028 0 9.817 3.734 3.814 3.735 3.814 9.497v2.8h-24.248v-4.054h17.633q-.187-2.747-2.054-4.508-1.868-1.76-4.962-1.76-3.28-.001-5.388 2.374-2.108 2.373-2.108 6.375 0 4.188 2.348 6.695 2.347 2.481 5.895 2.481 1.68 0 2.934-.453a8.5 8.5 0 0 0 2.321-1.307q1.041-.854 2.268-2.614l4.694 2.96q-1.707 2.748-3.494 4.135a12.7 12.7 0 0 1-3.975 2.081q-2.187.72-5.308.72m-33.496 0q-5.575 0-9.283-4.028-3.681-4.029-3.681-10.484 0-6.43 3.761-10.51 3.76-4.108 9.47-4.108 2.8 0 5.175 1.2 2.4 1.174 3.628 3.148l.026-.08V0h7.016v38.2h-6.722v-4.722l.64.8-.694.133q-1.28 2.108-3.788 3.361Q237.924 39 234.883 39m1.627-6.002q3.308 0 5.495-2.428t2.188-6.135q0-3.762-2.214-6.109-2.214-2.374-5.469-2.374-3.28 0-5.522 2.347-2.214 2.348-2.214 6.163 0 3.76 2.214 6.162 2.214 2.374 5.522 2.374M205.811 39q-6.376 0-10.537-4.161-4.161-4.188-4.161-10.404 0-6.321 4.161-10.456 4.188-4.135 10.537-4.135 6.348 0 10.537 4.161 4.188 4.161 4.188 10.43 0 6.216-4.188 10.404Q212.186 39 205.811 39m0-6.162q3.307 0 5.575-2.374 2.267-2.374 2.267-6.055 0-3.707-2.294-6.056-2.267-2.347-5.548-2.347-3.308 0-5.575 2.374-2.268 2.348-2.268 6.029t2.241 6.055q2.268 2.374 5.602 2.374M162.586 38.2V10.644h6.802v5.015l-.8-.987h.906q1.308-2.187 3.762-3.494 2.48-1.335 5.228-1.334 4.615 0 7.256 2.8 2.667 2.776 2.667 7.603V38.2h-
427.069V21.794q0-2.854-1.387-4.401t-4.134-1.547q-2.614 0-4.402 1.974-1.76 1.974-1.7"])</script>
42<script>self.__next_f.push([1,"6 4.881V38.2zm-30.181 0V0h6.962v14.698h.134q1.2-2.187 3.574-3.521 2.375-1.335 5.229-1.334 4.615 0 7.255 2.828 2.668 2.801 2.668 7.522V38.2h-7.069V21.794q0-2.827-1.387-4.402-1.387-1.573-4.055-1.573-2.587 0-4.428 2.027-1.814 2.027-1.814 4.962v15.391zm-14.416.8q-2.882 0-5.015-.64-2.108-.614-3.761-1.84-1.654-1.228-2.668-2.695l-.987-1.467 4.695-3.174.773 1.067a9.1 9.1 0 0 0 1.788 1.814 8.2 8.2 0 0 0 2.32 1.2q1.308.4 3.068.4 2.161 0 3.441-.8 1.308-.8 1.307-2.294 0-1.36-1.147-2.108-1.12-.747-5.068-1.654-5.335-1.253-7.656-3.334-2.32-2.107-2.321-5.362 0-3.76 3.148-6.002 3.148-2.267 7.923-2.267 2.454 0 4.348.507t3.388 1.493q1.493.988 2.454 2.188l.987 1.2-4.482 3.255-.667-.774a7.4 7.4 0 0 0-1.627-1.387 6.4 6.4 0 0 0-2.054-.88 9.5 9.5 0 0 0-2.401-.294q-1.974 0-3.201.8-1.2.774-1.2 1.921 0 1.254 1.12 2.027 1.147.748 5.229 1.681 5.334 1.227 7.629 3.308 2.294 2.055 2.294 5.308 0 4.029-3.228 6.43Q123.217 39 117.989 39M87.61 39q-4.508 0-7.335-2.454-2.828-2.481-2.828-6.482 0-4.188 3.254-6.669t8.483-2.48q2.082 0 4.028.426 1.974.427 3.361 1.12v-1.6q0-2.588-1.813-4.082-1.788-1.493-4.615-1.493-1.628 0-2.801.373a8.7 8.7 0 0 0-2.188.987q-.987.614-1.84 1.414l-.854.8-4.081-3.788 1.307-1.173a18.7 18.7 0 0 1 2.934-2.108q1.601-.933 3.601-1.44t4.589-.507q5.868 0 9.229 2.88 3.361 2.882 3.361 8.084V38.2h-6.749v-5.922l1.654 2.187h-1.76q-1.308 2.055-3.655 3.308Q90.545 39 87.611 39m1.814-4.988q3.148 0 5.149-2.187 2-2.215 2-5.309v-.08q-1.12-.693-2.72-1.094a13 13 0 0 0-3.388-.426q-2.828 0-4.562 1.2-1.734 1.173-1.734 3.521 0 2.028 1.468 3.201t3.787 1.174M49 38.2V0h6.962v14.698h.134q1.2-2.187 3.574-3.521 2.375-1.335 5.229-1.334 4.615 0 7.255 2.828 2.668 2.801 2.668 7.522V38.2h-7.07V21.794q0-2.827-1.386-4.402-1.387-1.573-4.055-1.573-2.587 0-4.428 2.027-1.815 2.027-1.814 4.962v15.391z19:[\"$\",\"footer\",null,{\"className\":\"px-4 pt-8 pb-20 sm:px-8 text-muted-foreground\",\"aria-label\":\"Footer\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-4xl mx-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-4 text-center text-sm\",\"children\":[false,[\"$\",\"p\",null,{\"className\":\"font-medium\",\"children\":[[\"$\",\"time\",null,{\"dateTime\":\"2026\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-sans\",\"children\":\"©\"}],\" \",2026]}],\" \",\"MicroFIRE\"]}],[\"$\",\"nav\",null,{\"aria-label\":\"Footer navigation\",\"children\":[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap justify-center gap-4 text-sm tracking-wide\",\"children\":[[\"$\",\"li\",\"/members\",{\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/members\",\"className\":\"transition hover:text-foreground\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"children\":\"Members\"}]}],[\"$\",\"li\",\"/archive\",{\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/archive\",\"className\":\"transition hover:text-foreground\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"children\":\"Archive\"}]}],[\"$\",\"li\",\"https://hashnode.com/privacy-policy\",{\"children\":[\"$\",\"$L1d\",null,{\"href\":\"https://hashnode.com/privacy-policy\",\"className\":\"transition hover:text-foreground\",\"target\":\"_blank\",\"rel\":\"noopener\",\"children\":\"Privacy\"}]}],[\"$\",\"li\",\"https://hashnode.com/terms\",{\"children\":[\"$\",\"$L1d\",null,{\"href\":\"https://hashnode.com/terms\",\"className\":\"transition hover:text-foreground\",\"target\":\"_blank\",\"rel\":\"noopener\",\"children\":\"Terms\"}]}]]}]}],[\"$\",\"div\",null,{\"className\":\"pt-8 flex justify-center gap-6\",\"children\":[[\"$\",\"$L1d\",null,{\"href\":\"/sitemap.xml\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"flex items-center gap-2 text-sm transition hover:text-foreground\",\"title\":\"Sitemap\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-regular fa-sitemap\"}],[\"$\",\"span\",null,{\"children\":\"Sitemap\"}]]}],[\"$\",\"$L1d\",null,{\"href\":\"/rss.xml\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"flex items-center gap-2 text-sm transition hover:text-foreground\",\"title\":\"RSS Feed\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-regular fa-rss\"}],[\"$\",\"span\",null,{\"children\":\"RSS\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"pt-10 text-center\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"https://hashnode.com/?utm_source=https%3A%2F%2Fganhua.wang\u0026utm_medium=referral\u0026utm_campaign=blog_footer_logo\u0026utm_content=logo\",\"target\":\"_blank\",\"rel\":\"noopener\","])</script>
42<script>self.__next_f.push([1,"\"aria-label\":\"Visit Hashnode (opens in a new tab)\",\"children\":[\"$\",\"svg\",null,{\"fill\":\"none\",\"viewBox\":\"0 0 282 39\",\"aria-hidden\":\"true\",\"className\":\"h-6 w-auto min-w-[9.5rem] text-muted-foreground transition hover:text-foreground\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M2.68 13.032c-3.573 3.505-3.573 9.363 0 12.936L13.032 36.32c3.505 3.573 9.363 3.573 12.936 0L36.32 25.968c3.573-3.573 3.573-9.431 0-12.936L25.968 2.68c-3.573-3.573-9.431-3.573-12.936 0zm12.211 1.935c2.507-2.521 6.582-2.544 9.104-.038s2.544 6.582.038 9.104-6.582 2.544-9.104.038-2.544-6.582-.038-9.104\"}],[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$1e\"}]]}],\"className\":\"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg]:size-4 [\u0026_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-10 rounded-md text-xl px-5 py-4\",\"ref\":null}]}]]}]}]}]\nf:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Observerbility\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Introducing observability engineering and the tools within its ecosystem\\n\"}],[\"$\",\"link\",\"2\",{\"rel\":\"canonical\",\"href\":\"https://ganhua.wang/series/observerbility\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:title\",\"content\":\"Observerbility\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:description\",\"content\":\"Introducing observability engineering and the tools within its ecosystem\\n\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:url\",\"content\":\"https://ganhua.wang/series/observerbility\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:site_name\",\"content\":\"MicroFIRE\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image\",\"content\":\"https://ganhua.wang/api/og/page?og=eyJhdXRob3IiOiIlRTklOUIlQjdOIiwiaXNEZWZhdWx0TW9kZURhcmsiOmZhbHNlLCJkb21haW4iOiJnYW5odWEud2FuZyIsInRpdGxlIjoiT2JzZXJ2ZXJiaWxpdHkiLCJsb2dvIjoiaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2ODcyMzU4NDY4OTkvX0hwZXZlWHJkLnBuZyIsImZhdmljb24iOiJodHRwczovL2Nkbi5oYXNobm9kZS5jb20vcmVzL2hhc2hub2RlL2ltYWdlL3VwbG9hZC92MTY4MDM2NzAxNjU5My9WT3NsVUJRU1MuanBnIn0=\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Observerbility\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Introducing observability engineering and the tools within its ecosystem\\n\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:image\",\"content\":\"https://ganhua.wang/api/og/page?og=eyJhdXRob3IiOiIlRTklOUIlQjdOIiwiaXNEZWZhdWx0TW9kZURhcmsiOmZhbHNlLCJkb21haW4iOiJnYW5odWEud2FuZyIsInRpdGxlIjoiT2JzZXJ2ZXJiaWxpdHkiLCJsb2dvIjoiaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2ODcyMzU4NDY4OTkvX0hwZXZlWHJkLnBuZyIsImZhdmljb24iOiJodHRwczovL2Nkbi5oYXNobm9kZS5jb20vcmVzL2hhc2hub2RlL2ltYWdlL3VwbG9hZC92MTY4MDM2NzAxNjU5My9WT3NsVUJRU1MuanBnIn0=\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"https://cdn.hashnode.com/res/hashnode/image/upload/v1680367016593/VOslUBQSS.jpg\"}],[\"$\",\"$L1f\",\"16\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n14:\"$f:metadata\"\n"])</script>
42</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.