今天有个python的grpc server,新起的服务,有一些功能还在调试需要测下性能,拿到rps,tp99,cpu等信息。就想着部署下prometheus+grafana在单机下使用,原来k8s下linkerd里面已经集成了这些,并且linkerd代理了每个服务,所以可以跨语言。我这里是单机的,服务的metric需要单独设置,官方的grpc只有go/java的exporter,网上找了只有几颗星的https://github.com/lchenn/py-grpc-prometheus个人实现的python版本,先拿来试着用,本文主要记录下单机部署prometheus+grafana的过程
prometheus
直接docker运行的,参考官方的步骤,prometheus只是pull数据的,本身不收集数据,所以docker运行简单方便。需要自己配置exporter,所以命令可以挂在宿主机的yml文件进去:
1 | docker run \ |
prometheus.yml简单配置:
1 | global: |
node exporter
参考官方步骤即可,然后配置到prometheus的配置文件就行了。
grafana
参考官方的步骤,我这里因为是阿里云的机器别人配置的,好像是有外部的防火墙配置,所以需要修改默认的3000端口,/etc/grafana/grafana.ini
里面找到port就行了改一下,然后重启systemctl restart grafana-server;默认的用户和密码也在这个文件里面,第一次登陆成功会提升修改密码的。
然后就是配置数据源为prometheus:
再接着加dashboard,官方有模板,拿来用就行,我目前只部署了系统数据收集的node exporter,所以copy this过来就ok了,最终结果:
reference
https://help.aliyun.com/document_detail/123108.html
https://grafana.com/grafana/dashboards/1860-node-exporter-full/
https://github.com/lchenn/py-grpc-prometheus
https://grafana.com/docs/grafana/v9.0/setup-grafana/installation/rpm/