Skip to content
This repository has been archived by the owner on Mar 28, 2022. It is now read-only.

Overførsel av babylon

Erlend Marius Ommundsen edited this page Aug 10, 2021 · 5 revisions

Overførsel

Slackkanaler

Det er per nå tre alertkanaler som babylon logger til:

Kanal Mening
#babylon-alerts Fallback-kanal for slack alerts. Dersom et team ikke har satt en platform-alerts-channel i teams.yaml og heller ikke har satt alert-channel eller slack-channel i namespace, kommer notifikasjonen om nedskalering hit
#babylon-alerts-backup Alle alerts som blir sendt får en kopi sendt hit
#babylon-existential-alerts Dersom babylon logger mye feilmeldinger blir det sendt en melding hit

Alerts

Alerts blir kjørt gjennom Alertmanager med Prometheusspørringer som bestemmer om og når meldinger blir sendt. Alle alert-meldinger er konfigurert i .nais/alerts.yaml.

Hva? Hvorfor? Når?
Detektert En applikasjon har blitt markert som feilende Så fort den starter å feile
Abort-Rollout Dersom en applikasjon kan rulles tilbake, sendes denne 24 timer etter varsling
Nedskalert Applikasjonen kunne ikke rulles tilbake og ble skalert ned til 0 replicas 24 timer etter varsling

Det er i tilegg et par interne alerts i samme fil:

Hva? Hvorfor? Når?
Nede Dersom det ikke finnes replicas av babylon Så fort det er detektert
Feilrate Dersom det logges mye feil Fortløpende
Backups Kopier av alerts sendt til teams Fortløpende

Flyt i Babylon

UML-sequence diagram of primary loop

NAIS

Vi har lagt til en ny blokk i nais.yaml for å kunne konfigurere om og hva babylon vil gjøre med applikasjonen. Disse involverer hvorvidt Babylon faktisk skal røre applikasjonen, strategien som bestemmer om Babylon skal rulle tilbake og/eller skalere ned og hvor stort tidsrom mellom Babylon markerer den til en faktisk handling blir gjennomført.

Bruk av ingresser

Babylon har åpne ingresser for øyeblikket, men disse trengs i utgangspunktet ikke. Det har imidlertid vært verdifullt å kunne bruke f.eks. https://babylon-gcp.dev.intern.nav.no/metrics til feilsøking under utvikling.

Bruk av Unleash

Babylon bruker Unleash toggles til to ting i skrivende stund, til å toggle Slack-meldinger og til å fjerne alle firstDetected-annotasjoner. De heter henholdsvis babylon_alerts og babylon_remove_first_detected_annotation, og du finner de her.

Datalagring

InfluxDB

Siden Prometheus-data kun lever i 30-dager, har vi en InfluxDB-instans hvor data langtidslagres. Vi har kun ett measurement, ett field og fire tags.

Fields: slack_channel

Tags: reason, team, name, cluster

Prometheus/Grafana

I vårt Grafana-dashboard finnes visualisering av dataen vi logger til Prometheus og InfluxDB.