diff --git a/azure-resources/Network/loadBalancers/kql/6d82d042-6d61-ad49-86f0-6a5455398081.kql b/azure-resources/Network/loadBalancers/kql/6d82d042-6d61-ad49-86f0-6a5455398081.kql index 70a74f772..bb387c42d 100644 --- a/azure-resources/Network/loadBalancers/kql/6d82d042-6d61-ad49-86f0-6a5455398081.kql +++ b/azure-resources/Network/loadBalancers/kql/6d82d042-6d61-ad49-86f0-6a5455398081.kql @@ -1,10 +1,13 @@ // Azure Resource Graph Query // Find all LoadBalancers with only 1 VM in any backend pool +// Counts both direct IP members (loadBalancerBackendAddresses) and NIC-based members (backendIpConfigurations) resources | where type =~ 'Microsoft.Network/loadBalancers' | mv-expand bpool = properties.backendAddressPools -| extend BackendAddresses = array_length(bpool.properties.loadBalancerBackendAddresses) -| where BackendAddresses <= 1 +| extend DirectMembers = tolong(coalesce(array_length(bpool.properties.loadBalancerBackendAddresses), 0)) +| extend NicMembers = tolong(coalesce(array_length(bpool.properties.backendIpConfigurations), 0)) +| extend TotalMembers = DirectMembers + NicMembers +| where TotalMembers <= 1 | extend lbId = id, lbName = name, poolName = tostring(bpool.name), lbTags = tostring(tags) | summarize impactedPools = make_list(poolName) by lbId, lbName, lbTags | project recommendationId = "6d82d042-6d61-ad49-86f0-6a5455398081",name = lbName,id = lbId,tags = lbTags,param1 = strcat("backendPoolNames: ", strcat_array(impactedPools, ", "))