Felrapportering & applikationsövervakning

Vår kollega Robert beskriver fördelarna med automatiserad felrapportering och övervakning i komplexa mjukvarusystem.

Behöver man övervaka sin applikation och rapportera fel?

Om du har en hemsida, app eller mjukvara med ett användarsystem, shoppingsystem eller liknande funktioner kan det vara en bra idé.

I den bästa av världar lyckas man hitta alla brister i sin mjukvara innan dom uttrycker sig i formen av en bugg, eller värre, en krasch.
Tyvärr är det inte ett realistiskt mål och en sund inställning är att det kommer gå fel förr eller senare.

Men hur får man reda på det? En enkel lösning kan vara att bistå med en uppmaning och ett formulär till användarna att hjälpa till och rapportera när något går fel.

Men även denna åtgärd gör inte skeppet vattentätt. För många användare är tröskeln, för att rapportera fel, oftast högre än att välja en annan tjänst. De få rapporter man får har dessutom ofta väldigt lågt informationsvärde vilket gör felsökning och åtgärd svårare och dyrare. Detta då det tar tid och kunskap för att skriva en informativ rapport.

Mjukvaror är idag komplicerade pussel som bara växer och blir mer invecklade. Det är här användandet av en monitoreringstjänst, såsom Sentry eller Datadog, kommer in i bilden. Det är automatiserat, ekonomiskt och inte påträngande för användaren.

Hur fungerar applikationsövervakning och felhantering?

När ett fel uppstår i en mjukvara brukar den "kasta" ett s.k. undantag eller en händelse (Exception) för att meddela systemet som kör mjukvaran att något gått snett.

Det här undantaget kan "fångas" och hanteras. Oftast innehåller undantaget information om hur det skall hanteras eller åtminstone vad som gått fel och var.
Dock så händer det att det inte går att göra något åt felet utan uppdatera mjukvaran eller att man missar att fånga undantaget (uncaught exception).

Om felet inte fångas och användaren inte rapporterar in felet så är det oftast här sagan tar slut... om man inte har satt upp felrapportering i sin mjukvara.

Felrapporteringstjänster, såsom Sentry, fångar alla dessa "ofångade undantag" och skickar automatiskt en felrapport åt användaren, i bakgrunden.

Som utvecklare kan man även fånga fel manuellt och skicka in felrapporter för att få mer precision och / eller information vid undersökning av fel.

STC

Sentry och Datadog sköter felhantering och applikationsövervakning för de tjänster vi driftar åt STC.

Uppstår det ovanligt många fel på kort tid så larmas både STC och utvecklingsteamet om det.

Felrapporter, brödsmulor och mer

När en felrapport skickas in till en monitoreringstjänst innehåller den, utöver vad som gick fel och var, även annan nödvändig information som t.ex. vilken version mjukvaran som användaren kör, vilket operativsystem, vad för hårdvara och mycket mer.

Inte nog med det, i varje rapport skickar tjänster med något som kallas för brödsmulor. Som ett spår man kan följa för att se hur användaren interagera med mjukvaran strax innan felet uppstod. Dessa brödsmulor genereras automatiskt av olika händelser som tjänsten bedömer som viktiga. Det går även att manuellt skapa brödsmulor med anpassad information.

Om man behöver mer information då? Det går såklart att skicka med bilagor i felrapporten. Detta kan vara väldigt användbart för att t.ex. skicka med mjukvarans skick (state) så man kan återskapa situationen som användaren råkade ut för.

Nordish Market

Vi har satt upp felrapportering med hjälp av Datadog för att snabbt kunna agera när Nordishs kunder inte kan genomföra beställningar längre.

Kan jag använda detta även om min mjukvara hanterar känsliga uppgifter?

Jajjemän, Sentry och Datadog har inbyggd funktionalitet för att "tvätta" information innan den skickas från användaren. De upptäcker och plockar bort känslig information som liknar personnummer, telefonummer, e-postaddresser och liknande.
Det går även att manuellt tvätta bort specifik data. På så sätt kan man garantera sig att felrapporter som skickas inte innehåller något olämpligt.

Insikter

Med felrapportering får man all information som behövs för att leta upp och förhindra brister. Men det är inte enbart buggar och krascher som påverkar användarupplevelsen. Även prestanda är en viktig del. Detta är något som Sentry och Datadog också kan hjälpa till med då det har möjlighet att mäta prestanda i mjukvarans olika delar.

Att använda en felrapporteringstjänst i sin mjukvara skapar nya insikter och slutsatser om hur ens mjukvara fungerar, mår och även presterar.

Gillar du vad du ser?

Bli uppringd

(Vanligtvis inom en timma)