sentry-monitoring について
sentry-monitoringは、エージェントのコンテキストからSentryを操作するプロンプト駆動型スキルです。運用、インシデント対応、開発でエラーや性能、リリース、プロジェクト設定を扱い、状態変更には確認を求めます。
主な機能
- 01エラーの一覧表示と詳細確認
- 02解決・無視の前に確認
- 03トランザクション性能と遅いクエリの確認
- 04リリースと関連コミットの管理
- 05プロジェクト設定とアラートの確認
活用シーン
- 01未解決の本番エラーのトリアージ
- 02遅いエンドポイントやデータベースクエリの特定
- 03リリースの作成と状態の追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill sentry-monitoringインストール後、Claude Code で/sentry-monitoringを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/sentry-monitoring.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/sentry-monitoring.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
モード:認知/プロンプト駆動型 — 単独で実行できるユーティリティスクリプトはありません。エージェントのコンテキストを介して使用します。
Sentry 監視スキル
概要
Sentry API を直接呼び出す場合と比べて、コンテキストを 90%以上節約できます。機能カテゴリごとの段階的な開示に対応しています。エラートラッキング、パフォーマンス監視、リリース管理、プロジェクト設定が含まれます。
要件
- プロジェクトが設定された Sentry アカウント
SENTRY_AUTH_TOKEN環境変数(任意。認証が必要な API 呼び出しに使用)SENTRY_ORG環境変数(任意。デフォルトは最初の組織)SENTRY_PROJECT環境変数(任意。デフォルトは最初のプロジェクト)
ツール(段階的な開示)
エラートラッキング
| ツール | 説明 | 確認 |
|---|---|---|
| list-issues | 最近の問題/エラーを一覧表示します | 不要 |
| issue-details | 問題の詳細情報を取得します | 不要 |
| resolve-issue | 問題を解決済みとしてマークします | 必要 |
| ignore-issue | 問題を無視/一時停止します | 必要 |
パフォーマンス監視
| ツール | 説明 | 確認 |
|---|---|---|
| list-transactions | パフォーマンスのトランザクションを一覧表示します | 不要 |
| transaction-summary | トランザクションのパフォーマンス統計を取得します | 不要 |
| slow-queries | 遅いデータベースクエリを特定します | 不要 |
リリース管理
| ツール | 説明 | 確認 |
|---|---|---|
| list-releases | リリースを一覧表示します | 不要 |
| create-release | 新しいリリースを作成します | 必要 |
| set-commits | コミットをリリースに関連付けます | 必要 |
プロジェクト設定
| ツール | 説明 | 確認 |
|---|---|---|
| list-projects | Sentry プロジェクトを一覧表示します | 不要 |
| project-settings | プロジェクト設定を表示します | 不要 |
| list-alerts | アラートルールを一覧表示します | 不要 |
クイックリファレンス
# List recent issues
curl -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
"https://sentry.io/api/0/projects/$SENTRY_ORG/$SENTRY_PROJECT/issues/?query=is:unresolved"
# Get issue details
curl -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
"https://sentry.io/api/0/issues/{issue_id}/"
# Resolve issue
curl -X PUT -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
"https://sentry.io/api/0/issues/{issue_id}/" \
-d '{"status": "resolved"}'
# List transactions
curl -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
"https://sentry.io/api/0/organizations/$SENTRY_ORG/events/?field=transaction"
# Create release
curl -X POST -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
"https://sentry.io/api/0/organizations/$SENTRY_ORG/releases/" \
-d '{"version": "1.0.0", "projects": ["project-slug"]}'
# List projects
curl -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
"https://sentry.io/api/0/organizations/$SENTRY_ORG/projects/"
設定
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
SENTRY_AUTH_TOKEN | 任意 | API 呼び出し用の Sentry 認証トークン |
SENTRY_ORG | 任意 | 組織のスラッグ(デフォルトは最初の組織) |
SENTRY_PROJECT | 任意 | プロジェクトのスラッグ(デフォルトは最初のプロジェクト) |
SENTRY_DSN | いいえ | SDK 連携用(このスキルでは使用しません) |
認証トークンの取得
- Sentry の Settings → Account → API → Auth Tokens に移動します
- 次のスコープを指定して新しいトークンを作成します:
project:read、project:write、event:read - 環境変数として設定します:
export SENTRY_AUTH_TOKEN=your_token_here
セキュリティ
⚠️ 出力に認証トークンを絶対に含めないでください ⚠️ 破壊的な操作(resolve-issue、ignore-issue、create-release、set-commits)には確認が必要です ⚠️ 認証情報には環境変数を使用し、ハードコードは絶対にしないでください
エージェントとの連携
- devops(主要):本番環境の監視、インシデント対応
- incident-responder(主要):エラーのトリアージ、問題の解決
- developer(副次):デバッグ、パフォーマンスの最適化
- qa(副次):テスト環境の監視
エラー処理
ツールの実行に失敗した場合:
SENTRY_AUTH_TOKENが設定されていることを確認します:echo $SENTRY_AUTH_TOKEN- トークンの権限に必要なスコープが含まれていることを確認します
- 組織とプロジェクトのスラッグが正しいことを確認します
- Sentry API のレート制限を確認します(デフォルト:3000 リクエスト/分)
一般的なワークフロー
インシデント対応
list-issues- 最近の未解決エラーを取得しますissue-details- 特定の問題を調査しますresolve-issue- 修正をデプロイした後、解決済みとしてマークします
パフォーマンスの最適化
list-transactions- レスポンスが遅いエンドポイントを特定しますtransaction-summary- パフォーマンスのパターンを分析しますslow-queries- データベースのボトルネックを見つけます
リリース管理
create-release- 新しいリリースバージョンを作成しますset-commits- コミットをリリースに関連付けますlist-releases- リリースの健全性を追跡します
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| 401 Unauthorized | SENTRY_AUTH_TOKEN が有効で、期限切れでないことを確認してください |
| 403 Forbidden | トークンに必要なスコープ(project:read、project:write、event:read)があることを確認してください |
| 404 Not Found | SENTRY_ORG と SENTRY_PROJECT が正しいスラッグであることを確認してください |
| Rate limit exceeded | 1 分待ち、リクエスト頻度を下げてください |
関連情報
- Sentry API のドキュメント:https://docs.sentry.io/api/
- Sentry のエラー追跡:https://docs.sentry.io/product/issues/
- Sentry のパフォーマンス:https://docs.sentry.io/product/performance/
- Sentry のリリース:https://docs.sentry.io/product/releases/
メモリプロトコル(必須)
開始前:
.claude/context/memory/learnings.md を読みます
完了後:
- 新しいパターン ->
.claude/context/memory/learnings.md - 見つかった問題 ->
.claude/context/memory/issues.md - 決定事項 ->
.claude/context/memory/decisions.md
作業の中断を想定してください。メモリに記録されていないことは、実行されていないものとして扱います。
OpenTelemetry + Grafana スタック
OTel で自動計装し、Sentry と Grafana に同時にエクスポートします:
import { NodeSDK } from '@opentelemetry/sdk-node';
import { SentrySpanProcessor } from '@sentry/opentelemetry';
const sdk = new NodeSDK({ spanProcessor: new SentrySpanProcessor() });
sdk.start();
継続的プロファイリング(Pyroscope)
# pyroscope.configure({ applicationName: 'api', serverAddress: 'http://pyroscope:4040' })
Grafana + Prometheus
services:
prometheus: { image: prom/prometheus }
grafana: { image: grafana/grafana }
otel-collector: { image: otel/opentelemetry-collector-contrib }
コメント
Markdown 対応