高级主题

Prometheus

qianmoQqianmoQ· 更新于 2026-09-23· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

GORM 提供了 Prometheus 插件,用于收集 DBStats 或用户自定义指标

https://github.com/go-gorm/prometheus

使用方法

import (
  "gorm.io/gorm"
  "gorm.io/driver/sqlite"
  "gorm.io/plugin/prometheus"
)

db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})

db.Use(prometheus.New(prometheus.Config{
  DBName:          "db1", 
  RefreshInterval: 15,    
  PushAddr:        "prometheus pusher address", 
  StartServer:     true,  
  HTTPServerPort:  8080,  
  MetricsCollector: []prometheus.MetricsCollector {
    &prometheus.MySQL{
      VariableNames: []string{"Threads_running"},
    },
  },  
}))

自定义指标

您可以定义自己的指标,并通过 GORM Prometheus 插件进行收集,这需要实现 MetricsCollector 接口

type MetricsCollector interface {
  Metrics(*Prometheus) []prometheus.Collector
}

MySQL

GORM 提供了一个示例,展示如何收集 MySQL 状态作为指标,请参阅 prometheus.MySQL

&prometheus.MySQL{
  Prefix: "gorm_status_",
  
  
  Interval: 100,
  
  VariableNames: []string{"Threads_running"},
  
}

GitHub tag (latest SemVer)

评论

登录后参与评论

正在加载评论…