Posted at

Envoy: 統計


tldr

勉強がてらにEnvoyのドキュメントを邦訳してみました。ベースはGoogle Translateで、ところどころ不自然な箇所を直しています。

原文としたのEnvoyのドキュメントはこちらのディレクトリ以下にあります(ライセンス:Apache License 2.0, NOTICE)。


統計

Envoyの主な目的の1つは、ネットワークをわかりやすくすることです。 Envoyはそれがどのように設定されているかに応じて多数の統計を出します。一般に、統計は3つのカテゴリに分類されます。


  • ダウンストリーム:ダウンストリーム統計は、着信接続/要求に関連しています。これらはリスナー、HTTP接続マネージャ、TCPプロキシフィルタなどによって発行されます。

  • アップストリーム:アップストリーム統計は発信接続/要求に関連しています。それらは、接続プール、ルーターフィルター、TCPプロキシーフィルターなどによって発行されます。

  • サーバー:サーバー統計は、Envoyサーバーインスタンスがどのように機能しているかを示します。サーバーの稼働時間や割り当てられたメモリの量などの統計は、ここで分類されます。

単一のプロキシシナリオでは通常、ダウンストリーム統計とアップストリーム統計の両方が使用されます。 2つのタイプはその特定のネットワークホップの詳細図を得るのに使用することができます。メッシュ全体の統計情報から、各ホップおよびネットワーク全体の健全性に関する非常に詳細な情報が得られます。発行された統計は、操作ガイドに詳細に文書化されています。

v2 API以降、Envoyにはカスタムのプラガブルシンクをサポートする機能があります。 Envoyには、いくつかの標準的なシンク実装が含まれています。一部のシンクは、タグ/ディメンションを使用した統計の発行もサポートしています。

Envoy内およびドキュメント全体で、統計は標準的な文字列表現によって識別されます。これらの文字列の動的部分は取り除かれてタグになります。ユーザーはタグ指定子設定を介してこの動作を設定できます。

Envoyは統計として3種類の値を出力します。


  • Counters:増加するだけで減少することのない符号なし整数。たとえば、リクエスト総数。

  • ゲージ:増減する符号なし整数。たとえば、現在アクティブな要求です。

  • ヒストグラム:値のストリームの一部である符号なし整数。その後、コレクターによって集約され、最終的に要約されたパーセンタイル値が得られます。たとえば、アップストリーム要求時間。

内部的には、カウンターとゲージはバッチ処理され、定期的にフラッシュされてパフォーマンスが向上します。ヒストグラムは受け取ったとおりに書き込まれます。注:以前はタイマーと呼ばれていたものが、ヒストグラムになりました。2つの表現の唯一の違いは単位です。

v2 APIリファレンス