Add basic logs enabled check (#92324)
This commit is contained in:
@@ -83,15 +83,6 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
t.Errorf("failed to create fake client")
|
||||
}
|
||||
|
||||
dsInfo := types.DatasourceInfo{
|
||||
Services: map[string]types.DatasourceService{
|
||||
"Azure Monitor": {URL: svr.URL, HTTPClient: client},
|
||||
},
|
||||
JSONData: map[string]any{
|
||||
"azureLogAnalyticsSameAs": false,
|
||||
},
|
||||
}
|
||||
|
||||
appInsightsRegExp, err := regexp.Compile("(?i)providers/microsoft.insights/components")
|
||||
if err != nil {
|
||||
t.Error("failed to compile reg: %w", err)
|
||||
@@ -100,6 +91,7 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
fromAlert bool
|
||||
basicLogsEnabled bool
|
||||
queryModel backend.DataQuery
|
||||
azureLogAnalyticsQuery *AzureLogAnalyticsQuery
|
||||
Err require.ErrorAssertionFunc
|
||||
@@ -332,8 +324,9 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
Err: require.NoError,
|
||||
},
|
||||
{
|
||||
name: "Basic Logs query",
|
||||
fromAlert: false,
|
||||
name: "Basic Logs query",
|
||||
fromAlert: false,
|
||||
basicLogsEnabled: true,
|
||||
queryModel: backend.DataQuery{
|
||||
JSON: []byte(fmt.Sprintf(`{
|
||||
"queryType": "Azure Log Analytics",
|
||||
@@ -377,8 +370,9 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
Err: require.NoError,
|
||||
},
|
||||
{
|
||||
name: "Basic Logs query with multiple resources",
|
||||
fromAlert: false,
|
||||
name: "Basic Logs query with multiple resources",
|
||||
fromAlert: false,
|
||||
basicLogsEnabled: true,
|
||||
queryModel: backend.DataQuery{
|
||||
JSON: []byte(fmt.Sprintf(`{
|
||||
"queryType": "Azure Log Analytics",
|
||||
@@ -399,8 +393,9 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
Err: require.Error,
|
||||
},
|
||||
{
|
||||
name: "Basic Logs query with non LA workspace resources",
|
||||
fromAlert: false,
|
||||
name: "Basic Logs query with non LA workspace resources",
|
||||
fromAlert: false,
|
||||
basicLogsEnabled: true,
|
||||
queryModel: backend.DataQuery{
|
||||
JSON: []byte(fmt.Sprintf(`{
|
||||
"queryType": "Azure Log Analytics",
|
||||
@@ -421,8 +416,9 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
Err: require.Error,
|
||||
},
|
||||
{
|
||||
name: "Basic Logs query from alerts",
|
||||
fromAlert: true,
|
||||
name: "Basic Logs query from alerts",
|
||||
fromAlert: true,
|
||||
basicLogsEnabled: true,
|
||||
queryModel: backend.DataQuery{
|
||||
JSON: []byte(fmt.Sprintf(`{
|
||||
"queryType": "Azure Log Analytics",
|
||||
@@ -442,6 +438,30 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
azureLogAnalyticsQuery: nil,
|
||||
Err: require.Error,
|
||||
},
|
||||
{
|
||||
name: "Basic Logs query fails if basicLogsEnabled is set to false",
|
||||
fromAlert: true,
|
||||
basicLogsEnabled: false,
|
||||
queryModel: backend.DataQuery{
|
||||
JSON: []byte(fmt.Sprintf(`{
|
||||
"queryType": "Azure Log Analytics",
|
||||
"azureLogAnalytics": {
|
||||
"resources": ["/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.Insights/components/r1"],
|
||||
"query": "Perf",
|
||||
"resultFormat": "%s",
|
||||
"dashboardTime": true,
|
||||
"timeColumn": "TimeGenerated",
|
||||
"basicLogsQuery": true
|
||||
}
|
||||
}`, dataquery.ResultFormatTimeSeries)),
|
||||
RefID: "A",
|
||||
TimeRange: timeRange,
|
||||
QueryType: string(dataquery.AzureQueryTypeAzureLogAnalytics),
|
||||
},
|
||||
azureLogAnalyticsQuery: nil,
|
||||
Err: require.Error,
|
||||
},
|
||||
|
||||
{
|
||||
name: "Detects App Insights resource queries",
|
||||
fromAlert: false,
|
||||
@@ -524,6 +544,15 @@ func TestBuildLogAnalyticsQuery(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
dsInfo := types.DatasourceInfo{
|
||||
Services: map[string]types.DatasourceService{
|
||||
"Azure Monitor": {URL: svr.URL, HTTPClient: client},
|
||||
},
|
||||
JSONData: map[string]any{
|
||||
"azureLogAnalyticsSameAs": false,
|
||||
"basicLogsEnabled": tt.basicLogsEnabled, // Use the value from the current test case
|
||||
},
|
||||
}
|
||||
query, err := buildLogAnalyticsQuery(tt.queryModel, dsInfo, appInsightsRegExp, tt.fromAlert)
|
||||
tt.Err(t, err)
|
||||
if diff := cmp.Diff(tt.azureLogAnalyticsQuery, query); diff != "" {
|
||||
|
||||
Reference in New Issue
Block a user