Sentry は、パフォーマンスの問題とエラーの特定・デバッグを助けるソフトウェア監視ツールです。エンドツーエンドの分散トレーシングからパフォーマンス監視まで、Sentry はコードレベルのオブザーバビリティを提供します。システムやサービスをまたいで、アプリケーションコードの健全性を把握し、問題を診断しやすくします。Cloudflare Workers アプリケーションのテレメトリを Sentry にエクスポートすると、次のことができます。
- Sentry でログとトレースをクエリする
- カスタムのアラートとダッシュボードを作成し、Workers を監視する
このガイドでは、Cloudflare Worker アプリケーションから OpenTelemetry 準拠のトレースとログを Sentry にエクスポートする手順を説明します。
始める前に、次を用意してください。
- Sentry アカウント ↗ に登録済みであること(無料プランあり)
- 監視したいデプロイ済みの Worker
データを送る Sentry プロジェクトがまだない場合は、Cloudflare Workers アプリケーションのテレメトリを送り始めるために作成します。
- Sentry アカウント ↗ にログインします
- ナビゲーションサイドバーの Insights > Projects を開き、プロジェクト一覧を表示します
- New Project ↗ をクリックします
- プロジェクト作成フォームに入力し、Create Project をクリックして完了します
Sentry はトレース用とログ用に別々の OTLP エンドポイントを提供します。これらを使ってテレメトリデータを Sentry に送れます。
- Traces:
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/traces - Logs:
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/logs
OTLP エンドポイントは、プロジェクト設定で確認できます。
- Sentry の Settings > Projects ↗ を開きます
- 一覧からプロジェクトを選び、プロジェクト名をクリックして設定を開きます
- 「SDK Setup」見出しの下にある、このプロジェクトの「Client Keys (DSN)」サブページを開きます
ここに、Sentry プロジェクトの OTLP ログおよび OTLP トレースのエンドポイントと、エンドポイント用の認証ヘッダーがあります。エンドポイントと認証ヘッダーをコピーしてください。
Sentry の OTLP エンドポイントの使い方の詳細は、Sentry の OTLP ドキュメント ↗ を参照してください。
Cloudflare ダッシュボードで送信先を設定するには、Cloudflare アカウントの Workers Observability ↗ を開きます。続いて Add destination をクリックし、トレースまたはログの送信先を設定します。
トレースの送信先を設定するには、Add destination をクリックし、次を設定します。
- Destination Name:
sentry-traces(またはわかりやすい名前) - Destination Type: Traces を選びます
- OTLP Endpoint: Sentry の OTLP トレースエンドポイント(例:
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/traces) - Custom Headers: Sentry の認証ヘッダーを追加します。
- Header name:
x-sentry-auth - Header value:
sentry sentry_key={SENTRY_PUBLIC_KEY}({SENTRY_PUBLIC_KEY}は Sentry プロジェクトの公開鍵です)
- Header name:
ログの送信先を設定するには、Add destination をクリックし、次を設定します。
- Destination Name:
sentry-logs(またはわかりやすい名前) - Destination Type: Logs を選びます
- OTLP Endpoint: Sentry の OTLP ログエンドポイント(例:
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/logs) - Custom Headers: Sentry の認証ヘッダーを追加します。
- Header name:
x-sentry-auth - Header value:
sentry sentry_key={SENTRY_PUBLIC_KEY}({SENTRY_PUBLIC_KEY}は Sentry プロジェクトの公開鍵です)
- Header name:
Cloudflare ダッシュボードで送信先を作成したら、Worker の設定を更新してテレメトリのエクスポートを有効にします。
{
"observability": {
"traces": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["sentry-traces"]
},
"logs": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["sentry-logs"]
}
}
}[observability.traces]
enabled = true
destinations = [ "sentry-traces" ]
[observability.logs]
enabled = true
destinations = [ "sentry-logs" ]設定を更新したら、変更を反映するために Worker をデプロイします。