Files
im_server/server/metrics/db_pool_test.go
T

48 lines
1.1 KiB
Go

package metrics
import (
"database/sql"
"testing"
"time"
)
type fixedDBStats struct {
stats sql.DBStats
}
func (s fixedDBStats) Stats() sql.DBStats { return s.stats }
func TestDBPoolCollector(t *testing.T) {
RegisterDBPool("test", fixedDBStats{stats: sql.DBStats{
MaxOpenConnections: 32,
OpenConnections: 12,
InUse: 7,
Idle: 5,
WaitCount: 9,
WaitDuration: 1500 * time.Millisecond,
}})
families, err := Registry.Gather()
if err != nil {
t.Fatal(err)
}
want := map[string]bool{
"im_db_pool_max_open_connections": false,
"im_db_pool_open_connections": false,
"im_db_pool_in_use_connections": false,
"im_db_pool_idle_connections": false,
"im_db_pool_wait_total": false,
"im_db_pool_wait_duration_seconds_total": false,
}
for _, family := range families {
if _, ok := want[family.GetName()]; ok {
want[family.GetName()] = true
}
}
for name, found := range want {
if !found {
t.Errorf("metric %s was not gathered", name)
}
}
}