1. Abhängigkeitsbewusste Readiness-Prüfung (eingebaut)
Der Server stellt zwei Probe-Endpunkte mit bewusst unterschiedlichen Aufgaben bereit:| Endpunkt | Probe | Prüft | Auth |
|---|---|---|---|
GET /health | Liveness | Prozess ist am Leben (immer {"status":"ok"}) | keine |
GET /ready | Readiness | Kann tatsächlich Anfragen bedienen: Postgres + ClickHouse erreichbar | keine |
/ready gibt 200 mit "status":"ready" und jede Prüfung als "ok" zurück, wenn beide harten Abhängigkeiten erreichbar sind, und 503 mit "status":"not_ready", wenn eine davon nicht erreichbar ist. Beide Antworten enthalten einen kurzen Body:
"ok", wenn ein Cache konfiguriert ist, und "not_configured" andernfalls; es ist nie "down".
In den mitgelieferten Kubernetes-Manifesten zeigt die Readiness-Probe auf /ready, während Liveness auf /health bleibt. Die Wirkung: Ein Server, der zwar läuft, aber seine Datenbank nicht erreichen kann, wird aus dem Service genommen und als NotReady angezeigt – ein Zustand, auf den Ihr Cluster-Monitoring (siehe unten) aufmerksam machen kann – während Liveness günstig bleibt, sodass eine kurze Störung der Abhängigkeit nie einen Pod-Neustart auslöst. Die Probe verwendet einen großzügigen Fehlerschwellenwert, damit ein kurzer Ausreißer Replicas nicht aus der Rotation kippt.
2. Pod-Failure-Benachrichtigung mit Robusta (optional)
Robusta ist ein Kubernetes-nativer Monitor, der den API-Server beobachtet und Pod-Fehler (CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending/NotReady, Failed, Evictions) an Slack sendet. Da er die Control-Plane beobachtet statt AgentEye zu befragen, löst er auch dann Benachrichtigungen aus, wenn AgentEye gar nicht reagieren kann.
Robusta wird als optionales Add-on im Release-Bundle ausgeliefert. Aktivieren Sie es mit dem Standard-Robusta-Helm-Chart und der unten gezeigten kleinen Values-Datei:
-
Fügen Sie das Chart-Repo hinzu und holen Sie sich ein Slack-Bot-Token (
xoxb-…) für den gewünschten Channel:Da die folgende Konfiguration alles im Cluster hält (disableCloudRouting: true), stammt das Token von einer selbst gehosteten Slack-App: Erstellen Sie eine App unterhttps://api.slack.com/apps, fügen Sie den Bot-Scopechat:writehinzu, installieren Sie sie in Ihrem Workspace, kopieren Sie das Bot User OAuth Token (xoxb-…) und laden Sie den Bot in den Channel ein (/invite @your-app). -
Erstellen Sie eine
values.yamlmit einem deployment-spezifischen Label (clusterName) und Ihrem Slack-Channel, begrenzt auf denagenteye-Namespace: -
Installieren Sie es und pinnen Sie
--versionauf ein bekannt gutes Robusta-Chart-Release (Releases), damit Sie nie ein ungetestetes Chart installieren:
Was gemeldet wird
- Kubernetes-Pod-Zustand (welcher AgentEye-Pod ausfällt und warum) sowie der Image-Tag jedes Pods, d. h. die laufende Komponenten-Version.
- Keine AgentEye-Ereignisdaten und keine Kundendaten verlassen jemals den Cluster.
- Die mitgelieferten Values beschränken Benachrichtigungen auf den
agenteye-Namespace, sodass unabhängige Workloads im selben Cluster nicht gemeldet werden.
Eine Anlaufstelle für jedes Deployment
Richten Sie Robusta bei jedem Deployment auf einen gemeinsamen Slack-Channel, jeweils mit eigenemclusterName. Jede Benachrichtigung ist mit diesem Label versehen, sodass ein einziger Channel den Gesundheitszustand Ihrer gesamten Flotte zeigt und Sie auf einen Blick erkennen, welches Deployment betroffen ist.
Vollständige Cluster-Ausfälle
Ein rein im Cluster laufender Watcher kann einen vollständigen Cluster- oder Netzwerkausfall nicht melden (er fällt mit dem Cluster aus). Falls Sie das benötigen, aktivieren Sie den optionalen Robusta-UI-Sink: Setzen SiedisableCloudRouting: false und fügen Sie einen robusta_sink (mit einem Token aus robusta gen-config) zu sinksConfig hinzu. Damit erhalten Sie ein aggregiertes Multi-Cluster-Dashboard, das jeden Cluster markiert, der aufgehört hat, sich zu melden.
Fehlerbehebung
Weitere Informationen finden Sie im Abschnitt Health Monitoring unter enterprise-docs/troubleshooting.md zu den Themen Keine eingehenden Benachrichtigungen und Server kippt ständig aufNotReady.
