iT邦幫忙

2021 iThome 鐵人賽

DAY 13
1

那麼今天再回來繼續處理我們的 dashboard 吧,上次雖然找到了這個 caddy 的 dashboard,不過卻發現它沒有辦法顯示資料。

檢查 panel 所使用的查詢

通常遇到這種情況,我們可以直接打開 panel(代表 dashboard 裡面的一張圖),來檢查它所下的查詢是否與我們預期的一樣,左鍵點選之後按下 Edit 就能打開了。

然後在畫面下方就能看到這個 panel 所使用的查詢語句是 sum(rate(caddy_http_requests_total{handler="reverse_proxy", service="[[service]]", namespace="[[namespace]]"}[1m])),可以看到裡面它透過 servicenamespace 兩個 label 來查詢指標。然而我在文件裡面並沒有看到這兩個 label,所以我想或許是這是來自於舊版本的 caddy metrics 的 label,但是在現行的版本裡面,存在一個 server label 用來區分不同的 block,因此我就嘗試把它改成用 server 來查詢吧。

修改變數

首先需要修改的是變數,也就是本來左上角的 Service 跟 Namespace。變數可以讓我們在設計 dashboard 的時候,不用寫死查詢的語句,例如說當有多個 data source 的時候,就可以把它設為變數,避免替每個 data source 設一個新的 dashboard。

從右上角的小齒輪,打開 dashboard 的設定,點選左邊的 Variables 進入變數的設定頁面。

可以看到已經存在兩個變數了,我們可以透過右上角的 New 按鈕新增一個。首先將它命名為 server,然後在下面的 Query 填入 label_values(caddy_http_requests_total, server),這個 label_values 的意思是說,根據給定的指標跟 label 去取得值,例如說現在填入的表達式代表從 caddy_http_requests_total 這個指標裡面,找出所有 server 這個 label 的值。填上去之後,可以檢查最底下的 preview 是否有東西出現,像是我這邊就會看到 srv0srv1 兩個值。接下來把下面的 Multi-value 打開,這個選項代表是否可以同時選取多個變數的值,若是有打開的話,就可以在查詢時同時顯示多個 server 的指標。

按下 Update,回到 dashboard 的頁面,應該就可以看到 Server 這個變數出現在左上角了。

修改 panel

接下來,我們就要修改 panel 讓它可以正常查詢到結果。一樣按 Edit 打開 panel,把原本的查詢語句改成 rate(caddy_http_requests_total{handler="reverse_proxy", server=~"$server"}[$__interval]),這句代表的意思是,根據當前設定的變數 server,去過濾 caddy_http_requests_total 這項指標,取它的增長速率,因為對於每個 server 來說,這項指標都是唯一的,所以相較於原本的查詢,sum 是可以拿掉的。

然後關於區間的部分,使用了 Grafana 內建變數之一的 $__rate_interval,根據 Prometheus data source 的文件,這通常是比 $__interval 更好的選項。

另外這裡還有一點需要注意,當使用 Grafana 的變數時,label 的比較要用 =~,也就是 regex 的匹配,而不是 =,因為當有多個數值的時候,查詢的部分會被替換成類似 (first|second) 這樣的 regex 的格式。

修改完之後,隨便發幾個請求給 NOJ,應該就能看到圖表顯示出來了。

結果

其他的 panel 調整也都是大同小異,基本上依照上面的邏輯去更新就好,最後的結果會如下圖所示。

小結

話說在處理這個的時候我也嘗試了一下其他的 dashboard,結果發現 Caddy exporter 這個 dashboard 看起來是可以正常使用的。不過兩個 dashboard 似乎都跟我想要的情形稍微有點不同,接下來就試著把它調整成喜歡的形狀吧。話說關於原本的 panel 裡面使用了 sum(rate(...)) 而不是 rate(sum(...)),雖然兩者看起來應該是等價的,然而 SRE book 裡面建議應要使用前面的形式,當初其實我看不懂原因,今天找到這篇文章我覺得講得挺清楚,給各位參考。


上一篇
Day 12:Commitizen
下一篇
Day 14:Load testing
系列文
這個 site 就是遜啦 - SRE 30 天登大人之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言