エラーモニタリング

あらゆる言語やフレームワークに対応。エラーの追跡からデバッグ、解決までをスムーズに行えます。詳細なコンテキストから根本原因を素早く特定し、コードの課題解決を強力にバックアップします。

400万人の開発者に選ばれています。

  • GitHub
  • Disney
  • Atlassian
  • Linear
  • Vercel
  • Cloudflare
  • Slack
  • Metronome
  • Autodesk
  • Microsoft
  • Instacart
  • Lyft
  • Bolt
  • Monday
  • Cursor
  • Anthropic
  • Factory AI
  • Sentry
  • Baseten
  • Runlayer
  • Convex

コードレベルのコンテキスト

もう、エラーの再現に時間を費やす必要はありません。エラー発生時のコード行やユーザーの操作、関数呼び出しの履歴まで詳細に把握。一瞬で原因を特定し、迅速なデバッグを可能にします。

ドキュメントを見る

イシューのトリアージを自動化

エラーの発生状況と担当者を即座に特定。修正が必要なコードを書いた開発者へ自動でイシューを割り当てます。初回の発生はもちろん、再発や悪化の際もSlackでチームに素早く通知し、迅速な対応をサポートします。

ドキュメントを見る

リリースの品質と安定性を確保

リリースの状況を即座に可視化。クラッシュフリー率やバージョン普及率、失敗率などの主要メトリクスから、リリース品質を的確に把握できます。品質低下の兆候をいち早く察知できるため、万が一の際も、迅速なリバートが可能です。

ドキュメントを見る

Sentryの導入は簡単です。

あらゆるテクノロジーをサポート。(※サポートしていないもの以外は、ですが)
たった数行のコードで始められます。

サインアップして、たった1行のコードでSentryをインストール:

Copied!Click to Copy
npx @sentry/wizard@latest -i nextjs

Sentry Go SDKを取得:

Copied!Click to Copy
go get "github.com/getsentry/sentry-go"

アプリケーションのライフサイクルのできるだけ早い段階で設定を行います:

Copied!Click to Copy
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)
}

サインアップして、たった1行のコードでSentryをインストール:

Copied!Click to Copy
npx @sentry/wizard@latest -i angular

Sentryの依存関係を追加:

Copied!Click to Copy
dotnet add package Sentry.AspNetCore

appsettings.jsonでSentryを設定:

Copied!Click to Copy
"Sentry": {
  "Dsn": "https://examplePublicKey@o0.ingest.sentry.io/0",
  "Debug": true,
},

UseSentryを呼び出すだけでSDKを追加できます:

Copied!Click to Copy
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            // 以下の行を追加:
            webBuilder.UseSentry();
        });

以下のコマンドを実行して、SentryのAstroインテグレーションをインストール・登録します:

Copied!Click to Copy
npx astro add @sentry/astro

astro.config.mjsファイルにDSNとプロジェクト設定を追加:

Copied!Click to Copy
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,
    }),
  ],
});

NuGetパッケージをインストールしてSentryの依存関係を追加:

Copied!Click to Copy
dotnet add package Sentry

Program.cs/Program.fsMainメソッドなど、できるだけ早い段階でSDKを初期化します:

Copied!Click to Copy
using (SentrySdk.Init(o => {
  o.Dsn = "https://<key>@sentry.io/<project>";
  o.Debug = true;
  o.TracesSampleRate = 1.0; }))
{
  // アプリケーションコードをここに記述 - Disposeでイベントがフラッシュされます
}

Sentry JavaScript SDKを取得:

Copied!Click to Copy
<script src="https://browser.sentry-cdn.com/<VERSION>/bundle.min.js"></script>

DSNを設定:

Copied!Click to Copy
Sentry.init({ dsn: 'https://<key>@sentry.io/<project>',
  integrations: [Sentry.browserTracingIntegration()],
  tracesSampleRate: 1.0,
  tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});

Composerでsentry/sentry-laravelパッケージをインストール:

Copied!Click to Copy
composer require sentry/sentry-laravel

bootstrap/app.phpにSentryレポートを追加:

Copied!Click to Copy
<?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(...)
    ->withMiddleware(function (Middleware $middleware) { })
    ->withExceptions(function (Exceptions $exceptions) {
        Integration::handles($exceptions);
    })->create();

config/sentry.phpでSentry Tracingを有効化:

Copied!Click to Copy
'traces_sample_rate' => 0.2,
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
    // 0から1の間の数値を返す
},

以下のArtisanコマンドを実行してSentry DSNを設定:

Copied!Click to Copy
php artisan sentry:publish --dsn=<paste-your-DSN-here>

Composerでsentry/sentryパッケージをインストール:

Copied!Click to Copy
composer require sentry/sentry

アプリケーション起動時のエラーも含めてすべてのエラーをキャプチャするため、Sentry PHP SDKをできるだけ早く初期化します:

Copied!Click to Copy
\Sentry\init(['dsn' => 'https://<key>@sentry.io/<project>',
    'traces_sample_rate' => 0.2,
    'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
        // 0から1の間の数値を返す
    }, ]);

Sentry Python SDKを取得:

Copied!Click to Copy
pip install --upgrade sentry-sdk

DSNを設定:

Copied!Click to Copy
import sentry_sdk

sentry_sdk.init(
    "https://<key>@sentry.io/<project>",
    enable_tracing=True,
    traces_sample_rate=1.0,
)

Sentry React SDKを取得:

Copied!Click to Copy
npm install @sentry/react

DSNを設定:

Copied!Click to Copy
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>",
  integrations: [
    Sentry.browserTracingIntegration(),
    Sentry.reactRouterV6BrowserTracingIntegration({...}),
  ],
  tracesSampleRate: 1.0,
  tracePropagationTargets: ['localhost', /^https:\/\/yourserver\.io\/api/],
});

ReactDOM.render(<App />, document.getElementById("root"));

Gemfilesentry-ruby gemを追加:

Copied!Click to Copy
gem "sentry-ruby"

DSNを設定:

Copied!Click to Copy
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
end

SDKを使用するには、Solidアプリケーションをレンダリングする前に、エントリーポイントindex.jsxでSentryを初期化します:

Copied!Click to Copy
import * as Sentry from "@sentry/solid";
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)

Sentry Java SDKを取得:

Copied!Click to Copy
<dependency>
  <groupId>io.sentry</groupId>
  <artifactId>sentry-spring-boot-starter</artifactId>
  <version><VERSION></version>
</dependency>

application.propertiesでDSNを設定:

Copied!Click to Copy
sentry.dsn=https://<key>@sentry.io/<project>
sentry.traces-sample-rate=1.0

SDKを使用するには、Svelteアプリケーションを起動する前に、エントリーポイントmain.jsでSentryを初期化します:

Copied!Click to Copy
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;

SentryをXcodeプロジェクトに統合するには、Podfileに指定してpod installを実行します:

Copied!Click to Copy
platform :ios, '9.0'
use_frameworks!
target 'YourApp' do
  pod 'Sentry', :git => 'https://github.com/getsentry/sentry-cocoa.git', :tag => '<VERSION>'
end

アプリケーションのライフサイクルのできるだけ早い段階でSDKを初期化します:

Copied!Click to Copy
import Sentry

func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [...]) -> Bool {
    SentrySDK.start { options in
        options.dsn = "https://<key>@sentry.io/<project>"
        options.debug = true
        options.tracesSampleRate = 1.0
    }
    return true
}

Sentry Vue SDKを取得:

Copied!Click to Copy
npm install @sentry/vue

DSNを設定:

Copied!Click to Copy
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");

サインアップして、たった1行のコードでSentryをインストール:

Copied!Click to Copy
brew install getsentry/tools/sentry-wizard && sentry-wizard -i android

一番驚いたのは、もしSentryがなかったら、このバグに何ヶ月も気づかず放置していただろうということです。

自分では気づけないような些細な問題を数多く修正できるので、結果としてUXの向上に直結するんだな、と実感し始めています。

Dan Mindru

@d4m1n,

@getsentry のイシューで見れる詳細情報、マジでヤバすぎる。

- ブラウザ情報
- 特定のコード行への参照
- バックエンドまで追跡可能なトレース情報

これ、セッションリプレイなしでこの情報量だからね。凄すぎる!

James Q Quick

@jamesqquick,

個人サイトの @getsentry 連携、やっと直した!もっと早くやればよかった…これめちゃくちゃ便利。感動してる。

Kent C. Dodds

@kentcdodds,