Sentry es una plataforma de seguimiento de errores y monitoreo de rendimiento de aplicaciones en tiempo real que proporciona a los desarrolladores el contexto completo de cada fallo. Según Sentry Documentation, 2025, Sentry procesa más de 10 mil millones de eventos al día, ofreciendo integración con más de 90 lenguajes y frameworks para iOS, Android, web y backend.
Puntos clave
Sentry es una plataforma de código abierto para crash reporting y monitoreo de rendimiento, fundada en 2012. Permite a los desarrolladores recibir notificaciones de errores en tiempo real con contexto de diagnóstico completo: stack de llamadas, valores de variables en el momento del fallo, secuencia de acciones del usuario antes del error y estado del entorno.
A diferencia de los servicios agregados de crash reporting (Google Play Console, App Store Connect), que solo proporcionan estadísticas y gráficos básicos, Sentry muestra cada evento individualmente con la capacidad de agrupar por tipo de error y filtrar por versión de la aplicación. Un Issue en Sentry es un grupo de eventos con el mismo stack trace, lo que permite no ahogarse en miles de crashes idénticos sino concentrarse en solucionar la causa raíz con contexto completo.
Según Sentry (2025), el tiempo promedio de detección de errores se reduce de 30 minutos a 30 segundos después de implementar Sentry SDK, y el tiempo de diagnóstico se reduce en un 60% gracias a los breadcrumbs automáticos y al contexto del entorno. La plataforma es utilizada por más de 100,000 organizaciones en todo el mundo, incluyendo Airbnb, Microsoft, Instagram y PayPal, procesando miles de millones de eventos diariamente.
El sistema Sentry consta de tres componentes principales: SDK en el lado de la aplicación, Relay (servidor proxy) y backend de procesamiento de eventos. Sentry SDK es una biblioteca integrada en la aplicación que intercepta excepciones, recopila contexto y envía eventos a Relay mediante el protocolo JSON/HTTPS.
Relay es un servidor intermedio que puede desplegarse en la infraestructura de la empresa. Recibe eventos del SDK, los filtra según reglas (datos PII, eventos innecesarios), los almacena en búfer y los reenvía a Sentry SaaS o a una instancia propia. Relay garantiza baja latencia: el tiempo típico de recepción de eventos es de 500 a 1500 ms.
Sentry proporciona filtros integrados para descartar eventos no deseados antes de enviarlos al servidor: errores de entornos de prueba, errores de versiones antiguas de la aplicación, eventos duplicados con el mismo fingerprint. Filtering ahorra hasta un 70% del volumen de datos en un proyecto de producción típico, reduciendo los costos de consumo y la carga del canal de comunicación del dispositivo.
La instalación del SDK de Sentry para plataformas móviles toma de 5 a 10 minutos y requiere agregar una dependencia e inicializarla con una clave DSN. DSN (Data Source Name) es un identificador único de proyecto en Sentry que indica dónde enviar los eventos.
Para Android, Sentry proporciona instrumentación automática a través de un plugin de Gradle. El plugin modifica el bytecode en tiempo de compilación, añadiendo envoltorios para todas las Activities, Fragments y llamadas de red. Auto-instrumentation se habilita con una sola opción en build.gradle y permite obtener breadcrumbs del ciclo de vida de la aplicación sin cambiar el código.
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
}
}
}
El código inicializa Sentry SDK en una aplicación Android. El parámetro tracesSampleRate = 0.2 habilita el performance tracing para el 20% de las sesiones, enableAutoSessionTracking crea automáticamente sesiones para cada inicio de la aplicación.
El SDK para iOS es compatible con CocoaPods, Swift Package Manager y Carthage. Tras la instalación, el SDK intercepta automáticamente NSException, señales (SIGABRT, SIGSEGV) y errores de Swift. Sentry Cocoa SDK es compatible con iOS 12+ y macOS 10.13+, admite Swift Concurrency (async/await) e instrumentación automática de URLSession.
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
}
}
El código en Swift activa Sentry SDK con recopilación automática de métricas de rendimiento. enableAutoPerformanceTracing habilita el monitoreo del tiempo de carga de pantallas y solicitudes HTTP sin código adicional.
Breadcrumbs son una secuencia cronológica de eventos que preceden a un error. Sentry registra automáticamente breadcrumbs para pulsaciones de botones, transiciones entre pantallas, solicitudes HTTP y notificaciones del sistema. El desarrollador puede añadir breadcrumbs personalizados para la lógica de negocio.
Cada breadcrumb contiene una marca de tiempo, tipo de evento (navigation, http, ui, error), categoría y datos arbitrarios. Cuando ocurre un error, todos los breadcrumbs de los últimos 2 a 5 minutos (configurable) se adjuntan al evento. Este contexto a menudo es más importante que el propio stack trace: el desarrollador ve que el usuario hizo clic en “Pagar” después de seleccionar un producto, y solo entonces ocurrió el crash. El número máximo de breadcrumbs por defecto es 200, después de lo cual los registros más antiguos se eliminan automáticamente.
Sentry.addBreadcrumb(
Breadcrumb().apply {
category = "payment"
message = "User tapped Pay button"
type = "user"
level = BreadcrumbLevel.INFO
data["amount"] = "19.99"
data["currency"] = "USD"
}
)
El código añade un breadcrumb personalizado para una acción del usuario en el escenario de pago. Si ocurre un error después de esta acción, el desarrollador verá en Sentry que el usuario hizo clic en “Pagar” con el monto de 19.99 USD, lo que permite localizar rápidamente el problema en el flujo de pago.
Sentry permite adjuntar información del usuario a los eventos: ID, nombre de usuario, correo electrónico. User context se transmite automáticamente con todos los eventos de una misma sesión, permitiendo agrupar errores por usuarios y determinar cuántos usuarios se vieron afectados por un bug específico. Es importante cumplir con la política de privacidad y no transmitir datos personales si la política de la aplicación no lo permite.
En las compilaciones de producción de iOS y Android, el código suele estar minificado u ofuscado. Sin procesamiento, el stack de errores contendrá nombres incomprensibles como “a.b()” en lugar de “UserViewModel.fetchData()”. Source maps (JavaScript) y debug symbols (dSYM para iOS, ProGuard mapping para Android) restauran un stack legible.
Para Android, Sentry carga automáticamente los archivos ProGuard mapping a través del plugin de Gradle durante la compilación de la versión release. Para iOS, es necesario cargar los archivos dSYM: Sentry proporciona un script para la carga automática durante el archivado. Sin símbolos de depuración, el stack de errores en Sentry será inútil para el desarrollador, por lo que el proceso de carga debe ser un paso obligatorio en el pipeline CI/CD.
Desde la versión 2020, Sentry incluye performance monitoring: recopilación de métricas de tiempo de ejecución de transacciones con distributed tracing. Una Transaction en Sentry es una unidad de trabajo medible: carga de pantalla, ejecución de solicitud de API, procesamiento de tarea en segundo plano. Cada transacción contiene spans hijos que muestran qué pasos específicos tomaron más tiempo.
El performance monitoring en Sentry está integrado con error tracking: si una transacción termina con un error, el span correspondiente se marca con el estado “error”, y el desarrollador puede navegar desde las métricas de rendimiento a los detalles de la excepción. Trace ID vincula todos los eventos (errores, transacciones, breadcrumbs) en una sola sesión para análisis de extremo a extremo, proporcionando una transición fluida entre las pestañas Issues y Performance en un único dashboard de Sentry.
Según Sentry Performance Benchmark (2024), una aplicación con performance monitoring habilitado (frecuencia de muestreo del 10%) consume entre un 2 y un 5% más de tráfico y entre un 1 y un 2% más de recursos de CPU en el dispositivo. Esta sobrecarga se compensa con una reducción del 70% en el tiempo de diagnóstico de rendimiento en comparación con la creación de perfiles manual.
Preguntas frecuentes
Sentry proporciona más contexto: breadcrumbs, datos personalizados, vinculación de errores con el rendimiento. Firebase Crashlytics es una herramienta gratuita con crash reporting básico pero sin distributed tracing ni posibilidad de instrumentación personalizada de breadcrumbs. Sentry es adecuado para proyectos que necesitan un diagnóstico profundo.
Sentry ofrece un plan gratuito con 5,000 eventos al mes (errores + transacciones). El plan de pago Team cuesta 26 dólares por usuario al mes e incluye 100,000 eventos. Para proyectos grandes, está disponible un plan Business con volumen ilimitado y precio personalizado.
Sentry proporciona un mecanismo integrado de Data Scrubbing: eliminación automática de correos electrónicos, direcciones IP, tarjetas de crédito y otros datos PII de los eventos antes de almacenarlos. Las reglas de depuración se configuran en la interfaz web o en la configuración de Relay con soporte de expresiones regulares. Se recomienda activar el scrubbing a nivel de SDK para que los datos confidenciales no salgan del dispositivo del usuario.
Sí, Sentry tiene una versión auto-alojada completamente de código abierto. Self-hosted Sentry se despliega mediante Docker Compose e incluye todas las funciones de la versión SaaS. Configuración mínima del servidor requerida: 4 vCPU, 16 GB RAM, 100 GB de espacio en disco para almacenar eventos.
Sí, Sentry SDK es totalmente compatible con SwiftUI (iOS 13+) y Jetpack Compose (Android). Para SwiftUI, el SDK crea automáticamente transacciones para NavigationView y List con medición del tiempo de renderizado. Para Jetpack Compose, se requiere integración personalizada a través de CompositionLocalProvider para pasar el contexto de Sentry a los Composables.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también