Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

sentry-go-sdk

Goアプリケーションへの完全なSentry SDK導入を支援するスキル。「GoにSentryを追加したい」「sentry-goをインストールしたい」「Goでエラー監視を設定したい」といった要望や、トレーシング・ロギング・メトリクス・cronの設定時に使用します。net/http、Gin、Echo、Fiber、FastHTTP、Iris、Negroni、gRPCに対応しています。

description の原文を見る

Full Sentry SDK setup for Go. Use when asked to "add Sentry to Go", "install sentry-go", "setup Sentry in Go", or configure error monitoring, tracing, logging, metrics, or crons for Go applications. Supports net/http, Gin, Echo, Fiber, FastHTTP, Iris, Negroni, and gRPC.

SKILL.md 本文

All Skills > SDK Setup > Go SDK

Sentry Go SDK

Go プロジェクトをスキャンして、Sentry の完全なセットアップをガイドする実用的なウィザードです。

このスキルを呼び出すタイミング

  • ユーザーが Go アプリで「Sentry を追加」または「Sentry をセットアップ」を希望
  • ユーザーが Go でエラーモニタリング、トレーシング、ログ、メトリクス、またはクローン機能を必要とする
  • ユーザーが sentry-gogithub.com/getsentry/sentry-go、または Go Sentry SDK について言及
  • ユーザーが Go でパニック、HTTP ハンドラー、またはスケジュール済みジョブを監視したい

注記: 以下の SDK バージョンと API は、執筆時点の Sentry ドキュメント (sentry-go v0.43.0+) を反映しています。 v0.33.0+ 以降、SDK は Go 1.25 以降 が必要です (最新の 2 つの Go メジャーバージョンをサポート)。 実装前に必ず docs.sentry.io/platforms/go/ で確認してください。


フェーズ 1: 検出

推奨事項を提示する前に、これらのコマンドを実行してプロジェクトを理解します:

# Check existing Sentry dependency
grep -i sentry go.mod 2>/dev/null

# Detect web framework
grep -E "gin-gonic/gin|labstack/echo|gofiber/fiber|valyala/fasthttp|kataras/iris|urfave/negroni" go.mod 2>/dev/null

# Detect gRPC
grep "google.golang.org/grpc" go.mod 2>/dev/null

# Detect logging libraries
grep -E "sirupsen/logrus|go.uber.org/zap|rs/zerolog|log/slog" go.mod go.sum 2>/dev/null

# Detect cron / scheduler patterns
grep -E "robfig/cron|go-co-op/gocron|jasonlvhit/gocron" go.mod 2>/dev/null

# Detect OpenTelemetry usage
grep "go.opentelemetry.io" go.mod 2>/dev/null

# Check for companion frontend
ls frontend/ web/ client/ ui/ 2>/dev/null

確認すべき点:

  • sentry-go は既に go.mod にありますか? ある場合は、フェーズ 2 (機能構成) にスキップします。
  • どのフレームワークが使用されていますか? (インストールするサブパッケージとミドルウェアを決定します)
  • どのログライブラリですか? (自動ログキャプチャを有効にします)
  • クローン/スケジューラーパターンが存在しますか? (クローン推奨をトリガーします)
  • コンパニオンフロントエンドディレクトリはありますか? (フェーズ 4 クロスリンクをトリガーします)

フェーズ 2: 推奨

見つけたものに基づいて、具体的な推奨事項を提示します。オープンエンドの質問をしないでください — 提案から始めてください:

推奨 (コアカバレッジ):

  • エラーモニタリング — 常に; パニックと未処理エラーをキャプチャ
  • トレーシング — HTTP ハンドラー、gRPC、または DB 呼び出しが検出された場合
  • ログ — logrus、zap、zerolog、または slog が検出された場合

オプション (強化された可観測性):

  • メトリクス — ビジネス KPI / SLO のカスタムカウンターとゲージ
  • クローン — スケジュール済みジョブのサイレント障害を検出
  • ⚠️ プロファイリング — sentry-go v0.31.0 で削除; 代替案については references/profiling.md を参照

推奨ロジック:

機能推奨タイミング...
エラーモニタリング常に — 交渉不可のベースライン
トレーシングnet/http、gin、echo、fiber、gRPC、または DB 呼び出しが検出された場合
ログlogrus、zap、zerolog、または log/slog インポートが検出された場合
メトリクスビジネスイベント、SLO トラッキング、またはカウンターが必要な場合
クローンrobfig/crongocron、またはスケジュール済みジョブパターンが検出された場合
プロファイリング⚠️ v0.31.0 で削除 — 推奨しないでください; references/profiling.md を参照

提案: 「エラーモニタリング + トレーシング [該当する場合はログ] をセットアップすることをお勧めします。メトリクスまたはクローンも追加しましょうか?」


フェーズ 3: ガイド

インストール

# Core SDK (always required)
go get github.com/getsentry/sentry-go

# Framework sub-package — install only what matches detected framework:
go get github.com/getsentry/sentry-go/http      # net/http
go get github.com/getsentry/sentry-go/gin       # Gin
go get github.com/getsentry/sentry-go/echo      # Echo
go get github.com/getsentry/sentry-go/fiber     # Fiber
go get github.com/getsentry/sentry-go/fasthttp  # FastHTTP

# Logging sub-packages — install only what matches detected logging lib:
go get github.com/getsentry/sentry-go/logrus    # Logrus
go get github.com/getsentry/sentry-go/slog      # slog (stdlib, Go 1.21+)
go get github.com/getsentry/sentry-go/zap       # Zap
go get github.com/getsentry/sentry-go/zerolog   # Zerolog

# gRPC interceptors (only if google.golang.org/grpc is detected):
go get github.com/getsentry/sentry-go/grpc

# OpenTelemetry bridge (only if OTel is already in use):
go get github.com/getsentry/sentry-go/otel

クイックスタート — 推奨初期化

他のコードより前に main() に追加します。この設定は、バランスの取れたデフォルト値で最も多くの機能を有効にします:

import (
    "log"
    "os"
    "time"
    "github.com/getsentry/sentry-go"
)

err := sentry.Init(sentry.ClientOptions{
    Dsn:              os.Getenv("SENTRY_DSN"),
    Environment:      os.Getenv("SENTRY_ENVIRONMENT"), // "production", "staging", etc.
    Release:          release,                          // inject via -ldflags at build time
    SendDefaultPII:   true,
    AttachStacktrace: true,

    // Tracing (adjust sample rate for production)
    EnableTracing:    true,
    TracesSampleRate: 1.0, // lower to 0.1–0.2 in high-traffic production

    // Logs
    EnableLogs: true,
})
if err != nil {
    log.Fatalf("sentry.Init: %s", err)
}
defer sentry.Flush(2 * time.Second)

ビルド時に Release を注入する (推奨):

var release string // set by -ldflags

// go build -ldflags="-X main.release=my-app@$(git describe --tags)"

フレームワークミドルウェア

sentry.Init の後、フレームワーク用の Sentry ミドルウェアを登録します:

フレームワークインポートパスミドルウェア呼び出しRepanicWaitForDelivery
net/http.../sentry-go/httpsentryhttp.New(opts).Handle(h)truefalse
Gin.../sentry-go/ginrouter.Use(sentrygin.New(opts))truefalse
Echo.../sentry-go/echoe.Use(sentryecho.New(opts))truefalse
Fiber.../sentry-go/fiberapp.Use(sentryfiber.New(opts))falsetrue
FastHTTP.../sentry-go/fasthttpsentryfasthttp.New(opts).Handle(h)falsetrue
Iris.../sentry-go/irisapp.Use(sentryiris.New(opts))truefalse
Negroni.../sentry-go/negronin.Use(sentrynegroni.New(opts))truefalse

注記: Fiber と FastHTTP は valyala/fasthttp の上に構築されており、組み込み回復がありません。これらの場合は Repanic: false, WaitForDelivery: true を使用します。

ハンドラーでのハブアクセス:

// net/http, Negroni:
hub := sentry.GetHubFromContext(r.Context())

// Gin:
hub := sentrygin.GetHubFromContext(c)

// Echo:
hub := sentryecho.GetHubFromContext(c)

// Fiber:
hub := sentryfiber.GetHubFromContext(c)

gRPC 統合

gRPC サーバーとクライアントの場合、代わりに sentrygrpc インターセプターを使用します:

import sentrygrpc "github.com/getsentry/sentry-go/grpc"

// Server: register interceptors when creating the gRPC server
server := grpc.NewServer(
    grpc.UnaryInterceptor(sentrygrpc.UnaryServerInterceptor()),
    grpc.StreamInterceptor(sentrygrpc.StreamServerInterceptor()),
)

// Client: register interceptors when dialing
conn, err := grpc.NewClient(
    address,
    grpc.WithUnaryInterceptor(sentrygrpc.UnaryClientInterceptor()),
    grpc.WithStreamInterceptor(sentrygrpc.StreamClientInterceptor()),
)

// Hub access inside a gRPC handler:
hub := sentry.GetHubFromContext(ctx)

合意した各機能について

機能を 1 つずつウォークスルーします。各機能の参考ファイルを読み込み、ステップに従い、次に進む前に検証します:

機能参考ファイル読み込むタイミング...
エラーモニタリング${SKILL_ROOT}/references/error-monitoring.md常に (ベースライン)
トレーシング${SKILL_ROOT}/references/tracing.mdHTTP ハンドラー / 分散トレーシング
プロファイリング${SKILL_ROOT}/references/profiling.mdパフォーマンス重視の本番アプリ
ログ${SKILL_ROOT}/references/logging.mdlogrus / zap / zerolog / slog が検出された場合
メトリクス${SKILL_ROOT}/references/metrics.mdビジネス KPI / SLO トラッキング
クローン${SKILL_ROOT}/references/crons.mdスケジューラー / クローン ジョブパターンが検出された場合

各機能について: ${SKILL_ROOT}/references/<feature>.md を読み、ステップに従い、動作を確認します。


設定リファレンス

キー ClientOptions フィールド

オプションデフォルト目的
Dsnstring""空の場合は SDK は無効化; env: SENTRY_DSN
Environmentstring""例: "production"; env: SENTRY_ENVIRONMENT
Releasestring""例: "my-app@1.0.0"; env: SENTRY_RELEASE
SendDefaultPIIboolfalseIP、リクエストヘッダーを含める
AttachStacktraceboolfalseCaptureMessage 呼び出しにスタックトレースを追加
SampleRatefloat641.0エラーイベントサンプルレート (0.0 は 1.0 として扱われます)
EnableTracingboolfalseパフォーマンストレーシングを有効化
TracesSampleRatefloat640.0トランザクションサンプルレート
TracesSamplerTracesSamplernilカスタムトランザクション単位のサンプリング (レートをオーバーライド)
EnableLogsboolfalseSentry ログ機能を有効化
MaxBreadcrumbsint100イベント単位の最大ブレッドクラム数
MaxErrorDepthint100エラーチェーンアンラップの最大深さ
DebugboolfalseSDK デバッグ出力の詳細表示
BeforeSendfuncnilエラーイベントを変更/ドロップするフック
BeforeSendTransactionfuncnilトランザクションイベントを変更/ドロップするフック
IgnoreErrors[]stringnilドロップするエラーの正規表現パターン
IgnoreTransactions[]stringnilドロップするトランザクションの正規表現パターン

環境変数

変数マップ先目的
SENTRY_DSNDsnData Source Name
SENTRY_RELEASEReleaseアプリバージョン (例: my-app@1.0.0)
SENTRY_ENVIRONMENTEnvironmentデプロイメント環境
HTTP_PROXY / HTTPS_PROXYHTTPProxy / HTTPSProxyアウトバウンドプロキシ

ClientOptions で設定されたオプションは、環境変数を オーバーライド します。


検証

Sentry がイベントを受け取っていることをテストします:

// In a handler or test — triggers a real error event:
sentry.CaptureMessage("Sentry Go SDK test")

// Or trigger a captured panic (with recovery middleware in place):
panic("sentry test panic")

数秒以内に Sentry ダッシュボードを確認します。何も表示されない場合:

  1. ClientOptionsDebug: true を設定します — SDK の内部を stdout に出力
  2. DSN が正しく、プロジェクトが存在することを確認
  3. sentry.Flush(2 * time.Second) が呼び出されていることを確認 (デフォルトではイベントは非同期)

フェーズ 4: クロスリンク

Go セットアップを完了した後、Sentry カバレッジが欠けているコンパニオンフロントエンドをチェックします:

ls frontend/ web/ client/ ui/ 2>/dev/null
cat frontend/package.json web/package.json 2>/dev/null | grep -E '"react"|"svelte"|"vue"|"next"'

Sentry が構成されていないフロントエンドディレクトリが存在する場合、一致するスキルを提案します:

フロントエンド検出スキルを提案
React / Next.jssentry-react-sdk
Svelte / SvelteKitsentry-svelte-sdk
Vue@sentry/vue を使用 — docs.sentry.io/platforms/javascript/guides/vue/ を参照
その他 JS/TSsentry-react-sdk (汎用ブラウザ JS パターンをカバー)

トラブルシューティング

問題解決策
イベントが表示されないDebug: true を設定、DSN を確認、sentry.Flush() が呼び出されていることを確認
sentry.Init がエラーを返す形式が不正な DSN — 形式を確認: https://<key>@o<org>.ingest.sentry.io/<project>
パニックがキャプチャされないフレームワークミドルウェアがハンドラーの前に登録されていることを確認
defer sentry.Flush が実行されないos.Exit()defer をスキップします — os.Exit() の前に sentry.Flush() を明示的に呼び出す
スタックトレースが見つかないCaptureMessageAttachStacktrace: true を設定; CaptureException では自動的に機能
ゴルーチンイベントがコンテキストを失うゴルーチンを生成する前にハブをクローン: hub := sentry.CurrentHub().Clone()
トランザクションが多すぎるTracesSampleRate を低下させるか、TracesSampler を使用してヘルスチェック / メトリクスエンドポイントをドロップ
Fiber/FastHTTP が回復しないfasthttp ベースのフレームワークに Repanic: false, WaitForDelivery: true を使用
SampleRate: 0.0 がすべてのイベントを送信0.01.0 として扱われます; すべてをドロップするには、代わりに Dsn: "" を設定

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
getsentry
リポジトリ
getsentry/sentry-for-ai
ライセンス
MIT
最終更新
不明

Source: https://github.com/getsentry/sentry-for-ai / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: getsentry · getsentry/sentry-for-ai · ライセンス: MIT