「你的服務怎麼監控?」面試被問到,我只答得出「看 log 有沒有 error」。事後查了資料,Grafana、SLO 這些名詞認得了,監控和可觀測性差在哪還是講不清楚。
一開始不碰工具,先講清楚 SLI/SLO 與三大支柱各能回答什麼問題。接著用 kind 在筆電養一個服務,在其中埋三個故障,之後用 metrics、logs、traces 逐一查出來。也會實作告警,重點是不製造告警疲勞。最後讓一隻 agent 讀 Alertmanager,再用 OpenTelemetry 觀測它自己,並把整套環境寫成 Terraform,砍掉叢集重建驗收。
寫給和我一樣一知半解的人。
昨天講了四個黃金訊號,今天要講另外兩套:USE 和 RED。 剛開始看到這三套的時候覺得也太複雜了吧,為什麼差不多東西要出三套,到底要用哪一個?查了之後發現這個...
昨天講完 USE 和 RED 兩套方法論,也把三個服務的 RED 九宮格做出來了。今天做另外一半:節點的 USE。 然後我打算做一個小實驗,把 pricing...
昨天把 pricing 擴成兩份,發現流量全壓在同一個 Pod 上,結論是「聚合會藏東西」。而聚合藏不藏得住,取決於當初把什麼寫進標籤裡。 這是 Metrics...
昨天把 Metrics 區塊收尾了,今天開始 Logs。這一天一樣不裝任何東西,講一件我原本覺得很無聊、後來發現是整個區塊前提的事。 坦白說,我第一次看到「結構...
昨天講完為什麼 log 要寫成結構化的,今天把它們收起來。 要裝兩個東西:Loki(存 log 的資料庫)和 Grafana Alloy(去讀 log 再送進...
今天是這個系列第一次破案。 Day 6 埋了三個故障,第一個是「算錯價但回 200」——部分商品沒套到折扣,狀態碼正常、速度正常、錯誤率 0。Day 7 用 k...
昨天結案的時候有一條「查不到的」:pricing 的 WARN 跟 gateway 的 checkout 之間沒有共同欄位,我知道兩邊各發生幾次,就是對不起來。...
昨天講了 trace 的原理,今天講產生它的工具:OpenTelemetry,通常簡稱 OTel。 這篇要回答三個問題:它為什麼會出現、它包含哪些東西、還有那個...
今天是這 30 天唯一要認真寫程式的一天。 instrumentation(埋點)的意思是在程式裡加上產生遙測資料的程式碼。它分自動和手動兩種,我兩種都會用,因...
Day 3 我給自己立了一個判準:從一張圖上的異常點出發,要幾次點擊才能看到造成它的那筆 log?如果答案是「開三個瀏覽器分頁」,那我有的是三個孤島,不是三大支...