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