導航:這里主要是列出一個prometheus一些系統的學習過程,最后按照章節順序查看,由於寫作該文檔經歷了不同時期,所以在文中有時出現 的雲環境不統一,但是學習具體使用方法即可,在最后的篇章,有一個完整的騰訊雲的實戰案例。 8.kube-state-metrics 和 metrics-server 13.Grafana簡單用法 參考: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config https://www.bookstack.cn/read/prometheus_practice/introduction-README.md |
本文檔不講解基礎使用,僅講解,在使用中花費了很多時間的操作。更多的操作可以去參考grafana的導出json,這里只是做一個簡單的流程記錄
1.Grafana查詢界面
這樣可以將粒度調成最粗,可以拉取更長時間的數據.
2.變量
2.1 變量總類
用戶需要指定變量的名稱,后續用戶就可以通過$variable_name的形式引用該變量。Grafana目前支持6種不同的變量類型,而能和Prometheus一起工作的主要包含以下5種類型:
Label屬性用於指定界面中變量的顯示名稱,Hide屬性則用於指定在渲染界面時是否隱藏該變量的下拉框。
2.2 Query_result
Query_result是Query里面的一個種類,只是使用的方式不同.基本也能實現大致的目的,所以沒必要深究.
通過Dashboard頁面的Settings選項,可以進入Dashboard的配置頁面並且選擇Variables子菜單:
使用變量過濾需要的值
比如上圖中 query_result(kube_namespace_created{job=~"cn-lcm-prod.*"})
這里一步一步拆解;
上圖可以看到,獲取了類似於prometheus計算的結果,但是我們只需要其中的一個labels值,那么,可以繼續通過正則過濾,過濾出labels為namespace的值
結果可以看到,namespace的值過濾出來了,接下來就看在看板界面通過這些值篩選要顯示的信息(主機或者pod),也就是將這個變量傳入給prometheus sql來查詢。
2.3 變量圖解
3.函數
使用Query類型的變量能夠根據允許用戶能夠根據時間序列的特征維度對數據進行過濾。在定義Query類型變量時,除了使用PromQL查詢時間序列以過濾標簽的方式以外,Grafana還提供了幾個有用的函數:
3.1 label_values
可以看到,所有的namespace都返回了.但是建議使用query_result,因為如果是聯邦集群,那么所有集群的namespace都會抓取出來,這樣就就不是想要的結果了。
也可以這么使用
通過使用label_values函數,獲取到當前Promthues監控指標up中所有可選的job標簽的值:
label_values(up, job)