部署 httpserver
參考:
修改 httpserver 代碼,新增 metrics
代碼:httpserver
參考 main.go 和 metrics 的代碼
增加2s的隨機(jī)延遲

image.png
添加延時(shí) Metric

image.png

image.png
參考 Readme 制作 docker 鏡像
deployment 中增加 Prometheus 的配置

image.png
部署到 k8s 集群
kubectl apply -f httpserver-deploy.yaml
# 查看 metrics
curl 192.168.109.106:8080/metrics

image.png

image.png
從 Promethus 界面中查詢延時(shí)指標(biāo)數(shù)據(jù)
安裝 helm
wget https://get.helm.sh/helm-v3.8.1-linux-amd64.tar.gz
tar zxvf helm-v3.8.1-linux-amd64.tar.gz
sudo cp linux-amd64/helm /usr/local/bin/
helm version
安裝 grafana
helm repo add grafana https://grafana.github.io/helm-charts
helm pull grafana/loki-stack
tar -xvf loki-stack-2.6.1.tgz
helm upgrade --install loki ./loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=falase

image.png
安裝后報(bào)錯(cuò),找不到 pvc
修改 deploy 將 pvc 改為 emptydir
k edit deploy loki-prometheus-server

image.png
修改為

image.png
修改 svc 的類型為 NodePort
kubectl edit svc loki-grafana -oyaml

image.png
改為

image.png
修改成功

image.png
瀏覽器訪問頁面,輸入宿主機(jī)的 ip 并帶上 loki-grafana 的端口:
http://192.168.56.100:32754/login

image.png
獲取用戶名和密碼
kubectl get secret loki-grafana -oyaml
# 找到 admin-user 和 admin-password,并解碼
echo "xxx" | base64 -d

image.png
登錄頁面

image.png
查看延時(shí)指標(biāo)數(shù)據(jù)
Explore --> Prometheus
輸入 httpserver_execution_latency_seconds_bucket
點(diǎn)擊右側(cè)的 “Run query” 按鈕,查看指標(biāo)信息

image.png
創(chuàng)建一個(gè) Grafana Dashboard 展現(xiàn)延時(shí)分配情況
httpserver-latency.json
將 httpserver-latency.json 中的內(nèi)容 import 進(jìn) grafana 中,如下圖所示:

image.png

image.png

image.png