Best Practices zur Integration von Prometheus mit APISIX
January 13, 2024
In der heutigen Cloud-nativen Architektur ist die Überwachung der Metriken Ihres API-Gateways von entscheidender Bedeutung. Apache APISIX, das als hochleistungsfähiges API-Gateway dient, bietet nicht nur umfangreiche Funktionen, sondern unterstützt auch die nahtlose Integration mit Prometheus, um wichtige API-Verkehrsmetriken zu sammeln und zu überwachen. Dieser Artikel untersucht, wie Prometheus in Apache APISIX konfiguriert und verwendet wird, hebt wesentliche Überlegungen hervor und empfiehlt gängige Metrikkonfigurationen.
Über Prometheus
Prometheus ist ein Open-Source-Monitoring-System, das Zeitreihendaten sammelt und speichert, um die Systemleistung in Echtzeit zu überwachen und zu analysieren. Bei der Integration mit Apache APISIX wird Prometheus entscheidend, um detaillierte Metriken im Zusammenhang mit dem API-Verkehr zu erfassen.
Aktivierung des Prometheus-Plugins in Apache APISIX
-
Um Prometheus-Metriken in Apache APISIX zu aktivieren, konfigurieren Sie zunächst das Prometheus-Plugin in der
config.yaml
-Datei:plugins: - prometheus
-
Konfigurieren Sie das Prometheus-Plugin für den gewünschten Dienst oder die API, die gesammelt werden soll. Alternativ können Sie es global konfigurieren. Hier ist ein Beispiel für die Konfiguration des Plugins mit einem cURL-Befehl:
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { "prometheus":{} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:80": 1 } } }'
Für komplexere Konfigurationen siehe: Prometheus-Plugin-Dokumentation
Konfiguration der Sammelstrategie in Prometheus
Konfigurieren Sie in Prometheus die Datei prometheus.yml
, um APISIX als neues Überwachungsziel hinzuzufügen:
scrape_configs:
- job_name: 'apisix'
static_configs:
- targets: ['<APISIX_IP>:<APISIX_PORT>']
Gängige Metriken in Apache APISIX
Unternehmensspezifische Metriken können variieren, aber hier sind einige wichtige Metriken in Apache APISIX, die reichhaltige Informationen für die Systemüberwachung und -analyse bieten:
-
HTTP-Anfrage- und Antwort-Metriken:
apisix_http_request_total
: Zeichnet die gesamten HTTP-Anfragen über APISIX auf und bietet einen Überblick über den Systemverkehr.apisix_http_request_duration_seconds
: Misst die Verarbeitungszeit von HTTP-Anfragen und hilft bei der Identifizierung von Leistungsengpässen.apisix_http_request_size_bytes
: Erfasst die Größe von HTTP-Anfragen für die Datenanalyse.apisix_http_response_size_bytes
: Überwacht die Größe von HTTP-Antworten, um das Volumen der Antwortdaten zu verfolgen.
-
Upstream-Dienst-Metriken:
apisix_upstream_latency
: Zeigt die Antwortlatenz der Upstream-Dienste an.apisix_upstream_health
: Gibt den Gesundheitsstatus der Upstream-Dienste an.
-
Systemleistungsmetriken:
apisix_node_cpu_usage
: Zeigt die CPU-Auslastung des APISIX-Knotens an.apisix_node_memory_usage
: Bietet Einblicke in die Speichernutzung.
-
Verkehrsmetriken:
apisix_bandwidth
: Detailliert die Bandbreitennutzung für den Upstream- und Downstream-Verkehr.
-
Fehler- und Ausnahmemetriken:
apisix_http_status_code
: Verteilt HTTP-Antwortstatuscodes, insbesondere mit Fokus auf 4xx- und 5xx-Fehler.
Visualisierung und Warnungen
Nutzen Sie die Integration von Grafana und Prometheus, um Dashboards zur Visualisierung dieser Metriken zu erstellen. Darüber hinaus können Prometheus-Warnregeln konfiguriert werden, um Warnungen basierend auf bestimmten Bedingungen einzurichten.
Grafana-Dashboard-Beispiel: Erstellen Sie verschiedene Diagramme in Grafana, wie Zeitreihen, Balkendiagramme oder Tortendiagramme, um die Leistungsmetriken von APISIX darzustellen. Beispielsweise bietet ein Dashboard, das die Anzahl der HTTP-Anfragen und die durchschnittlichen Antwortzeiten anzeigt, Echtzeit-Einblicke in den Verkehr und die Leistung.
Prometheus-Warnungsbeispiel:
Warnregeln in Prometheus können für verschiedene Bedingungen konfiguriert werden. Beispielsweise kann Prometheus so konfiguriert werden, dass kritische Warnungen gesendet werden, wenn die durchschnittliche Dauer von apisix_http_request_duration_seconds
einen vordefinierten Schwellenwert überschreitet.
Optimierungsüberlegungen
Während umfangreiche Prometheus-Metriken die Überwachungs- und Warnungsdimensionen verbessern, ist es entscheidend anzuerkennen, dass diese Metriken Rechenressourcen verbrauchen. Mehr Metriken bedeuten höhere Ressourcenanforderungen, was sich potenziell auf Geschäftssysteme auswirken kann.
Seit Version 3.0 hat Apache APISIX das Prometheus-Plugin erheblich optimiert und einen dedizierten Prozess für die Metrikstatistik und -abfrage eingeführt. Diese Verbesserung mildert die Auswirkungen auf den Geschäftsverkehr, die durch umfangreiche Prometheus-Metrikstatistiken verursacht wurden, was von API7.ai beigetragen wurde.
Fazit
Durch die Integration von Prometheus mit Apache APISIX erhalten Unternehmen tiefe Einblicke in ihre API-Infrastruktur und gewährleisten effiziente und sichere Betriebsabläufe. Die Überwachung des API-Verkehrs wird allmählich zu einem unverzichtbaren Werkzeug, um Probleme proaktiv zu verhindern, die Leistung zu optimieren und die Sicherheit zu gewährleisten.