package pgbouncer import ( "fmt" "testing" "github.com/influxdata/telegraf/plugins/inputs/postgresql" "github.com/influxdata/telegraf/testutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestPgBouncerGeneratesMetricsIntegration(t *testing.T) { t.Skip("Skipping due to not allowed (SQLSTATE 08P01)") p := &PgBouncer{ Service: postgresql.Service{ Address: fmt.Sprintf( "host=%s user=pgbouncer password=pgbouncer dbname=pgbouncer port=6432 sslmode=disable", testutil.GetLocalHost(), ), IsPgBouncer: true, }, } var acc testutil.Accumulator require.NoError(t, p.Start(&acc)) require.NoError(t, p.Gather(&acc)) intMetrics := []string{ "total_requests", "total_received", "total_sent", "total_query_time", "avg_req", "avg_recv", "avg_sent", "avg_query", "cl_active", "cl_waiting", "sv_active", "sv_idle", "sv_used", "sv_tested", "sv_login", "maxwait", } int32Metrics := []string{} metricsCounted := 0 for _, metric := range intMetrics { assert.True(t, acc.HasInt64Field("pgbouncer", metric)) metricsCounted++ } for _, metric := range int32Metrics { assert.True(t, acc.HasInt32Field("pgbouncer", metric)) metricsCounted++ } assert.True(t, metricsCounted > 0) assert.Equal(t, len(intMetrics)+len(int32Metrics), metricsCounted) }