GOOGLE ADS

Samstag, 30. April 2022

So fragen Sie das Container-Speicherlimit in Prometheus ab

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_replaceFunktionen sind erforderlich, um die Bezeichnungsnamen beider Metriken abzugleichen, da sie von unterschiedlichen Zielen abgerufen werden. avgwird 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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...