go-zero Demo添加prometheus支持
本文将介绍如何在 zero-helloworld
中支持 prometheus
监控。
分别修改 search-api
、user-api
和 user-rpc
服务的配置文件,在文件中添加 prometheus
的 exporter
配置,如下:
- search-api
# 监控
Prometheus:
Host: 0.0.0.0
Port: 9091
Path: /metrics
- user-api
# 监控
Prometheus:
Host: 0.0.0.0
Port: 9092
Path: /metrics
- user-rpc
# 监控
Prometheus:
Host: 0.0.0.0
Port: 9093
Path: /metrics
在项目中新建 zero-helloworld/data/prometheus/server/prometheus.yml
配置文件,以便启动 prometheus server
时使用。内容如下:
scrape_configs:
- job_name: "prometheus"
scrape_interval: 5s #重写了全局抓取间隔时间,由15秒重写成5秒
static_configs:
- targets: ["127.0.0.1:9090"]
- job_name: "search-api"
static_configs:
- targets: ["192.168.0.104:9091"]
- job_name: "user-api"
static_configs:
- targets: ["192.168.0.104:9092"]
- job_name: "user-rpc"
static_configs:
- targets: ["192.168.0.104:9093"]
由于 prometheus server
在 docker
容器中启动,配置文件中三个服务的 host
地址需指定为通过 ifconfig
获取的本机 ip
, 若填为 127.0.0.1
等约定地址,则会访问容器内的ip地址。
使用 docker run --name localprom -d -p 9090:9090 -v zero-helloworld/data/prometheus/server/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
命令在docker容器中启动 prometheus
服务。具体步骤可参考以下链接:
登录 localhost:9090
查看监控到的指标:
本文只对如何在 go-zero
中接入 prometheus
进行了介绍。业务中如何定义上报指标可自行按需扩展。