Document extracted database health check
This commit is contained in:
@@ -15,3 +15,5 @@
|
|||||||
- [014 - PostgreSQL-Anbindung und server.env](014-postgresql-anbindung-server-env.md)
|
- [014 - PostgreSQL-Anbindung und server.env](014-postgresql-anbindung-server-env.md)
|
||||||
|
|
||||||
- [015 - Initiales PostgreSQL-Datenbankschema und Migrationen](015-initiales-postgresql-datenbankschema-und-migrationen.md)
|
- [015 - Initiales PostgreSQL-Datenbankschema und Migrationen](015-initiales-postgresql-datenbankschema-und-migrationen.md)
|
||||||
|
|
||||||
|
- [016 - Datenbank-Healthcheck ausgelagert](016-datenbank-healthcheck-ausgelagert.md)
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
# 016 - Datenbank-Healthcheck ausgelagert
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Der PostgreSQL-Healthcheck wurde aus Main.kt in eine eigene Datei Database.kt ausgelagert.
|
||||||
|
|
||||||
|
## Ergebnis
|
||||||
|
|
||||||
|
Der Status-Endpunkt /api/v1/status liefert weiterhin den Datenbankstatus und zusätzlich latencyMs.
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
|
||||||
|
{"service":"ruvnox-tactical-server","status":"online","version":"0.1.0-SNAPSHOT","database":{"status":"online","host":"192.168.178.4","port":5432,"name":"ruvnox_tactical","latencyMs":99}}
|
||||||
|
|
||||||
|
## Neue Datei
|
||||||
|
|
||||||
|
src/main/kotlin/de/ruvnox/tactical/Database.kt
|
||||||
|
|
||||||
|
## Aufgaben von Database.kt
|
||||||
|
|
||||||
|
- Datenbankkonfiguration aus Environment lesen
|
||||||
|
- JDBC-Verbindung zentral bereitstellen
|
||||||
|
- Datenbank-Healthcheck über select 1 ausführen
|
||||||
|
- Latenz in Millisekunden messen
|
||||||
|
- Fehler sicher als offline behandeln
|
||||||
|
|
||||||
|
## Environment
|
||||||
|
|
||||||
|
Die Datenbankwerte kommen weiterhin aus:
|
||||||
|
|
||||||
|
/opt/ruvnox/tactical/config/server.env
|
||||||
|
|
||||||
|
Relevante Variablen:
|
||||||
|
|
||||||
|
DB_HOST
|
||||||
|
DB_PORT
|
||||||
|
DB_NAME
|
||||||
|
DB_USER
|
||||||
|
DB_PASSWORD
|
||||||
|
|
||||||
|
Diese Datei wird durch systemd geladen:
|
||||||
|
|
||||||
|
EnvironmentFile=/opt/ruvnox/tactical/config/server.env
|
||||||
|
|
||||||
|
## API-Verhalten
|
||||||
|
|
||||||
|
Bei erfolgreicher Verbindung:
|
||||||
|
|
||||||
|
database.status = online
|
||||||
|
database.latencyMs = gemessene Dauer
|
||||||
|
|
||||||
|
Bei Fehler:
|
||||||
|
|
||||||
|
database.status = offline
|
||||||
|
database.latencyMs = null
|
||||||
|
|
||||||
|
Der API-Endpunkt selbst bleibt erreichbar und gibt keine internen Exception-Details aus.
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
Deployment wurde über das bestehende Script durchgeführt:
|
||||||
|
|
||||||
|
/opt/ruvnox/tactical/scripts/deploy-server.sh
|
||||||
|
|
||||||
|
Ergebnis:
|
||||||
|
|
||||||
|
Deployment erfolgreich.
|
||||||
|
|
||||||
|
## Verifikation lokal
|
||||||
|
|
||||||
|
curl -fsS http://127.0.0.1:8080/api/v1/status
|
||||||
|
|
||||||
|
## Verifikation öffentlich
|
||||||
|
|
||||||
|
curl -fsS https://tactical.ruvnox.de/api/v1/status
|
||||||
|
|
||||||
|
## Git-Commit
|
||||||
|
|
||||||
|
tactical-server:
|
||||||
|
|
||||||
|
55fc27f Extract database health check
|
||||||
|
|
||||||
|
## Abschlussstand
|
||||||
|
|
||||||
|
- Database.kt erstellt
|
||||||
|
- Main.kt bereinigt
|
||||||
|
- Status-Endpunkt liefert latencyMs
|
||||||
|
- Deployment erfolgreich
|
||||||
|
- Code committed und gepusht
|
||||||
Reference in New Issue
Block a user