You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang中配置GORM与Prometheus并解决运行问题

GORM + Prometheus 配置补全步骤

结合你提供的代码与Docker配置,还需要完成以下关键步骤来让整个链路正常运行:

1. 修复GORM Prometheus插件配置

你的代码中PushAddr字段填写了无效值,该字段用于指定Prometheus Pushgateway地址,若无需推送指标到Pushgateway,直接删除该字段或设为空字符串即可。同时确保已安装正确的依赖包:

go get gorm.io/driver/postgres
go get gorm.io/gorm
go get gorm.io/plugin/prometheus

2. 配置Prometheus抓取服务指标

在Prometheus配置文件prometheus.yml中添加抓取任务,让Prometheus定期拉取你的Golang服务暴露的指标(代码中已开启8080端口用于暴露指标):

scrape_configs:
  - job_name: 'golang-gorm-service'
    scrape_interval: 15s
    static_configs:
      - targets: ['你的Golang服务地址:8080']

若Golang服务与Prometheus在同一个Docker网络(asd)中,直接填写服务容器名或容器IP即可,例如你的服务容器名为go-app,则填写go-app:8080。

3. 完善Docker Compose(若Golang服务用容器部署)

如果你的Golang服务通过Docker部署,需要将其加入asd网络,确保Prometheus能访问到它的8080端口,同时配置好数据库连接的环境变量:

go-app:
  build: .
  container_name: go-app
  ports:
    - 8080:8080
  environment:
    - DB_HOST=postgres # 对应你的PostgreSQL容器名
    - DB_USER=你的数据库用户名
    - DB_PASS=你的数据库密码
    - DB_NAME=你的数据库名
    - DB_PORT=5432
    - DB_SSL_MODE=disable
    - DB_TIMEZONE=Asia/Shanghai
  networks:
    - asd
  depends_on:
    - postgres

同时确保你的PostgreSQL容器也加入asd网络,若还未配置,需补充PostgreSQL的Docker Compose项。

4. 验证指标暴露状态

启动所有服务后,访问http://你的Golang服务地址:8080/metrics,若页面中出现gorm_前缀的指标,说明GORM的Prometheus插件已正常工作。

5. Grafana配置可视化

  • 访问Grafana(http://localhost:3001),使用配置的账号密码登录。
  • 进入「数据源」页面,添加Prometheus数据源,填写Prometheus地址:同网络下填http://prometheus:9090,否则填http://你的主机IP:9190。
  • 导入或自定义GORM数据库指标的仪表盘,即可实现指标可视化。

内容的提问来源于stack exchange,提问作者icsarisakal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:53:20