Sentry — vad är det, principer och felinsamling

Författare: IT Sectr Publicerad: 2026-05-29 Lästid: 8 min

Sentry är en plattform för att spåra fel och övervaka prestanda i realtid, som ger utvecklare fullständig kontext för varje krasch. Enligt Sentry Documentation, 2025 bearbetar Sentry mer än 10 miljarder händelser per dag och erbjuder integration med 90+ språk och ramverk för iOS, Android, webb och backend.

Viktigaste punkterna

  • Sentry — plattform med öppen källkod för felspårning och prestandaövervakning som stöder 90+ språk och plattformar.
  • Error events — automatisk insamling av undantag med full stacktrace, variabelvärden och enhetsstatus.
  • Breadcrumbs — sekvens av användaråtgärder och systemhändelser som föregår felet.
  • Source maps — deobfuskering av minifierad kod för att återställa läsbar anropsstack i produktion.
  • Performance Tracing — övervakning av transaktioners exekveringstid med distributed tracing genom alla tjänster.

Vad är Sentry inom utveckling

Sentry är en plattform med öppen källkod för krashrapportering och prestandaövervakning, grundad 2012. Den gör det möjligt för utvecklare att få feltmeddelanden i realtid med fullständig diagnostisk kontext: anropsstack, variabelvärden vid kraschen, sekvens av användaråtgärder före felet och miljöstatus.

Till skillnad från aggregerade krashrapporteringstjänster (Google Play Console, App Store Connect) som endast tillhandahåller statistik och grundläggande diagram, visar Sentry varje händelse separat med möjlighet att gruppera efter feltyp och filtrera efter appversion. Issue i Sentry är en grupp händelser med samma stacktrace, vilket gör att du inte drunknar i tusentals identiska krascher utan kan fokusera på att eliminera grundorsaken med fullständig kontext.

Enligt Sentry (2025) minskas den genomsnittliga feldetekteringstiden från 30 minuter till 30 sekunder efter implementering av Sentry SDK, och diagnostiden med 60% tack vare automatiska breadcrumbs och miljökontext. Plattformen används av över 100 000 organisationer världen över, inklusive Airbnb, Microsoft, Instagram och PayPal, och bearbetar miljarder händelser dagligen.

Sentrys arkitektur: SDK, Relay och händelsebearbetning

Sentrys system består av tre huvudkomponenter: SDK på appsidan, Relay (proxyserver) och backend för händelsebearbetning. Sentry SDK är ett bibliotek som integreras i appen, som fångar undantag, samlar in kontext och skickar händelser till Relay via JSON/HTTPS-protokollet.

Sentry Relay

Relay är en mellanhandsserver som kan distribueras i företagets infrastruktur. Den tar emot händelser från SDK, filtrerar enligt regler (PII-data, onödiga händelser), buffrar och vidarebefordrar till Sentry SaaS eller egen instans. Relay säkerställer låg sändningsfördröjning — typisk mottagningstid för en händelse är 500–1500 ms.

Inbound Data Filter

Sentry erbjuder inbyggda filter för att avvisa oönskade händelser utan att skicka dem till servern: fel från testmiljöer, fel från gamla appversioner, upprepade händelser med samma fingerprint. Filtering sparar upp till 70% av datavolymen i ett typiskt produktionsprojekt, vilket minskar konsumtionskostnaden och belastningen på enhetens kommunikationskanal.

Konfiguration av Sentry SDK för iOS och Android

Installation av Sentry SDK för mobilplattformar tar 5–10 minuter och kräver att ett beroende läggs till och initiering med en DSN-nyckel. DSN (Data Source Name) är den unika identifieraren för projektet i Sentry som anger vart händelser ska skickas.

Konfiguration på Android

För Android erbjuder Sentry automatisk instrumentering via Gradle-plugin. Plugin modifierar bytekoden vid kompilering och lägger till omslag för alla Activity, Fragment och nätverksanrop. Auto-instrumentation aktiveras med ett alternativ i build.gradle och gör det möjligt att få breadcrumbs från appens livscykel utan att ändra koden.

kotlin
import io.sentry.Sentry

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        Sentry.init { options ->
            options.dsn = "https://example@sentry.io/project"
            options.tracesSampleRate = 0.2
            options.enableAutoSessionTracking = true
        }
    }
}

Koden initierar Sentry SDK i en Android-app. Parametern tracesSampleRate = 0.2 aktiverar prestandaspårning för 20% av sessionerna, enableAutoSessionTracking skapar automatiskt sessioner för varje appstart.

Konfiguration på iOS

SDK för iOS stöder CocoaPods, Swift Package Manager och Carthage. Efter installation fångar SDK automatiskt NSException, signaler (SIGABRT, SIGSEGV) och Swift-fel. Sentry Cocoa SDK är kompatibel med iOS 12+ och macOS 10.13+, stöder Swift Concurrency (async/await) och automatisk instrumentering av URLSession.

swift
import Sentry

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        SentrySDK.start { options in
            options.dsn = "https://example@sentry.io/project"
            options.enableAutoPerformanceTracing = true
        }
        return true
    }
}

Koden i Swift aktiverar Sentry SDK med automatisk insamling av prestandamått. enableAutoPerformanceTracing aktiverar övervakning av skärmars laddningstid och HTTP-förfrågningar utan extra kod.

Breadcrumbs är en kronologisk sekvens av händelser som föregår felet. Sentry registrerar automatiskt breadcrumbs för knapptryckningar, övergångar mellan skärmar, HTTP-förfrågningar och systemmeddelanden. Utvecklaren kan lägga till anpassade breadcrumbs för affärslogik.

Varje breadcrumb innehåller en tidsstämpel, händelsetyp (navigation, http, ui, error), kategori och godtycklig data. När ett fel inträffar bifogas alla breadcrumbs från de senaste 2–5 minuterna (konfigurerbart) till händelsen. Denna kontext är ofta viktigare än själva stacktrace: utvecklaren ser att användaren klickade på "Betala" efter att ha valt en produkt och att kraschen inträffade först därefter. Det maximala antalet breadcrumbs är som standard 200, varefter de äldsta posterna automatiskt tas bort.

kotlin
Sentry.addBreadcrumb(
    Breadcrumb().apply {
        category = "payment"
        message = "User tapped Pay button"
        type = "user"
        level = BreadcrumbLevel.INFO
        data["amount"] = "19.99"
        data["currency"] = "USD"
    }
)

Koden lägger till en anpassad breadcrumb för en användaråtgärd i betalningsscenariot. Om ett fel inträffar efter denna åtgärd kommer utvecklaren att se i Sentry att användaren klickade på "Pay" med beloppet 19.99 USD, vilket gör det möjligt att snabbt lokalisera problemet i betalningsflödet.

User context

Sentry gör det möjligt att bifoga användarinformation till händelser: ID, användarnamn, e-post. User context skickas automatiskt med alla händelser från en session, vilket gör det möjligt att gruppera fel efter användare och avgöra hur många användare som påverkats av en specifik bugg. Det är viktigt att följa integritetspolicyn och inte överföra personuppgifter om det inte är tillåtet enligt appens policy.

Source maps och felsökningssymboler

I produktionsversioner av iOS och Android är koden vanligtvis minifierad eller obfuskerad. Utan bearbetning kommer felstacken att innehålla obegripliga namn som "a.b()" istället för "UserViewModel.fetchData()". Source maps (JavaScript) och debug symbols (dSYM för iOS, ProGuard mapping för Android) återställer läsbar stack.

För Android laddar Sentry automatiskt upp ProGuard-mappningsfiler via Gradle-plugin vid bygge av release-version. För iOS krävs uppladdning av dSYM-filer — Sentry tillhandahåller ett skript för automatisk uppladdning vid arkivering. Utan felsökningssymboler är felstacken i Sentry oanvändbar för utvecklaren, därför bör uppladdningsprocessen vara ett obligatoriskt steg i CI/CD-pipelinen.

Prestandaövervakning via Sentry

Från och med version 2020 inkluderar Sentry prestandaövervakning — insamling av tidsmått för transaktioner med distributed tracing. Transaction i Sentry är en mätbar arbetsenhet: laddning av skärm, utförande av API-förfrågan, bearbetning av bakgrundsuppgift. Varje transaktion innehåller underordnade span som visar vilka steg som tog mest tid.

Prestandaövervakning i Sentry är integrerad med felspårning: om en transaktion slutar med ett fel markeras motsvarande span med statusen "error" och utvecklaren kan gå från prestandamåttet till undantagsdetaljerna. Trace ID kopplar samman alla händelser (fel, transaktioner, breadcrumbs) i en enda session för end-to-end-analys, vilket ger sömlös övergång mellan flikarna Issues och Performance i den enhetliga instrumentpanelen för Sentry-plattformen.

Enligt Sentry Performance Benchmark (2024) förbrukar en app med aktiverad prestandaövervakning (samplingsfrekvens 10%) 2–5% mer trafik och 1–2% mer CPU-resurser på enheten. Denna belastning kompenseras av en 70% minskning av prestandadiagnostiden jämfört med manuell profilering.

Vanliga frågor

Vad skiljer Sentry från Firebase Crashlytics?

Sentry ger mer kontext: breadcrumbs, anpassad data, koppling av fel till prestanda. Firebase Crashlytics är ett gratis verktyg med grundläggande krashrapportering, men utan distributed tracing och utan möjlighet till anpassad instrumentering av breadcrumbs. Sentry passar för projekt som kräver djupgående diagnostik.

Hur mycket kostar Sentry för en mobilapp?

Sentry erbjuder en gratis plan för 5 000 händelser per månad (fel + transaktioner). Den betalda Team-planen kostar 26 dollar per användare och månad och inkluderar 100 000 händelser. För stora projekt finns Business-planen med obegränsad volym och individuellt pris.

Hur hanterar Sentry personuppgifter i fel?

Sentry erbjuder en inbyggd Data Scrubbing-mekanism: automatisk borttagning av e-post, IP-adresser, kreditkort och andra PII-uppgifter från händelser före lagring. Skrubberingsreglerna konfigureras i webbgränssnittet eller i Relay-konfigurationen med stöd för reguljära uttryck. Det rekommenderas att aktivera skrubbering på SDK-nivå så att konfidentiella data inte lämnar användarens enhet.

Kan Sentry köras på egna servrar?

Ja, Sentry har en fullt open-source self-hosted version. Self-hosted Sentry distribueras via Docker Compose och innehåller alla funktioner i SaaS-versionen. Minimal serverkonfiguration krävs: 4 vCPU, 16 GB RAM, 100 GB diskutrymme för lagring av händelser.

Stöder Sentry SwiftUI och Jetpack Compose?

Ja, Sentry SDK stöder fullt SwiftUI (iOS 13+) och Jetpack Compose (Android). För SwiftUI skapar SDK automatiskt transaktioner för NavigationView och List med mätning av renderingstid. För Jetpack Compose krävs anpassad integration via CompositionLocalProvider för att skicka Sentry-kontexten till Composables.

Sammanfattning

  • Sentry — plattform med öppen källkod för felspårning och prestandaövervakning som används av över 100 000 organisationer.
  • Arkitektur inkluderar SDK på enheten, Relay-proxy och backend för händelsebearbetning med stöd för self-hosted och SaaS-distribution.
  • Breadcrumbs ger kronologi över användaråtgärder före felet, avgörande för att diagnostisera komplexa buggar.
  • Source maps och dSYM återställer läsbar anropsstack från obfuskerad produktionskod.
  • Performance Tracing är integrerat med felspårning och möjliggör navigering från tidsmått till felinformation via ett unikt trace-ID.
  • Auto-instrumentation täcker Activity, ViewController, HTTP-förfrågningar och applikationens livscykel utan manuell kod.
  • Implementering av Sentry rekommenderas för alla produktionsappar: den gratis planen täcker 5 000 händelser per månad, tillräckligt för små och medelstora projekt.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också