mcpField
S
sentry-python-setup

sentry-python-setup

github.com/getsentry開発25122 回インストール35 週間前に更新
リポジトリ

sentry-python-setup について

Pythonプロジェクトへの Sentry 導入と設定を案内するスキルです。エラー監視、ログ、トレースを設定する開発者向けに、主要フレームワークや非同期アプリ、動作確認を扱います。

主な機能

  1. 01sentry-sdk のインストール
  2. 02Sentry の初期化と設定
  3. 03Django、Flask、FastAPI などに対応
  4. 04環境変数の設定
  5. 05イベント確認とトラブルシューティング

活用シーン

  1. 01Python アプリにエラー監視を追加
  2. 02非同期アプリで Sentry を設定
  3. 03イベントやトレースの未送信を調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/getsentry/sentry-agent-skills --skill sentry-python-setup

インストール後、Claude Code で/sentry-python-setupを入力して読み込まれたか確認します。

詳細

Sentry Python のセットアップ

Python プロジェクトに Sentry をインストールして設定します。

このスキルを使う場面

  • ユーザーが Python アプリに「Sentry を追加」または「Sentry をインストール」したい場合
  • ユーザーが Python でエラー監視、ログ記録、トレースを行いたい場合
  • ユーザーが「sentry-sdk」や Python フレームワーク(Django、Flask、FastAPI)に言及した場合

重要: 以下の設定オプションとコードサンプルは例です。API やデフォルト値が変更されている可能性があるため、実装前に必ず docs.sentry.io で確認してください。

インストール

pip install sentry-sdk

設定

アプリケーションのできるだけ早い段階で初期化します。

import sentry_sdk

sentry_sdk.init(
    dsn="YOUR_SENTRY_DSN",
    send_default_pii=True,
    
    # Tracing
    traces_sample_rate=1.0,
    
    # Profiling
    profile_session_sample_rate=1.0,
    profile_lifecycle="trace",
    
    # Logs
    enable_logs=True,
)
非同期アプリケーション

非同期アプリの場合は、非同期関数内で初期化します。

import asyncio
import sentry_sdk

async def main():
    sentry_sdk.init(
        dsn="YOUR_SENTRY_DSN",
        send_default_pii=True,
        traces_sample_rate=1.0,
        enable_logs=True,
    )
    # ... rest of app

asyncio.run(main())

フレームワークとの統合

上記と同じ sentry_sdk.init() 呼び出しを使用します。アプリの起動前に実行される場所に配置してください。

フレームワーク初期化する場所備考
Djangosettings.py の先頭Django を自動検出します。追加のインストールは不要です
Flaskapp = Flask(__name__) の前Flask を自動検出します
FastAPIapp = FastAPI() の前FastAPI を自動検出します
CeleryCelery ワーカーの設定内Celery を自動検出します
AIOHTTPアプリの作成前AIOHTTP を自動検出します

設定オプション

オプション説明デフォルト最小 SDK バージョン
dsnSentry DSNNone(指定しない場合、SDK は何もしません)—
send_default_piiユーザーデータを含めるNone—
traces_sample_rateトレースするトランザクションの割合None(トレースは無効)—
profile_session_sample_rateプロファイリングするセッションの割合None(プロファイリングは無効)2.24.1+
profile_lifecycleプロファイリングモード("trace" または "manual")"manual"2.24.1+
enable_logsSentry にログを送信するFalse2.35.0+
environment環境名"production"(または SENTRY_ENVIRONMENT 環境変数)—
releaseリリースバージョン自動検出—

環境変数

SDK は以下を自動的に読み取ります。

SENTRY_DSN=https://[email protected]/456
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=1.0.0

sentry-cli(ソースマップ、リリース)では、以下も設定します。

SENTRY_AUTH_TOKEN=sntrys_xxx
SENTRY_ORG=my-org
SENTRY_PROJECT=my-project

または、コード内で DSN を渡します。

import os
import sentry_sdk

sentry_sdk.init(
    dsn=os.environ.get("SENTRY_DSN"),
    # ...
)

検証

# Intentional error to test
division_by_zero = 1 / 0

または、手動でキャプチャします。

sentry_sdk.capture_message("Test message from Python")

トラブルシューティング

問題解決策
エラーが表示されないinit() が早い段階で呼び出されていることを確認し、DSN を確認します
トレースがないtraces_sample_rate を 0 より大きい値に設定します
IPython のエラーがキャプチャされない対話型シェルではなく、ファイルから実行します
非同期エラーが見つからない非同期関数内で初期化します

コメント