mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
package sqlstore
 | 
						|
 | 
						|
import (
 | 
						|
	"database/sql"
 | 
						|
	"strings"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/dlmiddlecote/sqlstats"
 | 
						|
	"github.com/prometheus/client_golang/prometheus/testutil"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func TestSQLStore_Metrics(t *testing.T) {
 | 
						|
	stats := sql.DBStats{
 | 
						|
		MaxOpenConnections: 9,
 | 
						|
		OpenConnections:    8,
 | 
						|
		InUse:              4,
 | 
						|
		Idle:               4,
 | 
						|
		WaitCount:          5,
 | 
						|
		WaitDuration:       6 * time.Second,
 | 
						|
		MaxIdleClosed:      7,
 | 
						|
		MaxIdleTimeClosed:  8,
 | 
						|
		MaxLifetimeClosed:  9,
 | 
						|
	}
 | 
						|
 | 
						|
	m := newSQLStoreMetrics(&fakeStatsGetter{stats: stats})
 | 
						|
 | 
						|
	require.NoError(t, testutil.CollectAndCompare(m, strings.NewReader(`
 | 
						|
		# HELP grafana_database_conn_idle The number of idle connections
 | 
						|
		# TYPE grafana_database_conn_idle gauge
 | 
						|
		grafana_database_conn_idle 4
 | 
						|
		# HELP grafana_database_conn_in_use The number of connections currently in use
 | 
						|
		# TYPE grafana_database_conn_in_use gauge
 | 
						|
		grafana_database_conn_in_use 4
 | 
						|
		# HELP grafana_database_conn_max_idle_closed_seconds The total number of connections closed due to SetConnMaxIdleTime
 | 
						|
		# TYPE grafana_database_conn_max_idle_closed_seconds counter
 | 
						|
		grafana_database_conn_max_idle_closed_seconds 8
 | 
						|
		# HELP grafana_database_conn_max_idle_closed_total The total number of connections closed due to SetMaxIdleConns
 | 
						|
		# TYPE grafana_database_conn_max_idle_closed_total counter
 | 
						|
		grafana_database_conn_max_idle_closed_total 7
 | 
						|
		# HELP grafana_database_conn_max_lifetime_closed_total The total number of connections closed due to SetConnMaxLifetime
 | 
						|
		# TYPE grafana_database_conn_max_lifetime_closed_total counter
 | 
						|
		grafana_database_conn_max_lifetime_closed_total 9
 | 
						|
		# HELP grafana_database_conn_max_open Maximum number of open connections to the database
 | 
						|
		# TYPE grafana_database_conn_max_open gauge
 | 
						|
		grafana_database_conn_max_open 9
 | 
						|
		# HELP grafana_database_conn_open The number of established connections both in use and idle
 | 
						|
		# TYPE grafana_database_conn_open gauge
 | 
						|
		grafana_database_conn_open 8
 | 
						|
		# HELP grafana_database_conn_wait_count_total The total number of connections waited for
 | 
						|
		# TYPE grafana_database_conn_wait_count_total counter
 | 
						|
		grafana_database_conn_wait_count_total 5
 | 
						|
		# HELP grafana_database_conn_wait_duration_seconds The total time blocked waiting for a new connection
 | 
						|
		# TYPE grafana_database_conn_wait_duration_seconds counter
 | 
						|
		grafana_database_conn_wait_duration_seconds 6
 | 
						|
	`)))
 | 
						|
}
 | 
						|
 | 
						|
type fakeStatsGetter struct {
 | 
						|
	stats sql.DBStats
 | 
						|
}
 | 
						|
 | 
						|
var _ sqlstats.StatsGetter = (*fakeStatsGetter)(nil)
 | 
						|
 | 
						|
func (f *fakeStatsGetter) Stats() sql.DBStats {
 | 
						|
	return f.stats
 | 
						|
}
 |