From 66a22531ffa519107b330d724826a95eb743c904 Mon Sep 17 00:00:00 2001 From: Felix Yuan Date: Thu, 29 Jun 2023 14:54:16 -0700 Subject: [PATCH] Continue if labels are bad Signed-off-by: Felix Yuan --- collector/pg_stat_user_indexes.go | 17 +++++++---------- collector/pg_stat_user_indexes_test.go | 8 ++++---- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/collector/pg_stat_user_indexes.go b/collector/pg_stat_user_indexes.go index d7b289cc..865d641e 100644 --- a/collector/pg_stat_user_indexes.go +++ b/collector/pg_stat_user_indexes.go @@ -82,19 +82,16 @@ func (c *PGStatUserIndexesCollector) Update(ctx context.Context, instance *insta if err := rows.Scan(&schemaname, &relname, &indexrelname, &idxScan, &idxTupRead, &idxTupFetch); err != nil { return err } - schemanameLabel := "unknown" - if schemaname.Valid { - schemanameLabel = schemaname.String + if !schemaname.Valid { + continue } - relnameLabel := "unknown" - if relname.Valid { - relnameLabel = relname.String + if !relname.Valid { + continue } - indexrelnameLabel := "unknown" - if indexrelname.Valid { - indexrelnameLabel = indexrelname.String + if !indexrelname.Valid { + continue } - labels := []string{schemanameLabel, relnameLabel, indexrelnameLabel} + labels := []string{schemaname.String, relname.String, indexrelname.String} idxScanMetric := 0.0 if idxScan.Valid { diff --git a/collector/pg_stat_user_indexes_test.go b/collector/pg_stat_user_indexes_test.go index b0c7fde1..3d25d2f3 100644 --- a/collector/pg_stat_user_indexes_test.go +++ b/collector/pg_stat_user_indexes_test.go @@ -83,7 +83,7 @@ func TestPgStatUserIndexesCollectorNull(t *testing.T) { "idx_tup_fetch", } rows := sqlmock.NewRows(columns). - AddRow(nil, nil, nil, nil, nil, nil) + AddRow("foo", "bar", "blah", nil, nil, nil) mock.ExpectQuery(sanitizeQuery(statUserIndexesQuery)).WillReturnRows(rows) @@ -97,9 +97,9 @@ func TestPgStatUserIndexesCollectorNull(t *testing.T) { } }() expected := []MetricResult{ - {labels: labelMap{"schemaname": "unknown", "relname": "unknown", "indexrelname": "unknown"}, value: 0, metricType: dto.MetricType_COUNTER}, - {labels: labelMap{"schemaname": "unknown", "relname": "unknown", "indexrelname": "unknown"}, value: 0, metricType: dto.MetricType_COUNTER}, - {labels: labelMap{"schemaname": "unknown", "relname": "unknown", "indexrelname": "unknown"}, value: 0, metricType: dto.MetricType_COUNTER}, + {labels: labelMap{"schemaname": "foo", "relname": "bar", "indexrelname": "blah"}, value: 0, metricType: dto.MetricType_COUNTER}, + {labels: labelMap{"schemaname": "foo", "relname": "bar", "indexrelname": "blah"}, value: 0, metricType: dto.MetricType_COUNTER}, + {labels: labelMap{"schemaname": "foo", "relname": "bar", "indexrelname": "blah"}, value: 0, metricType: dto.MetricType_COUNTER}, } convey.Convey("Metrics comparison", t, func() { for _, expect := range expected {