feat(api): expose /health endpoint and health dashboard

Wire the infrastructure health checks into ASP.NET Core:

- /health returns JSON via UIResponseWriter and maps Unhealthy to HTTP 503
- /health-ui renders a Razor Pages dashboard with per-check status, description, tags and duration
- Tag health checks (rabbitmq, workers, ready, live) for monitoring filters
- Link the dashboard from the Swagger description and the page layout
This commit is contained in:
2026-11-02 10:11:14 +01:00
parent 2fdc8982aa
commit 292b6e9f36
6 changed files with 164 additions and 2 deletions

View File

@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] — DigitalData MessagingService</title>
<style>
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #0f1117; color: #e2e8f0; }
header { background: #1a1d2e; border-bottom: 1px solid #2d3148; padding: 0 2rem; display: flex; align-items: center; height: 56px; gap: 1.5rem; }
header a { color: #a78bfa; text-decoration: none; font-weight: 600; font-size: 1rem; }
header a:hover { color: #c4b5fd; }
header .brand { color: #e2e8f0; font-size: 1.1rem; font-weight: 700; margin-right: auto; }
main { padding: 2rem; max-width: 1100px; margin: 0 auto; }
</style>
</head>
<body>
<header>
<span class="brand">DigitalData MessagingService</span>
<a href="/health-ui">Health</a>
<a href="/serilog-ui">Logs</a>
<a href="/swagger">API</a>
</header>
<main>
@RenderBody()
</main>
</body>
</html>