Bugsnag: cos'è, monitoraggio degli errori e raccolta dati

Autore: IT Sectr Pubblicato: 2026-05-29 Tempo di lettura: 8 min

Bugsnag è una piattaforma di monitoraggio degli errori e della stabilità delle applicazioni che rileva, raggruppa e prioritizza automaticamente i bug negli ambienti di produzione con contesto diagnostico completo. Secondo la Documentazione Bugsnag, 2025, Bugsnag elabora 6 miliardi di eventi al mese per oltre 7.000 clienti, tra cui Airbnb, Lyft, Slack e PagerDuty.

Punti chiave

  • Bugsnag è una piattaforma di monitoraggio degli errori con raggruppamento automatico, prioritizzazione per gravità e integrazione CI/CD.
  • Stability Score è una metrica della percentuale di sessioni senza incidenti, che riflette la stabilità complessiva dell'applicazione.
  • Severity-based triage divide automaticamente gli errori in critical, warning e info per concentrare il team sugli aspetti più importanti.
  • Breadcrumbs registrano la sequenza di eventi precedenti un errore con supporto per attributi personalizzati dello sviluppatore.
  • Release tracking collega gli errori a una versione specifica dell'applicazione e avvisa automaticamente quando il tasso di crash aumenta dopo un rilascio.

Cos'è Bugsnag nello sviluppo

Bugsnag è una piattaforma di monitoraggio della stabilità delle applicazioni fondata nel 2013 e acquisita da SmartBear nel 2019. La principale differenza tra Bugsnag e i suoi concorrenti è l'enfasi sulla stabilità come metrica chiave del prodotto, non solo sul numero di errori. La piattaforma fornisce un dashboard unificato per iOS, Android, React Native, Flutter, web e servizi backend.

Ogni errore in Bugsnag riceve una valutazione automatica di gravità (critical, warning, info) basata sul contesto: se si è verificato un crash, se una funzione di pagamento è stata interessata o se l'errore si ripete per molti utenti. Il team non vede solo un elenco di bug, ma un backlog prioritizzato con indicazione dell'impatto aziendale.

Secondo SmartBear (2024), i team che utilizzano Bugsnag riducono il tempo medio di risoluzione del 40% grazie al raggruppamento automatico dei duplicati e al contesto completo di ogni evento. La piattaforma si integra con Slack, PagerDuty, Jira, GitHub e GitLab per la creazione automatica di attività dagli errori.

Stability Score e prioritizzazione automatica

Stability Score è la metrica chiave di Bugsnag, che mostra la percentuale di sessioni completate senza errori. Il valore viene calcolato come rapporto tra sessioni senza crash e sessioni totali in un periodo. Un punteggio del 99,9% significa che 1 sessione su 1.000 contiene un errore.

Le soglie dello Stability Score sono integrate con CI/CD: se dopo aver distribuito una nuova versione il punteggio scende al di sotto di una soglia impostata (ad esempio 99,5%), Bugsnag blocca automaticamente il rilascio o invia un avviso critico in Slack. Il Release health dashboard mostra la dinamica del punteggio per ogni versione dell'applicazione, consentendo di monitorare l'impatto di una modifica specifica sulla stabilità.

Severity-based triage

Bugsnag utilizza un algoritmo di classificazione automatica degli errori con tre livelli di gravità. Critical — crash dell'applicazione, errori in scenari di pagamento che interessano più del 5% degli utenti. Warning — errori non fatali (eccezioni gestite) che interessano funzioni individuali. Info — log, avvisi a bassa priorità. Questo approccio previene l'affaticamento da avvisi, dove centinaia di notifiche impediscono di concentrarsi sui problemi veramente critici.

GravitàEsempioAzione
CriticalCrash all'avvio dell'appNotifica immediata
WarningErrore di caricamento avatarAttività Jira per il prossimo sprint
InfoTimeout scansione QRRegistrazione senza notifica

Integrazione del SDK Bugsnag per piattaforme mobili

L'installazione del SDK Bugsnag richiede 5 minuti: aggiunta di una dipendenza e inizializzazione con una chiave API del progetto. Il SDK Bugsnag Android supporta Kotlin e Java, intercetta automaticamente eccezioni Java, ANR ed errori nativi (C/C++) tramite segnali.

Configurazione su Android

Il SDK viene aggiunto tramite Gradle e inizializzato in Application.onCreate. Bugsnag raccoglie automaticamente le informazioni sul dispositivo: modello, versione del sistema operativo, memoria libera, livello della batteria. Auto-notify è abilitato per impostazione predefinita e invia tutte le eccezioni non gestite al server Bugsnag.

kotlin
import com.bugsnag.android.Bugsnag
import com.bugsnag.android.Configuration

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        val config = Configuration("YOUR_API_KEY")
        config.autoTrackSessions = true
        config.launchDurationMillis = 5_000
        Bugsnag.start(this, config)
    }
}

Il codice inizializza il SDK Bugsnag con tracciamento automatico delle sessioni e un tempo massimo di avvio di 5 secondi. Se l'applicazione non si avvia entro questo tempo, Bugsnag registra un evento di "avvio lento" come avviso.

Configurazione su iOS

Il SDK Bugsnag iOS supporta Swift e Objective-C, intercetta NSException, eccezioni Mach (SIGABRT, SIGSEGV) e segnali del sistema operativo. Il SDK è compatibile con iOS 11+ e SwiftUI e crea automaticamente breadcrumbs per tutti gli eventi dell'interfaccia utente: tocchi, transizioni, gesti.

swift
import Bugsnag

class AppDelegate: UIResponder, UIApplicationDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        Bugsnag.start(withApiKey: "YOUR_API_KEY")
        // configurazione aggiuntiva
        return true
    }
}

Il codice Swift avvia Bugsnag con configurazione minima. Tutte le eccezioni non gestite e i crash vengono automaticamente inviati al dashboard Bugsnag con il contesto completo del dispositivo e lo stack delle chiamate.

I Breadcrumbs in Bugsnag sono un registro strutturato degli eventi precedenti un errore. Ogni breadcrumb contiene un timestamp, un tipo (navigation, request, state, error, manual) e metadati arbitrari. Bugsnag registra automaticamente breadcrumbs per eventi dell'interfaccia utente in iOS e Android, cambiamenti di stato dell'applicazione (background, foreground) e richieste di rete.

Gli sviluppatori possono aggiungere breadcrumbs personalizzati per la logica aziendale: "l'utente ha aggiunto un articolo al carrello", "richiesta di creazione ordine inviata". Quando si verifica un errore, tutti i breadcrumbs degli ultimi 30 secondi vengono allegati all'evento. Bugsnag supporta anche "state" — un dizionario di dati arbitrario trasmesso con tutti gli errori di sessione.

kotlin
Bugsnag.leaveBreadcrumb(
    message = "Order created",
    metadata = mapOf(
        "order_id" to "ORD-12345",
        "total" to "49.99"
    ),
    type = BreadcrumbType.STATE
)

Bugsnag.setExtraData(
    "user_tier", "premium"
)

Il codice lascia un breadcrumb sulla creazione dell'ordine e imposta informazioni aggiuntive sul piano dell'utente. Quando si verifica un errore in questa sessione, Bugsnag allega il contesto con il numero d'ordine e il tipo di utente.

Tracciamento sessioni

Bugsnag conta automaticamente le sessioni — ogni avvio dell'applicazione è considerato una nuova sessione. Il rapporto tra sessioni con errori e sessioni totali forma lo Stability Score. Il tracciamento sessioni influisce sulla tariffazione: Bugsnag viene concesso in licenza in base al numero di sessioni tracciate, non al volume di errori, distinguendosi dai modelli di pagamento per evento di Sentry e dei concorrenti.

Release tracking e integrazione CI/CD

Release tracking è un meccanismo che collega ogni errore a una versione specifica dell'applicazione e a un commit del repository. Bugsnag rileva automaticamente la versione da Info.plist (iOS) o build.gradle (Android) e mostra il conteggio degli errori per versione nel dashboard. Ciò consente di vedere immediatamente se un problema è stato introdotto dall'ultima versione.

Se dopo aver distribuito la versione 2.4.1 il numero di errori critici è aumentato di 3 volte rispetto alla 2.4.0, Bugsnag contrassegna questa versione come "instabile" e invia un avviso. L'integrazione CI/CD consente di bloccare la promozione di un build a staging o produzione se lo Stability Score scende al di sotto della soglia. I plugin per Jenkins, GitHub Actions e GitLab CI trasmettono le metriche di stabilità al pipeline.

Secondo il Bugsnag Stability Benchmark (2024), il 68% degli errori nelle applicazioni mobili viene introdotto dalle nuove versioni e non sono bug preesistenti. Il release tracking riduce il tempo di rilevamento delle regressioni da ore a minuti dopo la distribuzione.

Confronto: Bugsnag vs Sentry e Crashlytics

Ci sono tre attori principali nel mercato del monitoraggio degli errori: Bugsnag, Sentry e Firebase Crashlytics. Bugsnag si distingue per il modello di prezzo basato sulle sessioni (non sugli eventi), l'enfasi sullo Stability Score e la prioritizzazione automatica per gravità. Sentry offre un monitoraggio delle prestazioni più approfondito con distributed tracing ed è open source. Crashlytics è una soluzione gratuita con funzionalità di base, integrata nell'ecosistema Firebase.

CaratteristicaBugsnagSentryCrashlytics
Prezzo (partenza)Gratuito fino a 5.000 sessioniGratuito fino a 5.000 eventiGratuito
Monitoraggio prestazioniLimitatoCompleto con distributed tracingNo
SDK per FlutterLimitato
Self-hostedNoSì (open source)No
Stability ScoreSì (metrica chiave)NoNo

La scelta tra gli strumenti dipende dalle priorità: se la metrica chiave è la stabilità dell'applicazione in produzione, Bugsnag fornisce la metrica più intuitiva. Se è necessaria un'analisi approfondita delle prestazioni con distributed tracing — Sentry. Per un monitoraggio di base gratuito con integrazione nell'ecosistema Google — Crashlytics.

Domande frequenti

Come determina Bugsnag la gravità di un errore?

L'algoritmo considera tre fattori: tipo di eccezione (crash o gestita), numero di utenti interessati e contesto dello scenario. La gravità Critical viene assegnata se l'errore si è verificato sulla schermata principale o in un flusso di pagamento e ha interessato più dell'1% degli utenti. Lo sviluppatore può sovrascrivere manualmente la gravità tramite API o configurazione SDK.

Bugsnag supporta React Native e Flutter?

Sì, Bugsnag fornisce SDK per React Native (con supporto per la nuova architettura) e Flutter (compatibile con Dart 3.x). Entrambi gli SDK supportano la raccolta automatica di breadcrumbs per navigazione, richieste di rete e stato dell'applicazione, nonché strumentazione personalizzata per la logica aziendale.

È possibile integrare Bugsnag con Jira?

Sì, Bugsnag fornisce un'integrazione bidirezionale con Jira: un nuovo errore può creare automaticamente un'attività in Jira e la chiusura di un'attività in Jira porta l'errore allo stato "risolto" in Bugsnag. Sono supportati Jira Cloud e Jira Server (tramite Jira Connect).

Come influisce Bugsnag sulla dimensione dell'applicazione?

Il SDK Bugsnag aggiunge circa 1,5 MB alla dimensione dell'APK/IPA in un build di rilascio. Questo è meno di Sentry (circa 2 MB) ma più di Firebase Crashlytics (circa 0,8 MB). Si consiglia di rimuovere il SDK dai build di debug per accelerare la compilazione, mantenendolo solo per le configurazioni di test e rilascio.

Si può usare Bugsnag per applicazioni backend?

Sì, Bugsnag supporta linguaggi backend: Ruby, Python, Node.js, Java, .NET, Go, PHP. Gli errori backend vengono visualizzati nello stesso dashboard degli errori mobili, raggruppati per servizio. Ciò consente di monitorare la stabilità end-to-end: se un'API si blocca, lo sviluppatore può vedere se il problema è lato client o lato server.

Riepilogo

  • Bugsnag è una piattaforma di monitoraggio degli errori incentrata sulle metriche di stabilità e sulla prioritizzazione automatica per gravità.
  • Stability Score — percentuale di sessioni senza errori, metrica chiave per la valutazione della qualità delle release e il controllo CI/CD.
  • Severity-based triage divide automaticamente gli errori in critical, warning e info, prevenendo l'affaticamento da avvisi.
  • Release tracking collega ogni errore a una versione dell'applicazione e a un commit per il rapido rilevamento delle regressioni.
  • SDK supporta iOS, Android, React Native, Flutter e 9 linguaggi backend in un dashboard unificato.
  • Modello di prezzo basato sulle sessioni differenzia Bugsnag dai concorrenti e lo rende prevedibile in termini di budget.
  • Bugsnag è raccomandato per i team di prodotto dove la stabilità dell'applicazione è una metrica aziendale chiave e è necessaria la prioritizzazione automatica degli errori.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche