mcpField
O
otel-go

otel-go

github.com/ollygarden開発117131 回インストール2 日前に更新
リポジトリ

otel-go について

otel-go は Go サービスで OpenTelemetry を使うためのリファレンススキルです。テレメトリーの設定や計装、性能調整、SDK・contrib の更新確認を支援し、モジュールのバージョン選択とローカル検証も扱います。

主な機能

  1. 01YAML による SDK の宣言的設定
  2. 02API 利用と計装のガイド
  3. 03性能調整のリファレンス
  4. 04破壊的変更と更新の確認
  5. 05otelc によるコンパイル時計装

活用シーン

  1. 01Go サービスへのテレメトリー追加
  2. 02計装ライブラリの選定
  3. 03OpenTelemetry 依存関係の更新確認

インストール

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

$npx skills add https://github.com/ollygarden/opentelemetry-agent-skills --skill otel-go

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
results.md
evals/files/
go-v145-upgrade.md
references/
api.md
breaking-changes.md
compile-time-instrumentation.md
declarative-setup.md
instrumentation-libraries.md
performance.md

詳細

Go における OpenTelemetry

Go サービスにおける OpenTelemetry の仕組みを調べるためのエントリーポイントです。タスクに応じて、以下のリファレンスを参照してください。各リファレンスは単独で利用できます。

リファレンス

ファイル参照する場面
references/declarative-setup.mdotelconf と YAML による SDK の設定:プロバイダー、プロパゲーター、シャットダウン、環境変数の置換。
references/api.mdインポートパス、グローバル API へのアクセス、トレーサー/メーター/ロガーの使い方、属性、プロパゲーション、ログブリッジ(zap、slog)を調べるとき。
references/instrumentation-libraries.mdcontrib ライブラリ(otelhttp、otelgrpc、データベース、AWS、メッセージキュー、プロパゲーター、リソース検出器)の選定や接続、および semconv に準拠した手動計装の実装。
references/performance.mdサンプリング、バッチプロセッサー、メトリクスリーダー、エクスポーターの圧縮/再試行、属性の割り当て、ログの Enabled() による早期終了、グレースフルシャットダウンの調整。
references/breaking-changes.md最近の SDK/contrib リリースにおける非推奨の呼び出し、名前が変更されたセマンティック規約、削除された API について、既存コードを監査するとき。
references/compile-time-instrumentation.mdotelc を使ったゼロコードのコンパイル時計装:使用方法(otelc go build、ツール依存関係、toolexec による置き換え)、サブコマンド、サポート対象ライブラリ、ルールの参照元/優先順位、otel.instrumentation.go によるバージョン固定。

アップグレードのレビューでは、必ず安全なローカル検証手順(go mod tidy -diff、 go build ./...、go test ./...)で締めくくってください。エクスポーターの URL や再試行の変更は、デプロイ先のエンドポイントではなく、使い捨てのローカルレシーバーに対してテストしてください。

モジュールのバージョン管理 — 依存関係を追加する前にお読みください

opentelemetry-go は、個別にバージョン管理されるモジュールグループに分かれています。各グループで同じバージョン番号を共有しているわけではありません。そうだと仮定することは、ビルドの失敗やバージョンの頻繁な変更が起きる最も一般的な原因です。

モジュールグループモジュールの例バージョン系列
安定版(トレース、メトリクス、ログの API/SDK)go.opentelemetry.io/otel、otel/sdk、otel/trace、otel/metric、otel/log、otel/sdk/log、OTLP トレース/メトリクスエクスポーターv1.x(例:v1.47.0。ログ API/SDK は v1.47.0 で加わりました)
ログエクスポーターとテストヘルパーotel/exporters/otlp/otlplog/otlploghttp、.../otlploggrpc、otel/exporters/stdout/stdoutlog、otel/log/logtest、otel/sdk/log/logtestv0.x(独立した、より小さいバージョン系列。例:v0.23.0)
contrib 計装contrib/instrumentation/net/http/otelhttp、.../otelgrpcv0.x(独立したバージョン系列。例:v0.72.0)
contrib ログブリッジcontrib/bridges/otelslog、otelzap、otellogrus、otellogrv0.x

落とし穴: すべてのモジュールをコアのバージョンに固定すると(例:go get go.opentelemetry.io/otel/exporters/otlp/otlplog/[email protected])、失敗します。ログエクスポーター、ログテストヘルパー、ブリッジの各モジュールには v1.x のタグがありません。各 @vX を手作業で選んで何度も見直すのは、避けるべきバージョン変更の繰り返しです。

代わりに、次のようにしてください — 各モジュールを @latest で追加し、Go に互換性のある組み合わせを解決させます。

go get go.opentelemetry.io/otel@latest go.opentelemetry.io/otel/sdk@latest
# logs (API/SDK are v1.x; log exporters stay on a v0.x line — do NOT force the core version):
go get go.opentelemetry.io/otel/log@latest go.opentelemetry.io/otel/sdk/log@latest \
       go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@latest
# contrib (instrumentation and bridges each resolve to their own v0.x line):
go get go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@latest \
       go.opentelemetry.io/contrib/bridges/otelslog@latest
go mod tidy && go build ./...

正確なバージョンが必要な場合は、各モジュールグループ固有のソースからタグを取得してください(以下を参照)。あるグループのバージョンから別のグループのバージョンを推測してはいけません。

信頼できる情報源

YAML スキーマの詳細については、otel-declarative-config スキルに記載されている上流の情報源を取得してください。 Go 固有の情報については、以下を参照してください。

情報取得方法
最新の go.opentelemetry.io/otel コアリリースgh api repos/open-telemetry/opentelemetry-go/releases/latest -q '.tag_name'
最新の go.opentelemetry.io/contrib リリースgh api repos/open-telemetry/opentelemetry-go-contrib/releases/latest -q '.tag_name'
最新の otelconf モジュールタグ以下の表にある、バージョン順に並べ替えるタグコマンド
最新の Go semconv パッケージ選択したコアリリースの CHANGELOG で Add the go.opentelemetry.io/otel/semconv/ を検索してください。上流の semantic-conventions リリースからパッケージの提供状況を推測しないでください。オフラインの場合:otel v1.47.0 の semconv/v1.43.0(2026-10-25 に確認。記録:otel-semantic-conventions スキルの references/sdk-semconv-packages.md)。
otel-go CHANGELOGWebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/main/CHANGELOG.md
otel-go-contrib CHANGELOGWebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-go-contrib/main/CHANGELOG.md
gh api repos/open-telemetry/opentelemetry-go-contrib/git/matching-refs/tags/otelconf -q '.[].ref' | sort -V | tail -1

相互参照

  • スキーマレベルの情報:otel-declarative-config スキル(言語に依存しない YAML スキーマの情報源)。
  • 言語間での SDK バージョンの選択:otel-sdk-versions スキル。
  • セマンティック規約の検索:otel-semantic-conventions スキル。

コメント