in metrics/sqlmetrics/dbstats.go [146:212]
func NewDBStatsCollector(dbName string, sg DBStatsGetter, opts ...DBStatsCollectorOption) *DBStatsCollector {
config := applyDBStatsCollectorOptions(opts)
if config.extraLabels == nil {
config.extraLabels = make(prometheus.Labels)
}
config.extraLabels[dbNameLabel] = dbName
return &DBStatsCollector{
sg: sg,
maxOpenDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, maxOpenConnectionsName),
maxOpenConnectionsDesc,
nil,
config.extraLabels,
),
openDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, openConnectionsName),
openConnectionsDesc,
nil,
config.extraLabels,
),
inUseDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, inUseName),
inUseDesc,
nil,
config.extraLabels,
),
idleDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, idleName),
idleDesc,
nil,
config.extraLabels,
),
waitCountDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, waitCountName),
waitCountDesc,
nil,
config.extraLabels,
),
waitDurationDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, waitDurationName),
waitDurationDesc,
nil,
config.extraLabels,
),
maxIdleClosedDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, maxIdleClosedName),
maxIdleClosedDesc,
nil,
config.extraLabels,
),
maxIdleTimeClosedDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, maxIdleTimeClosedName),
maxIdleTimeClosedDesc,
nil,
config.extraLabels,
),
maxLifetimeClosedDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, subsystem, maxLifetimeClosedName),
maxLifetimeClosedDesc,
nil,
config.extraLabels,
),
}
}