AzureMonitor: Correctly set resource parameter for Logs queries (#68133)

* Update to ensure the resources parameter is passed through for logs queries only

* Use string slices for resources to ensure order remains the same

* Fix lint

* clarify test
This commit is contained in:
Andreas Christou
2023-05-10 11:27:02 +01:00
committed by GitHub
parent 135b0a25aa
commit e059ce9c8a
2 changed files with 39 additions and 10 deletions
@@ -1223,6 +1223,7 @@ func TestLogAnalyticsCreateRequest(t *testing.T) {
req, err := ds.createRequest(ctx, logger, url, &AzureLogAnalyticsQuery{
Resources: []string{"r1", "r2"},
Query: "Perf",
QueryType: string(dataquery.AzureQueryTypeAzureLogAnalytics),
})
require.NoError(t, err)
expectedBody := `{"query":"Perf","timespan":"0001-01-01T00:00:00Z/0001-01-01T00:00:00Z","workspaces":["r1","r2"]}`
@@ -1240,6 +1241,7 @@ func TestLogAnalyticsCreateRequest(t *testing.T) {
req, err := ds.createRequest(ctx, logger, url, &AzureLogAnalyticsQuery{
Resources: []string{"r1", "r2"},
Query: "Perf",
QueryType: string(dataquery.AzureQueryTypeAzureLogAnalytics),
TimeRange: backend.TimeRange{
From: from,
To: to,
@@ -1253,6 +1255,27 @@ func TestLogAnalyticsCreateRequest(t *testing.T) {
t.Errorf("Unexpected Body: %v", cmp.Diff(string(body), expectedBody))
}
})
t.Run("does not pass multiple resources for traces queries", func(t *testing.T) {
ds := AzureLogAnalyticsDatasource{}
from := time.Now()
to := from.Add(3 * time.Hour)
req, err := ds.createRequest(ctx, logger, url, &AzureLogAnalyticsQuery{
Resources: []string{"r1", "r2"},
QueryType: string(dataquery.AzureQueryTypeAzureTraces),
TimeRange: backend.TimeRange{
From: from,
To: to,
},
})
require.NoError(t, err)
expectedBody := fmt.Sprintf(`{"query":"","timespan":"%s/%s"}`, from.Format(time.RFC3339), to.Format(time.RFC3339))
body, err := io.ReadAll(req.Body)
require.NoError(t, err)
if !cmp.Equal(string(body), expectedBody) {
t.Errorf("Unexpected Body: %v", cmp.Diff(string(body), expectedBody))
}
})
}
func Test_executeQueryErrorWithDifferentLogAnalyticsCreds(t *testing.T) {