如何在 Golang 中设置 Prometheus 和 Gorm?

How Can I Set Up Prometheus And Gorm in Golang?

提问人:icsarisakal 提问时间:11/6/2023 最后编辑:Jan Garajicsarisakal 更新时间:11/6/2023 访问量:49

问:

我正在尝试连接 GORM 和 Prometheus。当我查找 gorm 文档时,他们只给出了配置,但我找不到说明。

我完全按照他们的说法设置,但无法执行。


dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=%s TimeZone=%s", os.Getenv("DB_HOST"), os.Getenv("DB_USER"), os.Getenv("DB_PASS"), os.Getenv("DB_NAME"), os.Getenv("DB_PORT"), os.Getenv("DB_SSL_MODE"), os.Getenv("DB_TIMEZONE"))
    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
        DisableForeignKeyConstraintWhenMigrating: true,
        Logger:                                   logger.Default.LogMode(logger.Info),
    })
    if err != nil {
        return err
    }

    db.Use(prometheus.New(prometheus.Config{
        DBName:          "postgres", 
        RefreshInterval: 15,    
        PushAddr:        "idk what's pusher", 
        StartServer:     true,  
        HTTPServerPort:  8080,  
        MetricsCollector: []prometheus.MetricsCollector {
            &prometheus.Postgres{
                VariableNames: []string{"Threads_running"},
            },
        },  // user defined metrics
    }))

和我的撰写文件。

prometheus:
    image: prom/prometheus
    container_name: prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
    ports:
      - 9190:9090
    restart: unless-stopped
    networks:
      - asd
    volumes:
      - ./prometheus:/etc/prometheus
      - prom_data:/prometheus
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - 3001:3000
    restart: unless-stopped
    networks:
      - asd
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=grafana
    volumes:
      - ./grafana:/etc/grafana/provisioning/datasources

您能描述一下其他步骤吗?

Docker Go 普罗米修斯 GO-GORM

评论

0赞 h0ch5tr4355 11/6/2023
您的 go 应用程序是否已经有一个 http 服务器来提供例如以下指标?如果是,对于基本指标来说应该已经足够了/metricsdb.Use(prometheus.New(prometheus.Config{ DBName: config.Database, })
0赞 icsarisakal 11/6/2023
@h0ch5tr4355 nope no metric
0赞 icsarisakal 11/6/2023
是否需要创建指标终端节点
0赞 h0ch5tr4355 11/6/2023
我想是的。我知道有一个将指标推送到 prometheus 的接口,但我不确定 GORM 是否实现了它。

答: 暂无答案