Continue if labels are bad

Signed-off-by: Felix Yuan <felix.yuan@reddit.com>
This commit is contained in:
Felix Yuan 2023-06-29 14:54:16 -07:00
parent 393dab8141
commit 66a22531ff
2 changed files with 11 additions and 14 deletions

View File

@ -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 { if err := rows.Scan(&schemaname, &relname, &indexrelname, &idxScan, &idxTupRead, &idxTupFetch); err != nil {
return err return err
} }
schemanameLabel := "unknown" if !schemaname.Valid {
if schemaname.Valid { continue
schemanameLabel = schemaname.String
} }
relnameLabel := "unknown" if !relname.Valid {
if relname.Valid { continue
relnameLabel = relname.String
} }
indexrelnameLabel := "unknown" if !indexrelname.Valid {
if indexrelname.Valid { continue
indexrelnameLabel = indexrelname.String
} }
labels := []string{schemanameLabel, relnameLabel, indexrelnameLabel} labels := []string{schemaname.String, relname.String, indexrelname.String}
idxScanMetric := 0.0 idxScanMetric := 0.0
if idxScan.Valid { if idxScan.Valid {

View File

@ -83,7 +83,7 @@ func TestPgStatUserIndexesCollectorNull(t *testing.T) {
"idx_tup_fetch", "idx_tup_fetch",
} }
rows := sqlmock.NewRows(columns). rows := sqlmock.NewRows(columns).
AddRow(nil, nil, nil, nil, nil, nil) AddRow("foo", "bar", "blah", nil, nil, nil)
mock.ExpectQuery(sanitizeQuery(statUserIndexesQuery)).WillReturnRows(rows) mock.ExpectQuery(sanitizeQuery(statUserIndexesQuery)).WillReturnRows(rows)
@ -97,9 +97,9 @@ func TestPgStatUserIndexesCollectorNull(t *testing.T) {
} }
}() }()
expected := []MetricResult{ expected := []MetricResult{
{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": "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": "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},
} }
convey.Convey("Metrics comparison", t, func() { convey.Convey("Metrics comparison", t, func() {
for _, expect := range expected { for _, expect := range expected {