???イェーガーv2が登場!ブログ投稿を読んで試してみてください。
グラフTD
SDK["OpenTelemetry SDK"] --> |HTTP または gRPC|コレクタ
COLLECTOR["イェーガーコレクター"] --> STORE[ストレージ]
コレクター --> |gRPC| PLUGIN[ストレージプラグイン]
コレクター --> |gRPC/サンプリング| SDK
プラグイン --> ストア
QUERY[Jaeger Query Service] --> STORE
クエリ --> |gRPC|プラグイン
UI[Jaeger UI] --> |HTTP|クエリ
サブグラフ アプリケーション ホスト
サブグラフ ユーザー アプリケーション
SDK
終わり
終わり
Dapper と OpenZipkin からインスピレーションを得た Yeter は、Uber Technologies によって作成され、Cloud Native Computing Foundation に寄付された分散トレーシング プラットフォームです。これは、マイクロサービスベースの分散システムの監視に使用できます。
以下も参照してください。
Yeter は、7 番目のトップレベル プロジェクト (2019 年 10 月に卒業) として Cloud Native Computing Foundation (CNCF) によってホストされています。コンテナー パッケージ化、動的スケジュール、マイクロサービス指向のテクノロジーの進化を支援したい企業の場合は、CNCF への参加を検討してください。誰が関与しているか、イェーガーがどのように役割を果たしているかの詳細については、CNCF イェーガー育成に関する発表とイェーガー卒業に関する発表をご覧ください。
Yeter は、オープン ガバナンスを備えたオープンソース プロジェクトです。私たちはコミュニティからの貢献を歓迎しており、プロジェクトの改善と拡張のためにぜひご協力をお願いします。参加するためのアイデアをいくつか紹介します。それらの多くはコーディングを必要としません。
Yeter バックエンドは、単一障害点がなく、ビジネス ニーズに合わせて拡張できるように設計されています。たとえば、Uber に設置されたイエーガーは通常、1 日に数十億のスパンを処理しています。
Yeter プロジェクトと OpenTelemetry プロジェクトには異なる目標があります。 OpenTelemetry は、アプリケーションがさまざまなテレメトリ データをプロセスから任意の数のメトリクスおよびトレース バックエンドにエクスポートできるようにするために、複数の言語で API と SDK を提供することを目的としています。 Yeter プロジェクトは主に、トレース テレメトリ データを受信し、そのデータの処理、集約、データ マイニング、および視覚化を提供するトレース バックエンドです。詳細については、ブログ投稿「Jaeger と OpenTelemetry」を参照してください。
Yeter はもともと OpenTracing 標準をサポートするように設計されました。この用語は、Jaeger UI で引き続き使用されていますが、概念はトレースの OpenTelemetry データ モデルに直接マッピングされています。
能力 | OpenTracing のコンセプト | OpenTelemetryのコンセプト |
---|---|---|
トレースを有向非巡回グラフ (ツリーだけでなく) として表現します。 | スパン参照 | スパンリンク |
厳密に型指定されたスパン属性 | スパンタグ | スパン属性 |
厳密に型指定されたイベント/ログ | スパンログ | スパンイベント |
Jaeger プロジェクトでは、現在は非推奨となっている Jaeger SDK の代わりに、OpenTelemetry SDK をインストルメンテーションに推奨しています。
Yeter は、ますます多くのストレージ バックエンドで使用できます。
Jaeger Web UI は、React などの一般的なオープンソース フレームワークを使用して Javascript で実装されています。 v1.0 では、UI が大量のデータを効率的に処理し、数万のスパンのトレースを表示できるようにするために、いくつかのパフォーマンスの改善がリリースされました (たとえば、80,000 スパンのトレースを試しました)。
Jaeger バックエンドは、Docker イメージのコレクションとして配布されます。バイナリは、コマンド ライン オプション、環境変数、複数の形式 (yaml、toml など) の構成ファイルなど、さまざまな構成方法をサポートしています。
実稼働 Kubernetes クラスターに Jaeger をデプロイする推奨される方法は、Jaeger Operator を使用することです。
Jaeger Operator は、Jaeger CR から Kubernetes マニフェストを生成するための CLI を提供します。これは、プレーンな Kubernetes マニフェスト ファイルの代替ソースとして考えることができます。
また、Jaeger エコシステムは、Jaeger をデプロイする代替方法として Helm チャートも提供します。
すべての Jaeger バックエンド コンポーネントは、デフォルトで Prometheus メトリクスを公開します (他のメトリクス バックエンドもサポートされています)。ログは、構造化ログ ライブラリ zap を使用して標準出力に書き込まれます。
Jaeger のサードパーティによるセキュリティ監査は、https://github.com/jaegertracing/security-audits で利用できます。 Yeter で利用可能なセキュリティ メカニズムの概要については、問題 #1718 を参照してください。
OpenTelemetry を使用してアプリケーションをインストルメント化することをお勧めしますが、組織が Zipkin ライブラリを使用したインストルメンテーションにすでに投資している場合は、そのコードをすべて書き直す必要はありません。 Jaeger は、HTTP 経由で Zipkin 形式 (Thrift または JSON v1/v2) のスパンを受け入れることにより、Zipkin との下位互換性を提供します。 Zipkin バックエンドからの切り替えは、トラフィックを Zipkin ライブラリから Jaeger バックエンドにルーティングするだけです。
場合によっては、使いやすさの向上や新機能などにより、CLI フラグが非推奨になることがあります。このような状況では、非推奨を導入する開発者は、これらのガイドラインに従う必要があります。
つまり、非推奨の CLI フラグについては、 --help
ドキュメントに次のメッセージが表示されることが予想されます。
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
非推奨の CLI フラグを削除できるようになるまで、非推奨通知を含む最初のリリースから少なくとも3 か月または2 回のマイナー バージョン バンプ(いずれか遅い方) の猶予期間が設けられます。
たとえば、CLI フラグの非推奨通知を含む v1.28.0 が 2021 年 6 月 1 日にリリースされるシナリオを考えてみましょう。このフラグは、2021 年 9 月 1 日以降または v1.30.0 まで非推奨の状態のままになり、これらのイベントのいずれか以降に削除できるようになります。前述の猶予期間よりも長く非推奨のままになる可能性があります。
Yeter プロジェクトは、Go チームによって定義された、現在サポートされている Go のバージョンを追跡しようとします。サポートされていない Go バージョンのサポートを削除することは、重大な変更とはみなされません。
Go 1.21 のリリース以降、Go バージョンのサポートは次のように更新されます。
N
のリリース直後に、最新の Go マイナー バージョンに対応するためにビルドとテストの手順が更新されます。N
がリリースされるとすぐに、Go バージョンN-2
のサポートが削除され、バージョンN-1
が最低限必要なバージョンになります。 Jaeger プロジェクトでは、現在は非推奨になっている Jaeger のネイティブ SDK ではなく、OpenTelemetry SDK をインストルメンテーションに推奨しています。
「貢献」を参照してください。
「貢献」を参照してください。
すでに貢献してくれたすべての人々に感謝します!
メンテナになるためのルールは、GOVERNANCE 文書で定義されています。以下は、Jaeger プロジェクトの公式メンテナです。 @jaegertracing/jaeger-maintainers
使用して、問題/PR にタグを付けてください。
jaegertracing org の下の一部のリポジトリには追加のメンテナがいます。
私たちは、Jaeger プロジェクトに貢献してくれた元メンテナーに感謝しています。
イェーガーのメンテナーと貢献者は定期的にビデオ通話で集まっています。エンドユーザーを含め、どなたでもご参加いただけます。会議の詳細については、https://www.jaegertracing.io/get-in-touch/ を参照してください。
https://www.jaegertracing.io/docs/roadmap/ を参照してください。
質問、提案、バグ報告がありますか?次のチャネルを通じてプロジェクト コミュニティにアクセスしてください。
#jaeger
(初めて CNCF Slack に参加する必要があります)jaeger-tracing
メールグループ製品としてのイエガーは複数のコンポーネントで構成されています。私たちは、インストルメンテーション ライブラリのみを使用しているのか、完全なエンドツーエンドの Jaeger インストールを使用しているのか、運用環境で実行しているのか、開発の問題のトラブルシューティングに使用しているのかなど、さまざまなタイプのユーザーをサポートしたいと考えています。
現在、Jaeger を使用している組織の一部については、ADOPTERS.md を参照してください。あなたの組織をリストに追加したい場合は、調査の問題についてコメントしてください。
著作権 (c) イェーガー著者。 Apache 2.0 ライセンス。