Hva er observability?
Observability er evnen til å forstå hvorfor et system oppfører seg som det gjør, ut fra loggene, måleverdiene og sporingen det gir fra seg, ikke bare se at noe er galt. Klassisk overvåking varsler om kjente problemer; observability hjelper også med å nøste opp i de ukjente. For kunden gir det kortere avbrudd fordi feilsøkingen starter med svar, ikke gjetninger.
Observability er et ord som har blitt stadig vanligere etter hvert som systemer har blitt mer komplekse og bygget opp av mange deler som spiller sammen. Det handler om en enkel, men avgjørende ting: å kunne se inn i sitt eget system og forstå hvorfor det oppfører seg som det gjør. Her ser vi på hva begrepet betyr, og hvorfor det spiller en rolle for deg som kunde.
Definisjonen
Observability er evnen til å forstå hvorfor et system oppfører seg som det gjør, ut fra informasjonen systemet gir fra seg (logger, måleverdier og sporing), og ikke bare konstatere at noe er galt. Et system med god observability er gjennomsiktig: Når noe skjer, kan man følge sporene og finne årsaken.
Navnet kommer av at systemet er observerbart, altså mulig å se inn i. Jo mer og jo bedre informasjon det gir om sin indre tilstand, desto lettere er det å forstå hva som foregår. Det motsatte er en svart boks som fungerer helt til den ikke gjør det, uten at noen kan si hvorfor.
De tre signaltypene
Observability hviler på tre typer signaler, og de utfyller hverandre.
- Logger er detaljerte tekstoppføringer om hva som har skjedd, hendelse for hendelse. Man kan se dem som systemets dagbok: en løpende rekke med «dette skjedde, på dette tidspunktet, i denne sammenhengen».
- Metrics, altså måleverdier, er tall over tid: responstider, antall forespørsler, andel feil per minutt. De viser trender og gjør det tydelig når noe avviker fra det normale.
- Traces, eller sporing, følger én enkelt forespørsel hele veien gjennom de ulike delene av systemet. De viser hvor tiden ble av, og i hvilket steg det stoppet opp, noe som er uvurderlig når mange komponenter spiller sammen.
Hver for seg gir de biter av bildet. Sammen gjør de systemet forståelig.
Forskjellen på observability og klassisk overvåking
Her ligger et skille som er lett å overse, men viktig å forstå. Tradisjonell overvåking svarer på spørsmål man har stilt på forhånd. Man bestemmer at en alarm skal gå hvis en server slutter å svare, eller hvis feilraten passerer et visst nivå, og så passer systemet på akkurat de kjente grensene. Det fungerer utmerket for problemer man kan forutse.
Observability handler om noe mer: å kunne stille nye spørsmål i etterkant, om problemer ingen har forutsett. Når en uventet feil dukker opp, noe som aldri har skjedd før, holder det ikke med forhåndsdefinerte alarmer. Da må man kunne grave i logger, måleverdier og sporing for å forstå hva som faktisk skjedde. Kort sagt: Overvåking ser de kjente feilene, observability hjelper deg å forstå de ukjente. De to utelukker ikke hverandre, men hører sammen.
Et konkret scenario
Tenk deg at kunder plutselig begynner å klage på at en tjeneste er treg, selv om ingenting er helt nede. Ingen alarm har gått, for ingen server har sluttet å svare. Ved første øyekast ser alt normalt ut.
Med god observability starter feilsøkingen likevel med én gang. Måleverdiene viser at responstidene har krøpet oppover den siste timen. Sporingen av én enkelt forespørsel avslører at tiden går med til et kall til en ekstern tjeneste. Loggene bekrefter at akkurat den tjenesten svarer tregt. I løpet av minutter vet teamet hvor problemet sitter, og kan gripe inn. Uten observability hadde den samme undersøkelsen startet med rene gjetninger, og avbruddet hadde blitt langt lengre.
Nytten for kunden: kortere avbrudd
Det scenarioet er hele poenget. Når noe går galt, er det ikke selve reparasjonen som er den dyre tiden, men tiden det tar å forstå hva som har skjedd. Et system som er vanskelig å se inn i, tvinger teamet til å gjette seg frem, og hver gjetning koster minutter eller timer med driftsstans.
God observability snur situasjonen: Feilsøkingen starter med svar i stedet for spekulasjoner, og tjenesten er raskere oppe igjen. For en virksomhet der driftsstans betyr tapte inntekter eller skadet tillit, er det en av de mest lønnsomme egenskapene et system kan ha. Vi i Weapp bygger observability inn i løsningene vi drifter nettopp fordi det billigste avbruddet er det som er raskest over. Ønsker dere å vite hvor godt dere kan se inn i systemene deres i dag, ta kontakt.
Ofte stilte spørsmål
Hva er observability, enkelt forklart?
Det er evnen til å se inn i et system og forstå hva som skjer inni det. I stedet for bare å vite at en tjeneste er nede, kan man følge sporene og finne ut hvorfor: hvor det gikk galt, i hvilket steg og for hvilke brukere. Observability handler om at systemet gir fra seg nok informasjon til at gåten kan løses, også når feilen er uventet.
Hva er de tre signaltypene?
Logger er detaljerte tekstoppføringer om hva som har skjedd, hendelse for hendelse, som en dagbok fra systemet. Metrics er måleverdier over tid, for eksempel responstider eller antall feil per minutt, som viser trender og når noe avviker. Traces, eller sporing, følger én enkelt forespørsel hele veien gjennom systemet og viser hvor tiden ble av. Sammen gir de tre et helhetlig bilde.
Hva er forskjellen på observability og overvåking?
Overvåking svarer på spørsmål man har stilt på forhånd: Den varsler når en kjent verdi passerer en grense, for eksempel at en server har sluttet å svare. Observability handler om å kunne stille nye spørsmål i etterkant, om problemer ingen har forutsett. Overvåking ser de kjente feilene; observability hjelper deg å forstå de ukjente. De utfyller hverandre, men sistnevnte kreves for å feilsøke det uventede.
Hvorfor er observability verdt å betale for?
Fordi det gjør avbruddene kortere. Når noe går i stykker, er den dyre tiden den man bruker på å forstå hva som har skjedd. Med god observability starter feilsøkingen med svar i stedet for gjetninger, og tjenesten er raskere oppe igjen. For en virksomhet som taper penger eller tillit for hvert minutt med driftsstans, er det ofte en av de mest lønnsomme investeringene i et system.
Er observability noe jeg som kunde trenger å etterspørre?
Det er lurt å gjøre det. Spør hvordan leverandøren ser hva som skjer i systemet, og hvordan feilsøkingen foregår når noe går galt. Et modent team beskriver logger, måleverdier og sporing og kan vise hvordan det raskt sirkler inn et problem. Mangler det svaret, risikerer hver hendelse å bli langvarig fordi feilsøkingen da starter i blinde i stedet for med fakta.