通过 Promethus 监控 httpserver 的请求延迟

部署 httpserver

参考:

  • k8s 部署 httpserver
  • k8s 将 httpserver 对外提供服务

修改 httpserver 代码,新增 metrics

代码:httpserver
参考 main.go 和 metrics 的代码

增加2s的随机延迟

image.png

添加延时 Metric

image.png
image.png

参考 Readme 制作 docker 镜像

Readme.md

deployment 中增加 Prometheus 的配置

httpserver-deploy.yaml

image.png

部署到 k8s 集群

kubectl apply -f httpserver-deploy.yaml
# 查看 metrics
curl 192.168.109.106:8080/metrics
image.png

image.png

从 Promethus 界面中查询延时指标数据

安装 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

安装后报错,找不到 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

浏览器访问页面,输入宿主机的 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

查看延时指标数据

Explore --> Prometheus
输入 httpserver_execution_latency_seconds_bucket
点击右侧的 “Run query” 按钮,查看指标信息

image.png

创建一个 Grafana Dashboard 展现延时分配情况

httpserver-latency.json
将 httpserver-latency.json 中的内容 import 进 grafana 中,如下图所示:

image.png

image.png

image.png

你可能感兴趣的:(通过 Promethus 监控 httpserver 的请求延迟)