En utrulling kan få et nettsted til å svare med feil i et minutt. Start et vedlikeholdsvindu fra pipelinen din, så sjekkes ikke monitorene, ingen hendelser åpnes, ingen varsler sendes, og tiden teller ikke mot oppetiden. Avslutt vinduet når utrullingen er ferdig, så starter sjekkene igjen med en gang.
Før du starter
REST API-et er inkludert i Professional og Business. Opprett en API-nøkkel med Read & write under Settings › API, og lagre den som en hemmelighet i CI-en din, her UPTIMECHECK_API_KEY.Finn ID-ene til monitorene som skal settes på pause. Hver av dem starter med mon_ og er siste del av adressen til monitorens side, eller du kan liste opp alle:
curl -sS https://app.uptimecheck.com/api/v1/monitors \
-H «Authorization: Bearer $UPTIMECHECK_API_KEY» | jq -r ‘.data[] | [.id, .name] | @tsv’
GitHub Actions
Denne workflowen starter et vindu på 30 minutter, ruller ut og avslutter vinduet uansett om utrullingen lyktes eller ikke. Bytt ut monitor-ID-ene og utrullingssteget med dine egne. I andre CI-verktøy fungerer de samme to kallene.
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
env:
UPTIMECHECK_API_KEY: ${{ secrets.UPTIMECHECK_API_KEY }}
steps:
– uses: actions/checkout@v4
– name: Start maintenance
id: maintenance
run: |
body=$(jq -n \
–arg start «$(date -u +%Y-%m-%dT%H:%M:%SZ)» \
–arg end «$(date -u -d «+30 minutes» +%Y-%m-%dT%H:%M:%SZ)» \
‘{title: «Deploying a new version», startsAt: $start, endsAt: $end,
monitorIds: [«mon_9xk2m1q8w4», «mon_4t7p2k8d1z»]}’)
id=$(curl -sS -X POST https://app.uptimecheck.com/api/v1/maintenance \
-H «Authorization: Bearer $UPTIMECHECK_API_KEY» \
-H «Content-Type: application/json» \
-d «$body» | jq -r ‘.data.id // empty’)
echo «id=$id» >> «$GITHUB_OUTPUT»
– name: Deploy
run: ./deploy.sh
– name: End maintenance
if: always() && steps.maintenance.outputs.id != »
run: |
curl -sS -X DELETE \
«https://app.uptimecheck.com/api/v1/maintenance/${{ steps.maintenance.outputs.id }}» \
-H «Authorization: Bearer $UPTIMECHECK_API_KEY»
Hvis Uptimecheck ikke kan nås, kjører utrullingen likevel, bare uten vindu.
De to kallene
POST /api/v1/maintenance starter eller planlegger et vindu. Send title, startsAt og endsAt som ISO 8601-tidspunkter, for eksempel 2026-10-18T14:00:00Z, og monitorIds. En start i fortiden starter vinduet nå, og et vindu varer høyst 14 dager. Svarets data.id starter med mw_.Valgfrie felt: message, som vises på statussider, og notifySubscribers (false med mindre du sender true), som sender e-post til statussidens abonnenter.DELETE /api/v1/maintenance/{id} avslutter et pågående vindu med en gang, eller avlyser et som ikke har startet. Den svarer 204.
Greit å vite
Sett endsAt litt etter den tregeste utrullingen din. Hvis jobben dør før siste steg, avsluttes vinduet likevel i tide.Statussider som viser disse monitorene, sier Maintenance in progress mens vinduet pågår og viser det med tittelen, og det samme gjør statuswidgeten. Velg en tittel besøkende kan se.En hendelse som er åpen når vinduet starter, lukkes, og monitoren begynner på nytt med en fersk sjekk når vinduet slutter.Pinger fra cron-jobber som kommer inn under vinduet, registreres, men endrer ingenting, og en ping som uteblir under vinduet, gir ikke varsel.API-et kan også pause og gjenoppta enkeltmonitorer (POST /api/v1/monitors/{id}/pause og /resume). Et vindu er enklere ved en utrulling, siden det avsluttes av seg selv.
Alle felt står i API-referansen. For å planlegge vinduer i appen i stedet, se hvordan du planlegger et vedlikeholdsvindu. Les mer om REST API-et.