...
1 package sql
2
3 import (
4 pm "github.com/prometheus/client_golang/prometheus"
5
6 )
7
8 type PoolSizeCollector struct {
9 counterDesc *pm.Desc
10 }
11
12 func (c *PoolSizeCollector) Describe(ch chan<- *pm.Desc) {
13 ch <- c.counterDesc
14 }
15
16 func (c *PoolSizeCollector) Collect(ch chan<- pm.Metric) {
17 for _, db := range databases {
18 value := float64(db.dbcon.Stats().OpenConnections)
19 ch <- pm.MustNewConstMetric(
20 c.counterDesc,
21 pm.CounterValue,
22 value,
23 db.dbname,
24 )
25
26 }
27 }
28 func NewPoolSizeCollector() *PoolSizeCollector {
29 x := &PoolSizeCollector{
30 counterDesc: pm.NewDesc("sql_pool_size", "sql pool size",
31 []string{"database"},
32 nil),
33 }
34 return x
35 }
36
View as plain text