mcpField
D
distributed-tracing

distributed-tracing

github.com/wshobsonクラウド・DevOps41.9k10.9k 回インストール2 週間前に更新
リポジトリ

distributed-tracing について

Jaeger と Tempo を使ってマイクロサービスに分散トレーシングを導入するスキルです。分散システムを運用するチーム向けに、サンプリングやコンテキスト伝播、ログとの相関付けを案内します。

主な機能

  1. 01Jaeger と Tempo のトレーシングガイド
  2. 02レイテンシと依存関係の分析
  3. 03サンプリングとコンテキスト伝播
  4. 04トレースとログの相関付け
  5. 05トレース負荷のトラブルシューティング

活用シーン

  1. 01リクエスト遅延の調査
  2. 02サービス依存関係の把握
  3. 03ボトルネックとエラー伝播経路の特定

インストール

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

$npx skills add https://github.com/wshobson/agents --skill distributed-tracing

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

同梱ファイルreferences/details.md

詳細

分散トレーシング

Jaeger と Tempo を使用して分散トレーシングを実装し、マイクロサービス間のリクエストフローを可視化します。

目的

分散システム全体でリクエストを追跡し、レイテンシ、依存関係、障害ポイントを把握します。

使用する場面

  • レイテンシの問題をデバッグする
  • サービス間の依存関係を理解する
  • ボトルネックを特定する
  • エラーの伝播を追跡する
  • リクエストの経路を分析する

詳細なパターンと実例

詳細なパターンのドキュメントは references/details.md にあります。上記のナビゲーション階層では不十分な場合に、そのファイルを参照してください。

ベストプラクティス

  1. 適切にサンプリングする(本番環境では 1〜10%)
  2. 意味のあるタグを追加する(user_id、request_id)
  3. すべてのサービス境界をまたいでコンテキストを伝播する
  4. 例外をスパンに記録する
  5. 操作には一貫した命名を使用する
  6. トレーシングのオーバーヘッドを監視する(CPU 影響 1% 未満)
  7. トレースエラーに対するアラートを設定する
  8. 分散コンテキスト(baggage)を実装する
  9. 重要なマイルストーンにはスパンイベントを使用する
  10. 計装の標準を文書化する

ログとの統合

相関ログ
import logging
from opentelemetry import trace

logger = logging.getLogger(__name__)

def process_request():
    span = trace.get_current_span()
    trace_id = span.get_span_context().trace_id

    logger.info(
        "Processing request",
        extra={"trace_id": format(trace_id, '032x')}
    )

トラブルシューティング

トレースが表示されない:

  • コレクターのエンドポイントを確認する
  • ネットワーク接続を検証する
  • サンプリング設定を確認する
  • アプリケーションログを確認する

レイテンシのオーバーヘッドが高い:

  • サンプリングレートを下げる
  • バッチスパンプロセッサーを使用する
  • エクスポーターの設定を確認する

関連スキル

  • prometheus-configuration - メトリクス向け
  • grafana-dashboards - 可視化向け
  • slo-implementation - レイテンシ SLO 向け

コメント