go-zero Demo添加prometheus支持

本文将介绍如何在 zero-helloworld中支持 prometheus监控。

各服务配置文件修改

分别修改 search-apiuser-apiuser-rpc服务的配置文件,在文件中添加 prometheusexporter配置,如下:

  1. search-api
# 监控
Prometheus:
  Host: 0.0.0.0
  Port: 9091
  Path: /metrics
  1. user-api
# 监控
Prometheus:
  Host: 0.0.0.0
  Port: 9092
  Path: /metrics
  1. user-rpc
# 监控
Prometheus:
  Host: 0.0.0.0
  Port: 9093
  Path: /metrics

添加prometheus server配置文件

在项目中新建 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 serverdocker容器中启动,配置文件中三个服务的 host地址需指定为通过 ifconfig获取的本机 ip, 若填为 127.0.0.1等约定地址,则会访问容器内的ip地址。

启动prometheus服务

使用 docker run --name localprom -d -p 9090:9090 -v zero-helloworld/data/prometheus/server/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus命令在docker容器中启动 prometheus服务。具体步骤可参考以下链接:

docker启动prometheus和grafana

通过prometheus web查看metrics

登录 localhost:9090查看监控到的指标:

prometheus

Note

本文只对如何在 go-zero中接入 prometheus进行了介绍。业务中如何定义上报指标可自行按需扩展。

参考

使用Prometheus搞定微服务监控

服务监控

go-zero全功能demo