Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Servicen udstiller en Health-statusside (også typisk kendt som isAlive), der viser om applikationen er sund, eller om noget kræver indgriben. Health-statussiden returnerer en body med JSON-data, der beskriver sundhedsstatus for forskellige forskellig funktionalitet i applikationen.

Health-statussiden anvender er opbygget vha. Spring Boot Actuator, som er konfigureret med nogle specialfremstillede HealthIndicators.

Actuator beregner en overordnet status for applikationens tilstand, som baseres på den HealthIndicator, der returnerer den mest fatale status. Den Denne overordnede status vises i JSON-property'en "$.status". Se eksempler længere nede.

Der er udover standard Actuator statusser defineret en specielfremstillet status (NEEDS_ATTENTION). Den følgende tabel viser alle statusser i rækkefølge fra sund til fatal. Tabellen viser også den HTTP statuskode, som Health-statussiden vil returnere til en given overordnet status:

StatusHTTP statuskodeBeskrivelse
UP200 OKIngen fejl.
UNKNOWN200 OKIngen status tilgængelig. Typisk fordi applikationen netop er blevet deployed.
NEEDS_ATTENTION202 AcceptedEn fejl kræver måske indgriben, men applikationen fungerer fortsat med nedsat funktion.
OUT_OF_SERVICE500 Internal Server Error

Applikationen/funktionen er deaktiveret.

Denne status anvendes pt. ikke.

DOWN500 Internal Server ErrorApplikationen/funktionen er nede og kræver øjeblikkelig indgriben.

Opførsel for forskellige HealthIndicators

Nogle HealthIndicators anvender ikke nødvendigvis alle statusser men kun udvalgte. Følgende tabel viser, hvad de enkelte HealthIndicators tjekker, og hvornår de returnerer en specifik status.

Bemærk, at det kun er "db"-HealthIndicator'en der kan returnere statussen "DOWN" og dermed udløse HTTP statuskoden "500 Internal Server Error".

Navn (på property i JSON-response)Beskrivelse
$.details.certificateExpiry

Tjekker om konfigurede certifikater er tæt på udløb. Der tjekkes alle certifikater i de to keystores der er angivet i property'erne application.properties:"client.keystore.filesystem.path" og i minlogclient.properties:"sts.keystore". Derudover vises detaljer om udløbsdato for alle certifikater (dvs. hvis en keystore indeholder flere certifikater, så vises detaljer for alle).

UP: OK
NEEDS_ATTENTION: Der er et certifikat, som udløber om mindre end det antal dage, der er konfigureret i property'en "health.certificate-expires-warning".

$.details.organDonorClient,
 livingWillClient, treatmentWillClient, personalDataCardRegisterClient, scesClient
 $.details.livingWillClient, $.details.treatmentWillClient, $.details.personalDataCardRegisterClient, $.details.scesClient

Tjekker om det seneste kald med den pågældende integration var succesfuldt. Hvis det ikke var succesfuldt, så viser "error" en toString() på den exception der opstod. Der vises eventuelt "timeOfLastExecution", som angiver det seneste tidspunkt, hvor et kald blev forsøgt (uanset om det var successfuldt eller ikke-successfuldt).

UP: OK
UNKNOWN: Der er ikke udført nogen kald med den pågældende integration, siden applikationen blev deployed.
NEEDS_ATTENTION: Der opstod en fejl under seneste forsøg på at kalde med den pågældende integration.

$.details.syncJobTjekker om den seneste afvikling af jobbet var successfuld. Hvis den ikke var succesfuld, så viser "error" en toString() på den exception der opstod. Der vises eventuelt "timeOfLastExecution", som angiver det seneste tidspunkt, hvor jobbet blev forsøgt afviklet.


UP: OK
UNKNOWN: Der er ikke udført nogen kørsel af jobbet, siden applikationen blev deployed.
NEEDS_ATTENTION: Der opstod en fejl under seneste forsøg på at afvikle jobbet.

$.details.db

Er baseret på Actuor's indbyggede DataSourceHealthIndicator og tjekker, at der kan udføres en "SELECT 1" query på alle applikationens datasources. Query'en udføres i det øjeblik Health-statussiden forespørges. Der vises detaljer om status for de enkelte datasources.

UP: OK
DOWN: Der opstod en fejl under forsøget på at udføre en query på en af applikationens datasources.

Eksempel på response, når applikationen er sund

...