Watchdog-Integration gegen Produktivserver verifiziert und korrigiert

- Shutdown-Event sendet stopped_graceful statt stopping: der Server
  kennt "stopping" im Router, aber event_log.kind ist ein ENUM ohne
  diesen Wert. Folge war HTTP 500 nach dem Zustandswechsel, das Event
  fehlte in der Historie.
- Default-Source auf "Predictalytics" korrigiert (Schreibweise des
  bereits angelegten Monitors auf dem Server).

Heartbeat, Metrics-Payload, Lizenzvalidierung und der Startpfad ueber
den Cache sind end-to-end gegen die Produktivserver getestet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-30 17:42:02 +02:00
co-authored by Claude Fable 5
parent 3a82397651
commit 725746d204
3 changed files with 25 additions and 13 deletions
@@ -48,8 +48,8 @@ public class AppSettings
[Category("Watchdog")]
[DisplayName("Source")]
[Description("Eindeutiger Monitor-Name dieses Dienstes im Watchdog-Dashboard.")]
[DefaultValue("predictalytics")]
public string WatchdogSource { get; set; } = "predictalytics";
[DefaultValue("Predictalytics")]
public string WatchdogSource { get; set; } = "Predictalytics";
[Category("Watchdog")]
[DisplayName("Instance")]
@@ -49,7 +49,11 @@ public sealed class WatchdogHeartbeatService : IDisposable
_baseUrl, _source, _intervalSeconds);
}
/// <summary>Sends a lifecycle event (e.g. "stopping") so a planned shutdown is not alarmed as a crash.</summary>
/// <summary>
/// Reports a planned shutdown so it is not alarmed as a crash.
/// Must be "stopped_graceful": the server's event_log.kind ENUM has no "stopping"
/// value, and that variant fails the insert with HTTP 500 after the state update.
/// </summary>
public void NotifyStopping()
{
try
@@ -58,7 +62,7 @@ public sealed class WatchdogHeartbeatService : IDisposable
{
source = _source,
instance = _instance,
kind = "stopping",
kind = "stopped_graceful",
severity = "info",
message = "Predictalytics wird planmäßig beendet."
};