Wat is het verschil tussen monitoring en observability?
Monitoring beantwoordt vragen die u vooraf heeft bedacht: staat de dienst aan, is de schijf vol, hoeveel verzoeken kwamen er binnen. Observability gaat over de vragen die u pas tijdens een storing bedenkt, en die u dan zonder nieuwe code moet kunnen beantwoorden. Het verschil zit vooral in de rijkdom van wat u vastlegt: genoeg context per gebeurtenis om achteraf te kunnen filteren op iets waar u vooraf geen dashboard voor had gemaakt. In de praktijk heeft u beide nodig, en de meeste organisaties hebben het eerste wel en het tweede niet.
Welke vier signalen bedoelen jullie precies?
Doorlooptijd, foutpercentage, hoeveelheid verkeer en verzadiging. Die vier beschrijven samen of uw dienstverlening het doet en of ze op haar tenen loopt. Het aantrekkelijke eraan is dat de eerste drie over uw gebruiker gaan en niet over uw infrastructuur. Een schijf die voor tachtig procent vol is, is geen probleem; een doorlooptijd die verdubbelt is dat wel. Alarmeren op de eerste categorie levert nachten op waarin er niets aan de hand was, en dat is precies hoe alarmmoeheid ontstaat.
Vervangen jullie ons huidige platform?
Meestal niet, en we raden het zelden aan. Grafana, Datadog, Elastic, New Relic en de diensten van uw cloudleverancier doen wat ze moeten doen; het probleem zit vrijwel altijd in wat er aan de kant van uw software wordt aangeleverd. Wij richten die kant in. Wilt u wel wisselen, dan is instrumenteren via OpenTelemetry de verstandigste volgorde: dat maakt uw meetgegevens onafhankelijk van het platform, zodat de overstap daarna een configuratiekwestie is en geen tweede verbouwing.
Wat kost de opslag, en hoe houden we dat in de hand?
De rekening van observability zit bijna volledig in hoeveel u bewaart en hoe lang. De aanpak die standhoudt, is per soort gegeven kiezen. Meetwaarden zijn klein en mogen lang blijven staan, want die vertellen u hoe iets zich over maanden ontwikkelt. Logregels zijn groot en vooral nuttig in de dagen erna. Traces zijn het grootst, en daarvan is een steekproef genoeg, met de afspraak dat alles wat faalt wel volledig wordt bewaard. Die drie keuzes samen schelen in de praktijk een veelvoud zonder dat u iets inlevert.
Werkt dit ook als onze software niet uit losse diensten bestaat?
Ja, en het is dan eenvoudiger. Bij een enkele applicatie zit de winst minder in tracing en meer in het samenbrengen van wat er al is: meetwaarden per functie, logregels met genoeg context om te filteren, en alarmering die aan de dienst hangt. Wij richten dat op dezelfde manier in, alleen valt de stap over systeemgrenzen weg. Groeit u later door naar meerdere diensten, dan staat het fundament er al.
Hoe gaat dit samen met onze beveiliging?
Dezelfde vastlegging die u helpt bij een storing, is wat u nodig heeft om na een beveiligingsincident te reconstrueren wat er is gebeurd. Dat is geen extra project maar hetzelfde werk met een tweede opbrengst, en het sluit direct aan op
kwetsbaarhedenbeheer. Wel letten we op wat er in de logregels terechtkomt: persoonsgegevens en geheimen horen daar niet in, en dat is een keuze die u bij het instrumenteren maakt en niet achteraf repareert.
Wie moet dit bij ons oppakken?
Iemand die dienst draait als er iets stukgaat. Observability die wordt ingericht door een ander dan wie ermee werkt, wordt zelden gebruikt: de dashboards beantwoorden dan vragen die de bouwer had en niet de vragen die om drie uur ’s nachts opkomen. Wij werken daarom samen met uw eigen ontwikkelaars en beheerders, en de overdracht is onderdeel van het traject en geen bijlage aan het einde.
Hoe snel merken we er iets van?
De eerste winst zit meestal in het samenbrengen van wat er al is en in het opschonen van de alarmering; dat merkt u binnen de eerste sprints. Tracing over systeemgrenzen vraagt aanpassingen in de software en loopt langer door, dienst voor dienst. We beginnen bewust bij de dienst waar de meeste tijd verloren gaat, zodat de eerste oplevering ook meteen de meest merkbare is.
Kunnen jullie dit ook voor ingekochte software?
Voor het deel dat wij kunnen bereiken wel: verkeer dat er binnenkomt en uitgaat, beschikbaarheid, doorlooptijd van aanroepen, en de wachtrijen ertussen. Wat er binnen zo’n pakket gebeurt, hangt af van wat de leverancier zelf beschikbaar stelt. In de praktijk is dat genoeg om vast te stellen of een probleem bij u of bij hen ligt, en dat is meestal precies de vraag die u wilt kunnen beantwoorden.
Wat is een foutbudget en hebben wij dat nodig?
Een foutbudget is de ruimte tussen uw doelwaarde en honderd procent. Spreekt u af dat negenennegentig komma negen procent van de verzoeken slaagt, dan is die laatste tiende procent uw budget. Zolang het niet op is, mag er nieuwe functionaliteit uit; raakt het op, dan gaat de aandacht eerst naar stabiliteit. Dat is nuttig zodra er discussie is tussen doorbouwen en repareren, en overbodig zolang die discussie er niet is. Wij raden het aan bij de derde variant, niet bij de eerste.
Werken jullie met OpenTelemetry of met iets van de leverancier?
Standaard met OpenTelemetry. Dat is de open standaard voor meetwaarden, logregels en traces, en vrijwel elk platform kan hem lezen. Het voordeel is dat de instrumentatie in uw code niet aan een leverancier vastzit: wisselt u van platform, dan wijst u de stroom ergens anders heen. Alleen wanneer u al diep in een leverancier-eigen aanpak zit en er geen wisselplannen zijn, kan het verstandiger zijn daarop door te bouwen.