カスタムバックエンドメトリクス
gRPCライブラリのメカニズムで、ユーザーはgRPCサーバーにカスタムメトリクスを挿入し、gRPCクライアントで消費してカスタムロードバランシングアルゴリズムを作成できます。
カスタムバックエンドメトリクス
概要
バックエンドの負荷(例:CPU)のローカルまたはグローバルな知識を考慮することにより、単純なロードバランシングの決定を行うことができます。より高度なロードバランシングの決定は、アプリケーション固有の知識(例:キューの深さ)を使用するか、複数のメトリクスを組み合わせることによって可能です。
カスタムバックエンドメトリクス機能は、ユーザーがLBポリシーでメトリクスフィードバックを実装できるようにするAPIを公開します。
ユースケース
この機能は、主に、カスタムLBポリシーを使用してトラフィックをバックエンドサーバーのリストによりインテリジェントにルーティングし、ルーティングパフォーマンスを向上させる高度なユースケース向けです(例:加重ラウンドロビンLBポリシー)。
gRPCは、従来、ユーザーが独自のロードバランシングポリシーをプラグインできるようにしています。 ガイドを参照してください。 xDSユーザーの場合、カスタムロードバランサー を構成して、カスタムLBポリシーを選択できます。
メトリクスレポート
Open Request Cost Aggregation(ORCA)は、バックエンドメトリクス情報を伝達するためのオープンスタンダードです。 gRPCはORCAサービスとメトリクス標準を使用し、2つのメトリクスレポートメカニズムをサポートしています。
クエリごとのメトリクスレポート:バックエンドサーバーは、対応するRPCが終了すると、挿入されたカスタムメトリクスをトレーリングメタデータに添付します。これは通常、単項呼び出しのような短いRPCに役立ちます。
帯域外メトリクスレポート:バックエンドサーバーは、CPUやメモリ使用率などのメトリクスデータをクライアントに定期的にプッシュします。これは、単項呼び出し、ストリーミング呼び出しでの長いRPC、RPCがないなど、あらゆる状況に役立ちます。ただし、帯域外メトリクスレポートは、クエリコストメトリクスを送信しません。メトリクスの送信頻度はユーザーが設定可能です。この構成は、カスタムロードバランシングポリシーにあります。
この図は、ユーザーがバックエンドメトリクスフィードバックを実装する独自のLBポリシーを作成するアーキテクチャを示しています。
実装
詳細については、gRPC 提案A51を参照してください。
言語サポート
言語 | 例 |
---|---|
Java | Javaの例 |
Go | Goの例 |
C++ | 近日公開予定の例 |