リクエストが複数のサービスにまたがる場合、マイクロサービスのデバッグは複雑になります。このスキルでは、Jaeger と Tempo を使用して分散トレーシングを実装するためのコード例と設定パターンを提供し、リクエストフローの完全な可視化を実現します。
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "distributed-tracing". Docker Compose で Jaeger をセットアップするにはどうすればよいですか?
النتيجة المتوقعة:
Jaeger 用の基本的な Docker Compose 設定は以下の通りです:
```yaml
version: '3.8'
services:
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686" # UI
- "14268:14268" # Collector
```
これにより、UI がポート 16686、コレクターがポート 14268 で動作する all-in-one Jaeger イメージが起動します。UI には http://localhost:16686 でアクセスできます。
استخدام "distributed-tracing". Python Flask リクエストをトレースするにはどうすればよいですか?
النتيجة المتوقعة:
OpenTelemetry を使用して Flask アプリケーションをインストルメントします。まずパッケージをインストールします:pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-jaeger opentelemetry-instrumentation-flask
次に、トレースプロバイダーを作成して Flask をインストルメントする初期化コードを追加します。スパンは自動的に Jaeger コレクターに送信されます。
التدقيق الأمني
آمنAll 54 static findings are false positives. The static scanner misinterprets markdown documentation code blocks as executable code, YAML frontmatter as crypto algorithms, and standard OpenTelemetry API calls as reconnaissance. This skill is legitimate DevOps documentation for distributed tracing with Jaeger and Tempo. No actual security risks identified.
درجة الجودة
ماذا يمكنك بناءه
SRE による本番環境の問題のデバッグ
トレース ID を使用してサービス全体のリクエストを追跡し、本番環境でレイテンシやエラーを引き起こしているマイクロサービスを特定します。
DevOps によるオブザーバビリティの実装
既存のサービスに OpenTelemetry のインストルメンテーションを追加し、集中トレース収集のために Jaeger をデプロイします。
開発者による依存関係の理解
サービスの依存関係を可視化し、システムアーキテクチャ全体のリクエストフローを理解します。
جرّب هذه الموجهات
ローカル開発用に Docker Compose で Jaeger をデプロイするにはどうすればよいですか?
Flask アプリケーションに OpenTelemetry をインストルメントして、トレースを Jaeger に送信する方法を示してください。
HTTP ヘッダーを使用してマイクロサービス間でトレースコンテキストを伝播させるにはどうすればよいですか?
可視性を維持しながらトレーシングのオーバーヘッドを削減するために、本番環境ではどのようなサンプリング戦略を使用すべきですか?
أفضل الممارسات
- トラフィック量に基づいて調整しながら、1〜10% のヘッドベースサンプリングから開始する
- フィルタリングのために user_id や request_id のような意味のあるスパン属性を追加する
- サービス間のすべての HTTP ヘッダーでトレースコンテキストを伝播させる
تجنب
- 過度なオーバーヘッドを生み出すため、本番環境で 100% のトレースをサンプリングしない
- すべての関数呼び出しに対してスパンを作成することを避け、外部呼び出しとデータベース操作に焦点を当てる
- コレクターエンドポイントをハードコードしない。設定には環境変数を使用する