No pierdas tiempo reproduciendo errores. Accede al contexto que necesitas para depurar y corregir más rápido: la línea exacta, qué hizo el usuario y las funciones que llevaron al error.
Monitoreo de errores
Código se rompe. Corrígelo más rápido. Rastrea y depura errores en cualquier lenguaje o framework, con el contexto completo para llegar a la causa raíz, cada vez.
Aguantado por más de 4 millones de desarrolladores.
- GitHub
- Disney
- Atlassian
- Linear
- Vercel
- Cloudflare
- Slack
- Metronome
- Autodesk
- Microsoft
- Instacart
- Lyft
- Bolt
- Monday
- Cursor
- Anthropic
- Factory AI
- Sentry
- Baseten
- Runlayer
- Convex
Automatiza el triage de issues.
Identifica cuándo falla tu código y quién puede ayudar a repararlo. Asigna incidentes automáticamente al desarrollador que introdujo el error y notifica a tu equipo por Slack cuando el error ocurra por primera vez, se repita o empeore.
Garantiza la calidad y estabilidad de cada release.
Detecta cuándo falla tu código y quién debe arreglarlo. Asigna automáticamente los issues al desarrollador que introdujo el cambio que lo rompió y notifica a tu equipo en Slack cuando el error ocurre por primera vez, vuelve a aparecer o empeora.
Empezar con Sentry es fácil.
Soportamos todas las tecnologías (excepto las que no). Comienza con solo unas pocas líneas de código.
Regístrate e instala Sentry con una sola línea de código:
npx @sentry/wizard@latest -i nextjsObtén el SDK de Sentry para Go:
go get "github.com/getsentry/sentry-go"La configuración debe realizarse lo antes posible en el ciclo de vida de tu aplicación:
package main
import (
"log"
"time"
"github.com/getsentry/sentry-go"
)
func main() {
err := sentry.Init(sentry.ClientOptions{
Dsn: "https://<key>@sentry.io/<project>",
EnableTracing: true,
TracesSampleRate: 1.0,
TracesSampler: sentry.TracesSampler(func(ctx sentry.SamplingContext) float64 {
if ctx.Span.Name == "GET /health" {
return 0.0
}
return 1.0
}),
})
if err != nil {
log.Fatalf("sentry.Init: %s", err)
}
defer sentry.Flush(2 * time.Second)
}Regístrate e instala Sentry con una sola línea de código:
npx @sentry/wizard@latest -i angularAgrega la dependencia de Sentry:
dotnet add package Sentry.AspNetCoreConfigura Sentry en appsettings.json:
"Sentry": {
"Dsn": "https://examplePublicKey@o0.ingest.sentry.io/0",
"Debug": true,
},Luego agrega el SDK simplemente llamando a UseSentry:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
// Agrega la siguiente línea:
webBuilder.UseSentry();
});Ejecuta este comando para instalar y registrar la integración de Sentry con Astro:
npx astro add @sentry/astroY agrega tu DSN y la configuración del proyecto a tu archivo astro.config.mjs:
import { defineConfig } from "astro/config";
import sentry from "@sentry/astro";
export default defineConfig({
integrations: [
sentry({
dsn: "__DSN__",
sourceMapsUploadOptions: {
project: "your-project-slug",
authToken: process.env.SENTRY_AUTH_TOKEN,
},
tracesSampleRate: 1.0,
}),
],
});Instala el paquete NuGet para agregar la dependencia de Sentry:
dotnet add package SentryInicializa el SDK lo antes posible, como en el método Main en Program.cs/Program.fs:
using (SentrySdk.Init(o => {
o.Dsn = "https://<key>@sentry.io/<project>";
o.Debug = true;
o.TracesSampleRate = 1.0; }))
{
// El código de la aplicación va aquí - Dispose vaciará los eventos
}Regístrate e instala Sentry con una sola línea de código:
npm install @sentry/browserInstala el paquete sentry/sentry-laravel con Composer:
composer require sentry/sentry-laravelAgrega los reportes de Sentry a bootstrap/app.php:
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Sentry\Laravel\Integration;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
})
->withExceptions(function (Exceptions $exceptions) {
Integration::handles($exceptions);
})->create();Activa Sentry Tracing en config/sentry.php:
'traces_sample_rate' => 0.2,
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
// retorna un número entre 0 y 1
},Ejecuta este comando Artisan para configurar el DSN de Sentry:
php artisan sentry:publish --dsn=<paste-your-DSN-here>Instala el paquete sentry/sentry con Composer:
composer require sentry/sentryPara capturar todos los errores, incluso los del arranque de tu aplicación, debes inicializar el SDK de Sentry para PHP lo antes posible:
\Sentry\init(['dsn' => 'https://<key>@sentry.io/<project>',
'traces_sample_rate' => 0.2,
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
// retorna un número entre 0 y 1
}, ]);Regístrate e instala Sentry con una sola línea de código:
pip install --upgrade sentry-sdkRegístrate e instala Sentry con una sola línea de código:
npx @sentry/wizard@latest -i reactAgrega la gema sentry-ruby a tu Gemfile:
gem "sentry-ruby"Configura tu DSN:
Sentry.init do |config|
config.dsn = 'https://<key>@sentry.io/<project>'
config.traces_sample_rate = 1.0
config.traces_sampler = lambda do |sampling_context|
true
end
endPara usar el SDK, inicializa Sentry en tu punto de entrada Solid index.jsx antes de renderizar tu aplicación Solid:
import * as Sentry from "@sentry/solid";
import { useBeforeLeave, useLocation } from "@solidjs/router";
import { render } from "solid-js/web";
import App from "./app";
Sentry.init({
dsn: "__DSN__",
integrations: [Sentry.browserTracingIntegration()],
tracesSampleRate: 1.0,
tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/],
});
const app = document.getElementById("app");
if (!app) throw new Error("No #app element found in the DOM.");
render(() => <App />, app)Obtén el SDK de Sentry para Java:
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring-boot-starter</artifactId>
<version><VERSION></version>
</dependency>Configura tu DSN en application.properties:
sentry.dsn=https://<key>@sentry.io/<project>
sentry.traces-sample-rate=1.0Para usar el SDK, inicializa Sentry en tu punto de entrada Svelte main.js antes de iniciar tu aplicación Svelte:
import App from "./App.svelte";
import * as Sentry from "@sentry/svelte";
Sentry.init({
dsn: "__DSN__",
release: "my-project-name@2.3.12",
integrations: [Sentry.browserTracingIntegration()],
tracesSampleRate: 1.0,
tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});
const app = new App({
target: document.getElementById("app"),
});
export default app;Para integrar Sentry en tu proyecto Xcode, especifícalo en tu Podfile y luego ejecuta pod install:
platform :ios, '9.0'
use_frameworks!
target 'YourApp' do
pod 'Sentry', :git => 'https://github.com/getsentry/sentry-cocoa.git', :tag => '<VERSION>'
endInicializa el SDK lo antes posible en el ciclo de vida de tu aplicación:
import Sentry
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
SentrySDK.start { options in
options.dsn = "https://<key>@sentry.io/<project>"
options.debug = true
options.tracesSampleRate = 1.0
}
return true
}Obtén el SDK de Sentry para Vue:
npm install @sentry/vueConfigura tu DSN:
import { createApp } from "vue";
import * as Sentry from "@sentry/vue";
const app = createApp({});
Sentry.init({
app,
dsn: "https://<key>@sentry.io/<project>",
integrations: [Sentry.browserTracingIntegration()],
tracesSampleRate: 1.0,
tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});
app.mount("#app");Regístrate e instala Sentry con una sola línea de código:
npx @sentry/wizard@latest -i androidLo más loco es que probablemente he tenido este bug durante meses sin haberme dado cuenta.
Me estoy dando cuenta de que tener Sentry mejora la experiencia de usuario (UX) porque corriges muchísimos de esos pequeños detalles que no sabías que tenías.
La cantidad de detalles que obtienes en un incidente de @getsentry es una LOCURA
- información del navegador
- referencia a la línea de código específica
- error específico con rastreo (hasta el backend)
¡Y esto ni siquiera incluye los Session Replays!
Finalmente corregí mi integración con @getsentry en mi sitio personal y, cielos, ¿por qué esperé tanto para hacerlo? Esta cosa es increíble.