From 314eb5223f55cf379ca7d9773731837148b613b6 Mon Sep 17 00:00:00 2001 From: Andres Martinez Gotor Date: Mon, 1 Aug 2022 14:53:09 +0200 Subject: [PATCH] CloudMonitoring: Remove link setting for SLO queries (#53031) --- pkg/tsdb/cloudmonitoring/cloudmonitoring.go | 12 +++++++----- pkg/tsdb/cloudmonitoring/time_series_filter_test.go | 13 +++++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pkg/tsdb/cloudmonitoring/cloudmonitoring.go b/pkg/tsdb/cloudmonitoring/cloudmonitoring.go index 6f8fbb1cf92..df8679d1dfe 100644 --- a/pkg/tsdb/cloudmonitoring/cloudmonitoring.go +++ b/pkg/tsdb/cloudmonitoring/cloudmonitoring.go @@ -658,12 +658,14 @@ func addConfigData(frames data.Frames, dl string, unit string) data.Frames { if frames[i].Fields[1].Config == nil { frames[i].Fields[1].Config = &data.FieldConfig{} } - deepLink := data.DataLink{ - Title: "View in Metrics Explorer", - TargetBlank: true, - URL: dl, + if len(dl) > 0 { + deepLink := data.DataLink{ + Title: "View in Metrics Explorer", + TargetBlank: true, + URL: dl, + } + frames[i].Fields[1].Config.Links = append(frames[i].Fields[1].Config.Links, deepLink) } - frames[i].Fields[1].Config.Links = append(frames[i].Fields[1].Config.Links, deepLink) if len(unit) > 0 { if val, ok := cloudMonitoringUnitMappings[unit]; ok { frames[i].Fields[1].Config.Unit = val diff --git a/pkg/tsdb/cloudmonitoring/time_series_filter_test.go b/pkg/tsdb/cloudmonitoring/time_series_filter_test.go index 72812087e51..9981b38ed12 100644 --- a/pkg/tsdb/cloudmonitoring/time_series_filter_test.go +++ b/pkg/tsdb/cloudmonitoring/time_series_filter_test.go @@ -459,6 +459,19 @@ func TestTimeSeriesFilter(t *testing.T) { }, *res.Frames[0].Meta) }) }) + + t.Run("when data comes from a slo query, it should skip the link", func(t *testing.T) { + data, err := loadTestFile("./test-data/3-series-response-distribution-exponential.json") + require.NoError(t, err) + assert.Equal(t, 1, len(data.TimeSeries)) + + res := &backend.DataResponse{} + query := &cloudMonitoringTimeSeriesFilter{Params: url.Values{}, Slo: "yes"} + err = query.parseResponse(res, data, "") + require.NoError(t, err) + frames := res.Frames + assert.Equal(t, len(frames[0].Fields[1].Config.Links), 0) + }) } func loadTestFile(path string) (cloudMonitoringResponse, error) {