Ich verwende das Prometheus-Tool zur Überwachung meines Kubernetes-Clusters.
Ich habe in meinen Bereitstellungen ein Ressourcenlimit (Speicherlimit) festgelegt und muss ein Fenster zum Anzeigen des verfügbaren Gesamtspeichers konfigurieren. Bitte teilen Sie mir die Abfrage mit, die in Prometheus ausgeführt werden muss, um das für meine Bereitstellung verfügbare Gesamtspeicherlimit abzurufen.
Lösung des Problems
Es ist möglich, die Metriken kube_pod_container_resource_limits_memory_bytes (bereitgestellt von kube-state-metrics ) und container_memory_usage_bytes (bereitgestellt von kubelet/cAdvisor) zu verwenden.
label_replace(
label_replace(
kube_pod_container_resource_limits_memory_bytes{},
"pod_name",
"$1",
"pod",
"(.+)"
),
"container_name",
"$1",
"container",
"(.+)"
)
-
on(pod_name,namespace,container_name)
avg(
container_memory_usage_bytes{pod_name=~".+"}
)
by (pod_name,namespace,container_name)
Eine kleine Erklärung zur Abfrage: Es handelt sich um eine Subtraktion des Speicherlimits und der tatsächlichen Nutzung. label_replace
Funktionen sind erforderlich, um die Bezeichnungsnamen beider Metriken abzugleichen, da sie von unterschiedlichen Zielen abgerufen werden. avg
wird verwendet, um den Durchschnitt zwischen Pod-Neustarts zu erhalten, da jeder Pod-Neustart eine neue Metrik erstellt. {pod_name=~".+"}
wird verwendet, um Metriken herauszufiltern container_memory_usage_bytes
, die für diesen Fall nicht nützlich sind
Keine Kommentare:
Kommentar veröffentlichen