Auslesen von Prometheus-Metriken im großen Umfang in Azure Monitor
Dieser Artikel bietet einen Leitfaden zur Leistung, die bei der Sammlung von Metriken im großen Umfang für den verwalteten Azure Monitor-Dienst für Prometheus erzielt werden kann.
CPU und Arbeitsspeicher
Die CPU- und Speicherauslastung korreliert mit der Anzahl der Bytes jeder Stichprobe und der Anzahl ausgelesener Stichproben. Diese Benchmarks basieren auf den ausgelesenen Standardzielen, dem Volumen der ausgelesenen benutzerdefinierten Metriken und der Anzahl von Knoten, Pods und Containern. Diese Zahlen sind als Anhaltspunkte zu verstehen, da die Auslastung je nach Anzahl der Zeitreihen und Bytes pro Metrik erheblich variieren kann.
Die Volumenobergrenze pro Pod liegt derzeit bei etwa 3–3,5 Millionen Stichproben pro Minute, je nach Anzahl der Bytes pro Stichprobe. Diese Einschränkung wird behoben, wenn Sharding demnächst hinzugefügt wird.
Der Agent besteht aus einer Bereitstellung mit einem Replikat und DaemonSet für das Auslesen von Metriken. Das DaemonSet liest alle Ziele auf Knotenebene aus, wie cAdvisor, Kubelet und Node-Exporter. Sie können die Konfiguration auch ändern, sodass alle benutzerdefinierten Ziele auf Knotenebene mit statischen Konfigurationen ausgelesen werden. ReplicaSet liest alle anderen Daten aus, z. B. Kube-State-Metrics oder benutzerdefinierte Ausleseaufträge, die die Dienstermittlung nutzen.
Vergleich zwischen kleinen und großen Clustern für Replikate
Ausleseziele | Gesendete Stichproben/Minute | Anzahl von Knoten | Podanzahl | Prometheus-Collector: CPU-Auslastung (Kerne) | Prometheus-Collector: Speicherauslastung (Bytes) |
---|---|---|---|---|---|
Standardziele | 11.344 | 3 | 40 | 12,9 mc | 148 Mi |
Standardziele | 260.000 | 340 | 13.000 | 1,10 c | 1,70 GB |
Standardziele + benutzerdefinierte Ziele |
3,56 Mio. | 340 | 13.000 | 5,13 c | 9,52 GB |
Vergleich zwischen kleinen und großen Clustern für DeamonSets
Ausleseziele | Gesendete Stichproben/Minute insgesamt | Gesendete Stichproben/Minute/Pod | Anzahl von Knoten | Podanzahl | Prometheus-Collector: CPU-Auslastung insgesamt (Kerne) | Prometheus-Collector: Speicherauslastung insgesamt (Bytes) | Prometheus-Collector: CPU-Auslastung/Pod (Kerne) | Prometheus-Collector: Speicherauslastung/Pod (Bytes) |
---|---|---|---|---|---|---|---|---|
Standardziele | 9.858 | 3.327 | 3 | 40 | 41,9 mc | 581 Mi | 14,7 mc | 189 Mi |
Standardziele | 2,3 Mio. | 14\.400 | 340 | 13.000 | 805 mc | 305,34 GB | 2,36 mc | 898 Mi |
Bei weiteren benutzerdefinierten Metriken verhält sich der einzelne Pod abhängig vom Volumen der benutzerdefinierten Metriken genauso wie der Replikatpod.
Planen eines ama-metrics-Replikatpods für einen Knotenpool mit weiteren Ressourcen
Ein hohes Metrikvolumen pro Pod erfordert einen ausreichend großen Knoten, um die erforderliche CPU- und Speicherauslastung zu bewältigen. Wenn der ama-metrics-Replikatpod nicht für einen Knoten oder einen Knotenpool geplant wird, der über genügend Ressourcen verfügt, tritt möglicherweise wiederholt ein OOMKilled-Fehler mit anschließendem CrashLoopBackoff auf. So beheben Sie dieses Problem: Wenn Sie über einen Knoten oder einen Knotenpool in Ihrem Cluster verfügen, der mehr Ressourcen umfasst (im Knotenpool des Systems) und das Replikat für diesen Knoten planen möchten, können Sie dem Knoten die Bezeichnung azuremonitor/metrics.replica.preferred=true
hinzufügen. Anschließend wird der Replikatpod für diesen Knoten geplant. Außerdem können Sie bei Bedarf zusätzliche Systempools mit größeren Knoten erstellen und deren Knoten oder Knotenpool die gleiche Bezeichnung hinzufügen. Es ist auch besser, Bezeichnungen zu einem Knotenpool anstatt zu Knoten hinzuzufügen, damit neuere Knoten im selben Pool auch für die Planung verwendet werden können, wenn diese Bezeichnung für alle Knoten im Pool gilt.
kubectl label nodes <node-name> azuremonitor/metrics.replica.preferred="true"
Nächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für