Wir verwenden Prometheus, um OOM-Ereignisse zu überwachen.
Dieser Ausdruck sollte angeben, wie oft die Speicherauslastung die Grenzen erreicht hat:
rate(container_memory_failcnt{pod_name!=""}[5m]) > 0
FYI:Das ist das Nächstbeste nach der richtigen Dokumentation, dem Code
Sie können jetzt kube-state-metrics kube_pod_container_status_terminated_reason
verwenden um OOM-Ereignisse zu erkennen
kube_pod_container_status_terminated_reason{reason="OOMKilled"}
kube_pod_container_status_terminated_reason{container="addon-resizer",endpoint="http-metrics",instance="100.125.128.3:8080",job="kube-state-metrics",namespace="monitoring",pod="kube-state-metrics-569ffcff95-t929d",reason="OOMKilled",service="kube-state-metrics"}
Ereignisverlauf für Ihren speziellen Namespace, geordnet nach creationTimestamp:
kubectl get events -n YOURNAMESPACE -o wide --sort-by=.metadata.creationTimestamp
Oder wenn Sie den Ereignisverlauf für alle Namespaces überprüfen möchten, sortiert nach creationTimestamp:
kubectl get events --all-namespaces -o wide --sort-by=.metadata.creationTimestamp