「你的服務怎麼監控?」面試被問到,我只答得出「看 log 有沒有 error」。事後查了資料,Grafana、SLO 這些名詞認得了,監控和可觀測性差在哪還是講不清楚。
一開始不碰工具,先講清楚 SLI/SLO 與三大支柱各能回答什麼問題。接著用 kind 在筆電養一個服務,在其中埋三個故障,之後用 metrics、logs、traces 逐一查出來。也會實作告警,重點是不製造告警疲勞。最後讓一隻 agent 讀 Alertmanager,再用 OpenTelemetry 觀測它自己,並把整套環境寫成 Terraform,砍掉叢集重建驗收。
寫給和我一樣一知半解的人。
起心動念 前陣子在求職的時候常常被問到 k8s 相關的問題,觀測的指標有哪些,但我總是一問三不知,只能說出查看 log 有沒有 error。面試結束後我拼命去查...
昨天說我們這個系列要在 30 天內從 0 開始學會可觀測性,但今天我們要先把腳步放慢,不實際動手安裝工具,先從我們到底會看哪些指標開始。 三個常被搞混的名詞 在...
昨天決定了要看什麼(SLI 和 SLO),今天講這些資料從哪裡來。 在 Google 上搜「可觀測性」大概三分鐘就會遇到一個詞:三大支柱(three pilla...
昨天講完三本柱,今天我們來列清單,看這 30 天到底要在叢集裡裝哪些東西。 我自己查資料的時候,覺得很多教學太快跳到指令的部分,直接教怎麼安裝和執行,但沒有說明...
前面四天的觀念講完了,今天正式開始動手。 這篇的目標其實很小,就是把一個叢集開起來,然後說明為什麼是這樣開的。但是「為什麼」的部分比指令重要,網路上教你打 ki...
昨天叢集開好了,今天要往裡面放東西。 我們要建立一個壞掉的服務,但是不會壞的太明顯。 沒有一個故障是「服務掛掉」。 服務掛掉其實是最好查的,Pod 會變紅、...
今天要做一件有點反直覺的事:故意不裝任何監控工具,只用 kubectl 去查昨天埋的那三個故障。 為什麼要花一天做一件註定失敗的事?因為我認為實際體驗一次少了工...
昨天的結論是四句話,今天要把第一句劃掉:只有現在,沒有歷史。 也就是裝 Prometheus。但是這篇的重點不是安裝指令,那其實只有兩行,重點是另外兩件事:Op...
昨天 Prometheus 開始存資料了,但是它自己的畫面很陽春。今天接上 Grafana,一個把資料畫成圖表的網頁介面,它自己不存任何資料,只負責去問別人要。...
昨天做圖的時候直接貼了兩行查詢沒解釋,今天補上。 PromQL 是 Prometheus 的查詢語言。它跟 SQL 完全不像,因為它處理的東西不一樣:SQL 查...