2016-11-24 3 views
0

Ich möchte eine Alarmabfrage für Prometheus schreiben. Die Warnung wird ausgelöst, wenn ein Knoten mehr als einen bestimmten Prozentsatz des Arbeitsspeichers belegt.Überprüfen Sie den Speicherstatus jedes Knotens in Warnungen für Prometheus

Ich möchte Knoten dynamisch und überprüfen Speicherstatus davon.

  1. lesen Sie alle Knoten

  2. Schleife über jeden Knoten mit Abfrage

    Summe (container_memory_usage_bytes {job = "Kubernetes-Knoten", id = "/", instance = "$ node"})/sum (machine_memory_bytes {job = "Kubernetes-Knoten", instance = "$ node"}) * 100

diese Warnung funktioniert, wenn i statischen Namen des Knotens bietet

ALERT HighMemoryAlert 
    IF 100 * sum(container_memory_usage_bytes{job="kubernetes-nodes", id="/",instance="ip-170-10-10-17.eu-west-1.compute.internal"})/sum(machine_memory_bytes{job="kubernetes-nodes",instance="ip-170-10-10-17.eu-west-1.compute.internal"}) > 90 
    FOR 15m 
    LABELS { 
    service = "k8s", 
    severity = "warning" 
    } 
    ANNOTATIONS { 
    summary = "HighMemoryAlert" 
    } 

Ich möchte nicht ip statisch als K8S Knoten ip hinzufügen können über die Zeit, wenn jeder Knoten abstürzt und erstellt mit verschiedenen ip geändert b,

Antwort

1

Was möchten Sie zu tun ist Aggregat, während die Instanz zu halten label, so

sum by (instance)(container_memory_usage_bytes{job="kubernetes-nodes", id="/"}) 
/
    sum by (instance)(machine_memory_bytes{job="kubernetes-nodes"}) * 100 
+0

Das hat funktioniert..danke – Priyanka

Verwandte Themen