教程 > gorm 教程 > 阅读:78

gorm prometheus——迹忆客-ag捕鱼王app官网

gorm 提供了 prometheus 插件来收集 dbstats 和用户自定义指标

用法

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", // 使用 `dbname` 作为指标 label
  refreshinterval: 15,    // 指标刷新频率(默认为 15 秒)
  pushaddr:        "prometheus pusher address", // 如果配置了 `pushaddr`,则推送指标
  startserver:     true,  // 启用一个 http 服务来暴露指标
  httpserverport:  8080,  // 配置 http 服务监听端口,默认端口为 8080 (如果您配置了多个,只有第一个 `httpserverport` 会被使用)
  metricscollector: []prometheus.metricscollector {
    &prometheus.mysql{
      variablenames: []string{"threads_running"},
    },
  },  // 用户自定义指标
}))

用户自定义指标

我们可以通过 gorm prometheus 插件定义并收集自定义的指标,这需要实现 metriccollector 接口

type metricscollector interface {
  metrics(*prometheus) []prometheus.collector
}

mysql

gorm 提供了一个示例,说明如何收集 mysql 状态指标,查看 prometheus.mysql 获取详情

&prometheus.mysql{
  // 指标名前缀,默认为 `gorm_status_`
  // 例如: threads_running 的指标名就是 `gorm_status_threads_running`
  prefix: "gorm_status_",
  // 拉取频率,默认使用 prometheus 的 refreshinterval
  interval: 100,
  // 从 show status 选择变量变量,如果不设置,则使用全部的状态变量
  variablenames: []string{"threads_running"},
}

查看笔记

扫码一下
查看教程更方便
网站地图