架構圖所在位置
Prometheus Web UI
如何在Rancher裡面查看Web UI
將Web UI轉到自己的電腦查看
kubectl -n cattle-monitoring-system port-forward prometheus-rancher-monitoring-prometheus-0 9090:9090
Web UI是普羅米修斯內建附帶的狀態查看頁面,可以從這邊來看現在普羅米修斯所使用的config或者endpoint的設定
Grafana
Grafana完整的支持PromQL,並且提供自動補完功能,非常方便
安裝
sudo apt-get install -y apt-transport-https sudo apt-get install -y software-properties-common wget sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
添加此存儲庫以獲得穩定版本:
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
接著
sudo apt-get update # Install the latest OSS release: sudo apt-get install grafana # Install the latest Enterprise release: sudo apt-get install grafana-enterprise
在k8s安裝請詳見: https://grafana.com/docs/grafana/latest/setup-grafana/installation/kubernetes/
PromQL 基本使用
PromQL 查詢結果主要有3 種類型:
- 瞬時數據(Instant vector): 包含一組時序,每個時序只有一個點,例如:http_requests_total
- 區間數據(Range vector): 包含一組時序,每個時序有多個點,例如:http_requests_total[5m]
- 純量數據(Scalar): 純量只有一個數字,沒有時序,例如:count(http_requests_total)
另外,可到target畫面找該目標可用以識別的labels來區別
不同的資料來源。例如: SRS core和edge都是SRS都吃相同的
資料,要讓Grafana個別顯示出資料就是需要label來做搜尋,
就可以用完全相同的exporter在不同的服務中。
更多的PromQL教學: https://prometheus.io/docs/prometheus/latest/querying/basics/
提供了許多運算功能: https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators
可使用運算子=~後面的值接regular expression來做模糊搜尋(eg: name=~“.+“ )
將普羅米修斯的資料放上.Net專案
普羅米修斯也有提供API讓程式呼叫並取得資料,而且各種語言都有第三方推出套件可以簡易的與普羅米修斯的API取資料
.Net的參考套件
https://github.com/prometheus-net/prometheus-net
可以使用.NET從普羅米修斯取資料,並開發自己想要的監控內容