docs: Integrationsanleitungen auf Stand 2.0 bringen, Status "stopped" ergänzen

Watchdog-Anleitung vollständig überarbeitet
- Alle drei Codebeispiele trugen das geseedete Demo-Token fest im Quelltext.
  Es ist an die Source "srv-db-01" gebunden — wer es übernommen hätte, wäre für
  jeden anderen Dienst abgewiesen worden. Jetzt Umgebungsvariable und eine
  Anleitung, wie man ein eigenes Token erzeugt.
- Der Ratschlag "sende beim Beenden einen Ping mit Status stopped" beschrieb
  etwas, das die API nicht konnte. Statt die Anleitung an die Lücke anzupassen,
  ist die Lücke geschlossen: status akzeptiert jetzt "stopped" und
  "maintenance". Der Evaluator lässt solche Monitore in Ruhe, statt wenige
  Minuten nach jedem sauberen Shutdown einen Fehlalarm zu erzeugen.
- Neu dokumentiert: checks (Gesundheitszustand per Push, ohne offene Ports),
  metrics samt Verlauf und Abweichungsvergleich, Alarmunterdrückung über die
  Hierarchie, die Schwellen des Evaluators (2x warning, 4x down) und der
  erforderliche Cron-Job.

Lizenz-Anleitung
- Neuer Abschnitt zum Antwortformat. Die Lizenz-Endpunkte antworten bewusst
  ohne den status/error-Umschlag der übrigen API; das Feld status auf oberster
  Ebene trägt den Lizenzzustand. Genau diese Besonderheit hatte ich beim Umbau
  übersehen, weshalb sie jetzt ausdrücklich festgehalten ist — samt Tabelle
  aller Zustände.
- Ergänzt: Deaktivierung braucht den shared_key, mit Beispiel für den .NET-
  Client und curl. Verhalten bei Ratenbegrenzung.

UpdateService-Anleitung
- Prüf-Endpunkte dokumentiert (check, latest, releases) samt Antwortformat.
- Tabelle zum Versionsvergleich mit den Fällen, die vorher falsch liefen.
- Auto-Resolve beim Veröffentlichen beschrieben.

Agent-Prompt-Vorlage
- Fehler-Schnittstelle ergänzt, inklusive Hinweis auf "ignored": true, damit
  ein Agent bekannte Fehler nicht untersucht.

Alle in der Dokumentation genannten API-Pfade und Scopes wurden maschinell
gegen Routing und TokenManager abgeglichen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Deploymentcenter Bot
2026-08-08 13:49:56 +02:00
co-authored by Claude Opus 5
parent 65e60899f9
commit 5f9b0c5596
7 changed files with 548 additions and 110 deletions
+19 -4
View File
@@ -102,10 +102,17 @@ final class MonitorRepo
? json_encode($checks, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
: null;
// "stopped" und "maintenance" sind angekuendigte Zustaende: der Dienst
// wurde bewusst beendet bzw. gewartet. Der Evaluator laesst solche
// Monitore in Ruhe, statt sie als Ausfall zu melden. Ohne diese beiden
// Werte gab es keinen Weg, ein geplantes Herunterfahren mitzuteilen -
// jeder saubere Shutdown erzeugte kurz darauf einen Fehlalarm.
$state = match ($status) {
'ok' => 'up',
'warning' => 'warning',
default => 'down',
'ok' => 'up',
'warning' => 'warning',
'stopped' => 'stopped',
'maintenance' => 'maintenance',
default => 'down',
};
// Eine fehlgeschlagene Pruefung stuft einen als "ok" gemeldeten
@@ -114,6 +121,14 @@ final class MonitorRepo
$state = 'warning';
}
// last_status kennt nur ok/warning/error; angekuendigte Zustaende
// gelten dort als unauffaellig.
$lastStatus = match ($status) {
'ok', 'stopped', 'maintenance' => 'ok',
'warning' => 'warning',
default => 'error',
};
$previous = $this->getMonitor($source, $instance);
$previousState = $previous !== null ? (string)$previous['state'] : null;
@@ -155,7 +170,7 @@ final class MonitorRepo
':type' => $type,
':state' => $state,
':interval' => $intervalSec,
':last_status' => in_array($status, ['ok', 'warning', 'error'], true) ? $status : 'error',
':last_status' => $lastStatus,
':message' => $message,
':metrics' => $metricsJson,
':health' => $healthJson,