Fehlerüberwachung
Erhalte umsetzbare Einblicke, um die wichtigsten codebezogenen Probleme zu beheben. Verfolge, debugge und behebe Fehler in jeder Sprache oder jedem Framework mit maßgeschneidertem Kontext, um jedes Mal die Ursache zu finden.
Von 4 Millionen Entwicklern toleriert.
Alle Tools, die du benötigst, um fehlerhaften Code schnell zu beheben
Der Einstieg bei Sentry ist einfach
Wir unterstützen jede Technologie (außer die, die wir nicht unterstützen). Leg mit nur wenigen Codezeilen los.
Registriere dich und installiere Sentry mit nur einer Codezeile:
npx @sentry/wizard@latest -i nextjsSchnappen Sie sich das Sentry Go SDK:
go get "github.com/getsentry/sentry-go"Die Konfiguration sollte so früh wie möglich im Lebenszyklus Ihrer Anwendung erfolgen:
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,
// Geben Sie eine feste Abtastrate an:
// Wir empfehlen, diesen Wert in der Produktion anzupassen
TracesSampleRate: 1.0,
// Oder geben Sie eine benutzerdefinierte Abtastrate an:
TracesSampler: sentry.TracesSampler(func(ctx sentry.SamplingContext) float64 {
// Als Beispiel sendet dies einige
// Transaktionen basierend auf ihrem Namen nicht an Sentry.
if ctx.Span.Name == "GET /health" {
return 0.0
}
return 1.0
}),
})
if err != nil {
log.Fatalf("sentry.Init: %s", err)
}
// Gepufferte Ereignisse leeren, bevor das Programm beendet wird.
// Legen Sie das Timeout auf die maximale Dauer fest, die das Programm warten kann.
defer sentry.Flush(2 * time.Second)
}Installation mit einer Codezeile:
npx @sentry/wizard@latest -i angularFügen Sie die Sentry-Abhängigkeit hinzu:
dotnet add package Sentry.AspNetCoreKonfigurieren Sie Sentry in appsettings.json.:
"Sentry": {
"Dsn": "https://examplePublicKey@o0.ingest.sentry.io/0",
"Debug": true,
},Fügen Sie dann das SDK hinzu, indem Sie einfach „UseSentry“ aufrufen:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
// Fügen Sie die folgende Zeile hinzu:
webBuilder.UseSentry();
});Führen Sie einfach diesen Befehl aus, um die Astro-Integration von Sentry zu installieren und zu registrieren:
npx astro add @sentry/astroUnd fügen Sie Ihren DSN und Ihre Projektkonfiguration zu Ihrer Datei astro.config.mjs hinzu:
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,
}),
],
});Installieren Sie das NuGet-Paket, um die Sentry-Abhängigkeit hinzuzufügen:
dotnet add package SentryInitialisieren Sie das SDK so früh wie möglich, wie in der Methode Main in Program.cs/Program.fs:
using (SentrySdk.Init(o => {
// Gibt an, an welches Projekt in Sentry Ereignisse gesendet werden sollen:
o.Dsn = "https://<key>@sentry.io/<project>";
// Bei der ersten Konfiguration, um zu sehen, was das SDK macht:
o.Debug = true;
// Setzen Sie TracesSampleRate auf 1.0, um 100 % der Transaktionen für Tracing zu erfassen.
// Wir empfehlen, diesen Wert in der Produktion anzupassen.
o.TracesSampleRate = 1.0; }))
{
// App-Code kommt hierher - Disposing leert Ereignisse
}Besorgen Sie sich das Sentry JavaScript SDK:
<script src="https://browser.sentry-cdn.com/<VERSION>/bundle.min.js"></script>Konfigurieren Sie Ihren DSN:
Sentry.init({ dsn: 'https://<key>@sentry.io/<project>',
// Dies ermöglicht automatische Instrumentierung (sehr empfohlen),
// ist aber nicht für rein manuelle Verwendung erforderlich
// Wenn Sie nur benutzerdefinierte Instrumentierung verwenden möchten:
// * Entfernen Sie die BrowserTracing-Integration
// * fügen Sie Sentry.addTracingExtensions() über Ihrem Sentry.init()-Aufruf hinzu
integrations: [Sentry.browserTracingIntegration()],
// Wir empfehlen, diesen Wert in der Produktion anzupassen oder tracesSampler zu verwenden
// für feinere Kontrolle
tracesSampleRate: 1.0,
// Setzen Sie tracePropagationTargets, um zu steuern, für welche URLs verteiltes Tracing aktiviert werden soll
tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});Installieren Sie das Paket sentry/sentry-laravel mit Composer:
composer require sentry/sentry-laravelFügen Sie Sentry-Berichte zu bootstrap/app.php hinzu:
<?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();Aktivieren Sie Sentry Tracing in config/sentry.php:
// Geben Sie eine feste Abtastrate an:
'traces_sample_rate' => 0.2,
// Oder geben Sie einen benutzerdefinierten Sampler an:
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
// geben Sie eine Zahl zwischen 0 und 1 zurück
},Führen Sie diesen Artisan-Befehl aus, um den Sentry DSN zu konfigurieren:
php artisan sentry:publish --dsn=<paste-your-DSN-here>Installieren Sie das Paket sentry/sentry mit Composer:
composer require sentry/sentryUm alle Fehler zu erfassen, auch die beim Start Ihrer Anwendung, sollten Sie das Sentry PHP SDK so schnell wie möglich initialisieren:
\Sentry\init(['dsn' => 'https://<key>@sentry.io/<project>',
// Geben Sie eine feste Abtastrate an:
'traces_sample_rate' => 0.2,
// Oder geben Sie einen benutzerdefinierten Sampler an:
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
// geben Sie eine Zahl zwischen 0 und 1 zurück
}, ]);Besorgen Sie sich das Sentry Python SDK:
pip install --upgrade sentry-sdkKonfigurieren Sie Ihren DSN:
import sentry_sdk
sentry_sdk.init(
"https://<key>@sentry.io/<project>",
# Setzen Sie traces_sample_rate auf 1.0, um 100 % zu erfassen
# der Transaktionen für Tracing.
# Wir empfehlen, diesen Wert in der Produktion anzupassen.
enable_tracing=True,
traces_sample_rate=1.0,
)Schnappen Sie sich das Sentry React SDK:
npm install @sentry/reactKonfigurieren Sie Ihren DSN:
import React from "react";
import ReactDOM from "react-dom";
import * as Sentry from "@sentry/react";
import App from "./App";
Sentry.init({
dsn: "https://<key>@sentry.io/<project>",
// Dies ermöglicht automatische Instrumentierung (sehr empfohlen)
// Wenn Sie nur benutzerdefinierte Instrumentierung verwenden möchten:
// * Entfernen Sie die BrowserTracing-Integration
// * fügen Sie Sentry.addTracingExtensions() über Ihrem Sentry.init()-Aufruf hinzu
integrations: [
Sentry.browserTracingIntegration(),
// Oder, wenn Sie React Router verwenden, verwenden Sie die entsprechende Integration
// Siehe Dokumentation für Unterstützung verschiedener Versionen von React Router
// https://docs.sentry.io/platforms/javascript/guides/react/configuration/integrations/react-router/
Sentry.reactRouterV6BrowserTracingIntegration({
useEffect: React.useEffect,
useLocation,
useNavigationType,
createRoutesFromChildren,
matchRoutes,
}),
],
// Für eine feinere Kontrolle der gesendeten Transaktionen können Sie diesen Wert anpassen oder
// tracesSampler verwenden
tracesSampleRate: 1.0,
// Setzen Sie tracePropagationTargets, um zu steuern, für welche URLs verteiltes Tracing aktiviert werden soll
tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});
ReactDOM.render(<App />, document.getElementById("root"));Fügen Sie den Edelstein sentry-ruby zu Ihrer Gemfile hinzu:
gem "sentry-ruby"Konfigurieren Sie Ihren DSN:
Sentry.init do |config|
config.dsn = 'https://<key>@sentry.io/<project>'
# Legen Sie eine einheitliche Abtastrate zwischen 0,0 und 1,0 fest
# Wir empfehlen, den Wert in der Produktion anzupassen:
config.traces_sample_rate = 1.0
# oder die Stichprobenentnahme dynamisch steuern
config.traces_sampler = lambda do |sampling_context|
# sampling_context[:transaction_context] enthält die Informationen über die Transaktion
# sampling_context[:parent_sampled] enthält die Stichprobenentscheidung des übergeordneten Elements der Transaktion
true # Rückgabewert kann ein boolescher Wert oder ein Float zwischen 0,0 und 1,0 sein
end
endUm das SDK zu verwenden, initialisieren Sie Sentry in Ihrem Solid-Einstiegspunkt index.jsx, bevor Sie Ihre Solid-App rendern:
// index.jsx / index.tsx
import * as Sentry from "@sentry/solid";
import { useBeforeLeave, useLocation } from "@solidjs/router";
import { render } from "solid-js/web";
import App from "./app";
// Initialisieren Sie das Sentry SDK hier
Sentry.init({
dsn: "__DSN__",
integrations: [Sentry.browserTracingIntegration()],
// Leistungsüberwachung
tracesSampleRate: 1.0, // Erfassen Sie 100 % der Transaktionen
// Setzen Sie 'tracePropagationTargets', um zu steuern, für welche URLs die Trace-Weitergabe aktiviert werden soll
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)Besorgen Sie sich das Sentry Java SDK:
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring-boot-starter</artifactId>
<version><VERSION></version>
</dependency>Konfigurieren Sie Ihren DSN in application.properties.:
sentry.dsn=https://<key>@sentry.io/<project>
# Setzen Sie traces_sample_rate auf 1.0, um 100 % zu erfassen
# der Transaktionen zur Leistungsüberwachung.
# Wir empfehlen, diesen Wert in der Produktion anzupassen.
sentry.traces-sample-rate=1.0Um das SDK zu verwenden, initialisieren Sie Sentry in Ihrem Svelte-Einstiegspunkt main.js, bevor Sie Ihre Svelte-App booten:
// main.js / main.ts
import App from "./App.svelte";
import * as Sentry from "@sentry/svelte";
// Initialisieren Sie das Sentry SDK hier
Sentry.init({
dsn: "__DSN__",
release: "my-project-name@2.3.12",
integrations: [Sentry.browserTracingIntegration()],
// Wir empfehlen, diesen Wert in der Produktion anzupassen
tracesSampleRate: 1.0,
// Setzen Sie tracePropagationTargets, um zu steuern, für welche URLs verteiltes Tracing aktiviert werden soll
tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});
// Dann starten Sie Ihre Svelte-App
const app = new App({
target: document.getElementById("app"),
});
export default app;Um Sentry in Ihr Xcode-Projekt zu integrieren, geben Sie es in Ihrer Podfile an und führen Sie dann pod install aus:
platform :ios, '9.0'
use_frameworks! # Das ist wichtig
target 'YourApp' do
pod 'Sentry', :git => 'https://github.com/getsentry/sentry-cocoa.git', :tag => '<VERSION>'
endInitialisieren Sie das SDK so schnell wie möglich in Ihrem Anwendungslebenszyklus, z. B. in Ihrer AppDelegate-Methode application:didFinishLaunchingWithOptions.:
import Sentry // Stellen Sie sicher, dass Sie Sentry importieren
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
SentrySDK.start { options in
options.dsn = "https://<key>@sentry.io/<project>"
options.debug = true // Die Aktivierung von Debug bei der ersten Installation ist immer hilfreich
// Beispiel einheitliche Abtastrate: 100 % der Transaktionen für Tracing erfassen
options.tracesSampleRate = 1.0
}
return true
}Schnappen Sie sich das Sentry Vue SDK:
npm install @sentry/vueKonfigurieren Sie Ihren DSN:
import { createApp } from "vue";
import * as Sentry from "@sentry/vue";
const app = createApp({
// ...
});
Sentry.init({
app,
dsn: "https://<key>@sentry.io/<project>"",
// Dies ermöglicht automatische Instrumentierung (sehr empfohlen),
// ist aber nicht für rein manuelle Verwendung erforderlich
// Wenn Sie nur benutzerdefinierte Instrumentierung verwenden möchten:
// * Entfernen Sie die BrowserTracing-Integration
// * fügen Sie Sentry.addTracingExtensions() über Ihrem Sentry.init()-Aufruf hinzu
integrations: [Sentry.browserTracingIntegration()],
// Wir empfehlen, diesen Wert in der Produktion anzupassen oder tracesSampler zu verwenden
// für feinere Kontrolle
tracesSampleRate: 1.0,
// Setzen Sie tracePropagationTargets, um zu steuern, für welche URLs verteiltes Tracing aktiviert werden soll
tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});
app.mount("#app");Führen Sie einfach diesen Befehl aus, um sich bei Sentry anzumelden und es zu installieren:
brew install getsentry/tools/sentry-wizard && sentry-wizard -i androidDie Menge an Details, die du bei einem @getsentry Problem bekommst, ist WAHNSINNNN - Browser-Infos - Verweis auf eine bestimmte Codezeile - Spezifischer Fehler mit Tracing (bis zum Backend) Das deckt nicht einmal Sitzungswiedergaben ab!
Jemand hat gefragt, welches Tool ich zur Überwachung meiner Frontend-Anwendung gewählt habe, und es war @getsentry. Bisher bin ich wirklich zufrieden damit, wie einfach die Einrichtung war und mit der Möglichkeit, zu sehen, was in meiner Anwendung passiert.
Das Verrückteste daran ist, dass ich diesen Bug wahrscheinlich monatelang gehabt hätte und nie davon gewusst hätte. Mir wird langsam klar, dass Sentry letztendlich zu einer besseren UX führt, weil man so viele dieser kleinen Fehler behebt, von denen man nicht wusste, dass man sie hat.
Okay, ich liebe die Details der @getsentry Fehler
Ich habe endlich meine Integration mit @getsentry auf meiner persönlichen Seite repariert und, meine Güte, warum habe ich so lange damit gewartet? Das Ding ist unglaublich.
Ich benutze Sentry jetzt jeden Tag und kann endlich nutzen, was wir zusammen entwickelt haben. Sentry ist zu einem entscheidenden Werkzeug geworden, um die geschäftskritische App zu optimieren und zu reparieren, du weißt schon wo!