func NewDBStatsCollector()

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,
		),
	}
}