提问人:icsarisakal 提问时间:11/6/2023 最后编辑:Jan Garajicsarisakal 更新时间:11/6/2023 访问量:49
如何在 Golang 中设置 Prometheus 和 Gorm?
How Can I Set Up Prometheus And Gorm in Golang?
问:
我正在尝试连接 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
您能描述一下其他步骤吗?
答: 暂无答案
评论
/metrics
db.Use(prometheus.New(prometheus.Config{ DBName: config.Database, })