diff --git a/plugin/metrics/prometheus/metricsstore/reader.go b/plugin/metrics/prometheus/metricsstore/reader.go index 0c68687af5e..99b968f6ef4 100644 --- a/plugin/metrics/prometheus/metricsstore/reader.go +++ b/plugin/metrics/prometheus/metricsstore/reader.go @@ -237,8 +237,9 @@ func (m MetricsReader) executeQuery(ctx context.Context, p metricsQueryParams) ( mv, warnings, err := m.client.QueryRange(ctx, promQuery, queryRange) if err != nil { + err = fmt.Errorf("failed executing metrics query: %w", err) logErrorToSpan(span, err) - return &metrics.MetricFamily{}, fmt.Errorf("failed executing metrics query: %w", err) + return &metrics.MetricFamily{}, err } if len(warnings) > 0 { m.logger.Warn("Warnings detected on Prometheus query", zap.Any("warnings", warnings), zap.String("query", promQuery), zap.Any("range", queryRange)) diff --git a/plugin/metrics/prometheus/metricsstore/reader_test.go b/plugin/metrics/prometheus/metricsstore/reader_test.go index 876f74cab8a..0caf3c84d0b 100644 --- a/plugin/metrics/prometheus/metricsstore/reader_test.go +++ b/plugin/metrics/prometheus/metricsstore/reader_test.go @@ -151,11 +151,11 @@ func TestMetricsServerError(t *testing.T) { }, logger, tracer) require.NoError(t, err) m, err := reader.GetCallRates(context.Background(), ¶ms) - assert.NotNil(t, exp.GetSpans()[0].Status) - assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") assert.NotNil(t, m) require.Error(t, err) assert.Contains(t, err.Error(), "failed executing metrics query") + require.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") + assert.Equal(t, "service_call_rate", exp.GetSpans()[0].Name) } func TestGetLatencies(t *testing.T) { @@ -254,9 +254,9 @@ func TestGetLatencies(t *testing.T) { defer mockPrometheus.Close() m, err := reader.GetLatencies(context.Background(), ¶ms) - assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") require.NoError(t, err) assertMetrics(t, m, tc.wantLabels, tc.wantName, tc.wantDescription) + assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") }) } } @@ -354,9 +354,9 @@ func TestGetCallRates(t *testing.T) { defer mockPrometheus.Close() m, err := reader.GetCallRates(context.Background(), ¶ms) - assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") require.NoError(t, err) assertMetrics(t, m, tc.wantLabels, tc.wantName, tc.wantDescription) + assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") }) } } @@ -479,9 +479,9 @@ func TestGetErrorRates(t *testing.T) { defer mockPrometheus.Close() m, err := reader.GetErrorRates(context.Background(), ¶ms) - assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") require.NoError(t, err) assertMetrics(t, m, tc.wantLabels, tc.wantName, tc.wantDescription) + assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") }) } } @@ -512,9 +512,9 @@ func TestWarningResponse(t *testing.T) { defer mockPrometheus.Close() m, err := reader.GetErrorRates(context.Background(), ¶ms) - assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") require.NoError(t, err) assert.NotNil(t, m) + assert.Len(t, exp.GetSpans(), 1, "HTTP request was traced and span reported") } func TestGetRoundTripperTLSConfig(t *testing.T) {