sentry-python-sdk は何をしますか?
Python向けSentry SDKの完全セットアップ。ユーザーが「PythonにSentryを追加」「sentry-sdkをインストール」「PythonでSentryをセットアップ」などと依頼した場合、またはPythonアプリケーションでエラーモニタリング、トレーシング、プロファイリング、ロギング、メトリクス、crons、AIモニタリングを構成する場合に使用します。Django、Flask、FastAPI、Celery、Starlette、AIOHTTP、Tornadoなどをサポートしています。
主な機能
- エラーモニタリング: 例外を自動的にキャプチャし、Sentryに報告します。
- トレーシング: パフォーマンスの問題を特定するための分散トレーシングを提供します。
- プロファイリング: コードのボトルネックを特定するためのプロファイリングデータを収集します。
- ロギング: 構造化ログをSentryに送信します。
- メトリクス: カスタムメトリクスを収集して可視化します。
- crons: 定期的なジョブのモニタリングとアラートを設定します。
- AIモニタリング: AI/MLパイプラインのパフォーマンスとエラーを追跡します。
インストール
pip install sentry-sdk
特定のフレームワーク向けの追加パッケージ:
pip install sentry-sdk[django]
pip install sentry-sdk[flask]
pip install sentry-sdk[fastapi]
pip install sentry-sdk[celery]
pip install sentry-sdk[starlette]
pip install sentry-sdk[aiohttp]
pip install sentry-sdk[tornado]
基本的なセットアップ
import sentry_sdk
sentry_sdk.init(
dsn="https://[email protected]/0",
# 以下は推奨設定
enable_tracing=True,
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
)
フレームワーク別の設定
Django
settings.py に以下を追加:
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[DjangoIntegration()],
enable_tracing=True,
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
)
Flask
アプリケーションの初期化時に:
import sentry_sdk
from sentry_sdk.integrations.flask import FlaskIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[FlaskIntegration()],
enable_tracing=True,
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
)
FastAPI
import sentry_sdk
from sentry_sdk.integrations.fastapi import FastApiIntegration
from sentry_sdk.integrations.starlette import StarletteIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[StarletteIntegration(), FastApiIntegration()],
enable_tracing=True,
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
)
Celery
Celeryアプリケーションの設定時に:
import sentry_sdk
from sentry_sdk.integrations.celery import CeleryIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[CeleryIntegration()],
enable_tracing=True,
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
)
環境変数
| 変数名 | 説明 |
|---|---|
SENTRY_DSN | SentryプロジェクトのDSN |
SENTRY_ENVIRONMENT | 環境名 (例: production, staging) |
SENTRY_RELEASE | リリースバージョン |
トラブルシューティング
- 設定後もエラーが報告されない場合: DSNが正しいこと、およびネットワーク接続がSentryのエンドポイントに到達できることを確認してください。
- トレースが表示されない場合:
enable_tracing=Trueが設定されているか確認してください。 - プロファイリングが機能しない場合:
profiles_sample_rateが適切に設定されているか確認してください。