Syntetisk overvåking
Syntetisk overvåking sjekker tilgjengeligheten til tjenestene dine ved å sende HTTP-forespørsler med jevne mellomrom og logge resultatet. Hvis resultatet ikke er en HTTP 200-kode (dvs. en feilkode eller time-out) så regnes det som en feil. Til slutt kan dette vises i et dashboard, og dere kan se hvordan tjenesten yter sammenliknet med tjenestenivåmålet (Service Level Objective - SLO) som er satt.

Syntetisk overvåking kan sjekke både interne og eksternt eksponerte tjenester, så man kan både få innsikt i oppetiden til publikumstjenester og infrastruktur så lenge det er en HTTP-basert tjeneste.
Kom i gang
For å ta i bruk syntetisk overvåking må du gjøre følgende steg:
-
Velg et repo der konfigurasjonen skal ligge. Vi anbefaler at den legges i repoet som inneholder koden til applikasjonen, men et apps-repo er også mulig.
-
Kjør onboarding workflowen i
blackbox-exporter-repoet. Dette setter opp tilgang slik at ditt repo kan pushe og opprette PR. For å kjøre workflowen, klikk på "Run workflow", skriv inn verdiene for team og repoene du vil skal ha tilgang og deretter klikk på "Run workflow" nederst. Da opprettes en PR som SKOOP-teamet må godkjenne, gi oss gjerne et lite pling i #gen-skoop på Slack. Du kan fortsette på neste steg i mellomtiden.
Så lenge teamnavnet er det samme kan denne workflowen kjøres igjen for å legge til flere repoer.
-
Installer følgende reusable workflow i repoet ditt. Denne validerer konfigurasjonen på pull requests, og dytter den til et sentralt repo ved push til
main(ev. en annen default branch).name: Validate Synthetic Monitoring Configon:push:branches:- main # Bytt ut med navnet på default branch om det ikke er mainpaths:- synthetic-monitoring.yamlpull_request:paths:- synthetic-monitoring.yamljobs:call-synthetic-monitoring:permissions:contents: readpull-requests: writeid-token: writeuses: kartverket/github-workflows/.github/workflows/synthetic-monitoring.yaml@<release tag>Bytt ut
<release tag>med den siste versjonen av workflowen. Se releases. -
Opprett en fil kalt
synthetic-monitoring.yamli repoet ditt (se Konfigurasjon).
Konfigurasjon
Syntetisk overvåking konfigureres i filen synthetic-monitoring.yaml i roten av repoet ditt. Filen inneholder en liste med targets og tilhørende labels:
- targets:
- https://kartverket.no
- https://health.atkv3-prod.kartverket.cloud/health
labels:
team: mitt-team
env: prod
service: min-tjeneste
Intern syntetisk overvåking
Bruk label internal: true når target ikke er offentlig eksponert, men kun tilgjengelig på internt nett (eks. for statkart.no og kartverket-intern.cloud-domener).
Da kjøres sjekkene fra SKIP-clustre, som har tilgang til interne domener.
For eksterne adresser anbefales det å ikke bruke internal: true.
Felter
| Felt | Påkrevd | Beskrivelse |
|---|---|---|
targets | Ja | Liste med URL-er som skal sjekkes. Må inkludere protokoll (eks. https://). |
labels.team | Ja | Navnet på teamet som eier tjenesten. |
labels.env | Ja | Miljøet tjenesten kjører i (f.eks. prod, dev). |
labels.service | Ja | Navnet på tjenesten. Dette bør tilsvare navnet i utviklerportalen. |
labels.internal | Nei | Sett til true for intern syntetisk overvåking (fra SKIP-clustre). |
Du kan definere flere blokker i samme fil for å gruppere targets med ulike labels:
- targets:
- https://kartverket.no
labels:
team: mitt-team
env: prod
service: kartverket.no
- targets:
- https://min-app.atgcp1-prod.kartverket-intern.cloud/health
labels:
team: mitt-team
env: prod
service: min-app
internal: true
- targets:
- https://kartverket.atkv3-dev.kartverket.cloud/health
labels:
team: mitt-team
env: dev
service: kartverket.no
Hva sjekkes?
En sjekk regnes som vellykket hvis tjenesten svarer med en HTTP 2xx-statuskode innen 3 sekunder.
Fjerne syntetisk overvåking
Dersom du ønsker å fjerne syntetisk overvåking for en tjeneste, må du slette den tilhørende blokken i synthetic-monitoring.yaml-filen og pushe endringen til repoet ditt. Dette vil trigge workflowen som igjen vil oppdatere det sentrale repoet og fjerne sjekken.
Dersom synthetic-monitoring.yaml-filen slettes eller ikke inneholder noen targets, vil valideringen feile. Vi har ikke full støtte for selvbetjent sletting av sjekker enda. Ta kontakt med oss i #gen-skoop på Slack for hjelp.
Neste steg
Når syntetisk monitorering er satt opp kan dere enkelt sette opp oppetidsalarmer for å varsle på høy feilrate, og sertifikatutløpsalarmer som kan varsle om automatisk sertifikatfornying skulle slutte å fungere eller om manuelt genererte sertifikater må fornyes.
Spørsmål?
Ta kontakt i #gen-skoop på Slack.