Snippets
Snippet KQL : corréler ingress privé AKS et logs applicatifs
Une requête courte pour lire ensemble ingress controller et logs applicatifs quand une route AKS privée retourne 502, timeouts ou aucun endpoint.
Utilise cette requête quand une route AKS privée retourne 502, timeouts, réponses vides ou erreurs intermittentes après un changement ingress, service ou déploiement. Elle garde les messages ingress controller et les logs applicatifs dans la même timeline pour voir si le trafic atteint le cluster puis les pods.
let Window = 2h;
let Namespace = "prod";
let Host = "api.internal.example.com";
let ControllerLogs =
ContainerLogV2
| where TimeGenerated > ago(Window)
| where KubernetesNamespace has_any ("ingress", "ingress-nginx", "appgw")
| where LogMessage has_any (Host, "upstream", "no endpoints", "502", "timeout", "connect", "service")
| project TimeGenerated,
Source="ingress-controller",
PodName,
KubernetesNamespace,
LogMessage;
let AppLogs =
ContainerLogV2
| where TimeGenerated > ago(Window)
| where KubernetesNamespace == Namespace
| where LogMessage has_any ("error", "failed", "timeout", "dependency", "ready", "health")
| project TimeGenerated,
Source="application",
PodName,
KubernetesNamespace,
LogMessage;
ControllerLogs
| union AppLogs
| order by TimeGenerated desc Lecture rapide : des erreurs ingress controller sans logs applicatifs pointent vers routage, service ou endpoint slices ; des erreurs applicatives après succès controller pointent vers workload ou dépendances aval ; aucun signal des deux côtés renvoie vers DNS, Application Gateway, private load balancer ou réseau appelant.