mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Metrics: Fixed grafana_database_conn_* metrics, and added new go_sql_stats_* metrics as eventual replacement (#54405)
* metrics: Fix broken DBStats metrics Signed-off-by: Dave Henderson <dave.henderson@grafana.com> * Register the sqlstats metrics by default Signed-off-by: Dave Henderson <dave.henderson@grafana.com> Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
This commit is contained in:
68
pkg/services/sqlstore/sqlstore_metrics_test.go
Normal file
68
pkg/services/sqlstore/sqlstore_metrics_test.go
Normal file
@@ -0,0 +1,68 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user