0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Envoy: 異常値検出

Posted at

tldr

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

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

異常値検出

異常値の検出と排除は、アップストリームクラスタ内のいくつかのホストが他のホストとは異なるパフォーマンスを示しているかどうかを動的に判断し、それらを正常な負荷分散セットから削除するプロセスです。パフォーマンスは、連続した失敗、一時的な成功率、一時的な待ち時間など、さまざまな軸に沿っている可能性があります。異常値の検出は、受動的なヘルスチェックの一種です。 Envoyは積極的な健康診断もサポートしています。パッシブヘルスチェックとアクティブヘルスチェックは、一緒にまたは個別に有効にでき、アップストリームヘルスチェックソリューション全体の基盤を形成します。

排出アルゴリズム

異常値検出のタイプに応じて、排出はインラインで(たとえば連続5xxの場合)または指定された間隔で(たとえば定期的な成功率の場合)実行されます。排出アルゴリズムは次のように機能します。

  • ホストは異常値と判断されます。
  • ホストが削除されていない場合、Envoyはすぐにホストを削除します。それ以外の場合は、排出されたホストの数が許可されたしきい値(outlier_detection.max_ejection_percent設定で指定)を下回っていることを確認します。排出されたホストの数がしきい値を超えると、そのホストは排出されません。
  • ホストは数ミリ秒の間排出されます。排出とは、ロードバランサがパニックに陥っている場合を除き、ホストが異常とマークされ、ロードバランシング中に使用されないことを意味します。ミリ秒数は、outlier_detection.base_ejection_time_ms値にホストが排出された回数を掛けたものです。これが原因で、ホストが失敗し続けると、ホストはどんどん排出されます。
  • 排出されたホストは、排出時間が経過した後で自動的に稼働状態に戻ります。一般に、異常値の検出は、包括的なヘルスチェックソリューションのためのアクティブヘルスチェックと一緒に使用されます。

検出タイプ

Envoyは、以下の異常値検出タイプをサポートしています。

連続5xx

上流のホストが5xxの連続した数を返すなら、それは排出されます。この場合、5xxは実際の5xx応答コード、またはHTTPルーターがアップストリームに代わって1を返すイベント(リセット、接続失敗など)を意味することに注意してください。排出に必要な連続5xxの数は、outlier_detection.consecutive_5xx値によって制御されます。

連続ゲートウェイ障害

上流のホストが連続した「ゲートウェイエラー」(502、503、または504のステータスコード)を連続して返した場合、それは排出されます。これには、HTTPルーターがアップストリームの代わりにこれらのステータスコードの1つを返す原因となるイベント(リセット、接続失敗など)が含まれることに注意してください。取り出しに必要な連続ゲートウェイ障害の数は、outlier_detection.consecutive_gateway_failure値によって制御されます。

成功率

成功率ベースの異常値排除は、クラスタ内のすべてのホストからの成功率データを集計します。次に、一定の間隔で、統計的な異常値の検出に基づいてホストを除外します。集約間隔中の要求量がoutlier_detection.success_rate_request_volume値より小さい場合、成功率の異常値排出はホストに対して計算されません。さらに、間隔内の最小要求要求量を持つホストの数がoutlier_detection.success_rate_minimum_hosts値より少ない場合、クラスターの検出は実行されません。

排出イベントログ

外れ値排出イベントのログは、オプションでEnvoyによって生成することができます。グローバル統計では、どのホストが排除されているのか、またその理由について十分な情報が提供されないため、これは日常業務で非常に役立ちます。ログは、プロトタイプベースのOutlierDetectionEventメッセージのダンプとして構造化されています。排出イベントロギングは、Cluster Managerの異常値検出設定で設定されます。

構成の参照

  • クラスタマネージャのグローバル設定
  • クラスタ構成ごと
  • 実行時設定
  • 統計の参照
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?