Skip to main content

Syntetisk overvåking

Syntetisk overvåking sjekker tilgjengeligheten til tjenestene dine ved å sende HTTP-forespørsler med jevne mellomrom.

Kom i gang

For å ta i bruk syntetisk overvåking må du gjøre følgende steg:

  1. 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.

  2. 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.

Skjermbilde av GitHub onboarding workflow dispatch

Så lenge teamnavnet er det samme kan denne workflowen kjøres igjen for å legge til flere repoer.

  1. 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 Config

    on:
    push:
    branches:
    - main # Bytt ut med navnet på default branch om det ikke er main
    paths:
    - synthetic-monitoring.yaml
    pull_request:
    paths:
    - synthetic-monitoring.yaml

    jobs:
    call-synthetic-monitoring:
    permissions:
    contents: read
    pull-requests: write
    id-token: write
    uses: kartverket/github-workflows/.github/workflows/synthetic-monitoring.yaml@<release tag>

    Bytt ut <release tag> med den siste versjonen av workflowen. Se releases.

  2. Opprett en fil kalt synthetic-monitoring.yaml i 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

Felter

FeltPåkrevdBeskrivelse
targetsJaListe med URL-er som skal sjekkes. Må inkludere protokoll (eks. https://).
labels.teamJaNavnet på teamet som eier tjenesten.
labels.envJaMiljøet tjenesten kjører i (f.eks. prod, dev).
labels.serviceJaNavnet på tjenesten. Dette bør tilsvare navnet i utviklerportalen.

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://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.

warning

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.

Spørsmål?

Ta kontakt i #gen-skoop på Slack.