Deployment Support


バックエンド解決は、(アイデンティティを介した)バックエンドのノードまたは階層への関連付けです。

Problem

フローマップを処理する従来の方法では、exit コールを実行するときに、アップストリーム層がダウンストリーム層に直接接続することが示されます。サービスプロキシがそれらの間に存在する場合、コントローラはサービスプロキシをバックエンドとして識別できません。

バックエンドコンポーネントを正確に識別しないと、システムにより、サービスプロキシがルーティングする可能性があるターゲットダウンストリーム層のいずれかとの単一のバックエンドの関連付けが定期的に変更されます。これにより、誤ったメトリックを持つ不正なフローマップが作成されます。

Solution

サービスプロキシはバックエンドとしてマークされ、フローマップに表示されます。このサービスプロキシにより、アップストリーム層からダウンストリーム層への要求が正確に表示されます。メトリックは正確に報告され、階層間で集計されて表示されます。

次の図では、192.168.1.9 バックエンドがサービスプロキシとして識別され、tier11 からのリクエストがこのサービスプロキシを介して tier21 と tier22 にルーティングされることが示されています。また、tier21 と tier22 にメトリック(コール/秒)が正確に分散されます(値はそれぞれ 8 と 7)。これは、集計されると 15 になり、アップストリームのメトリックと等しくなります。

サービスプロキシがバックエンドとしてマークされると、再解決は停止します。

Python エージェントのバックエンド解決の仕組み

バックエンド解決は、コントローラで backend.detect.loadbalancer.enabled フラグと backend.detect.urimisconfig.enabled フラグが true に設定されている場合に機能します。フラグが設定されると、バックエンドが階層間でのみスイッチングする場合、バックエンドはサービスプロキシとしてマークされます。すべてのアップストリーム エージェントは、バックエンドがサービスプロキシとしてマークされていることを通知されます。ただし、サービスプロキシ機能をサポートするエージェントのバージョンのみが、コントローラへのメトリックの報告を開始します。

コントローラがバックエンド解決のためにサービスプロキシを識別すると、Python エージェントはサービスプロキシが検出されたという情報を取得し、エージェントは適切なメトリックをコントローラに送信します。これが設計どおりに機能するには、アップストリーム エージェントのバージョンもサービスプロキシ機能をサポートしている必要があります。エージェントがアップグレードされていない場合、サービスプロキシは検出されず、このバックエンドは通常のバックエンドに戻り、コントローラは以前の動作に戻ります。

そのため、互換性のあるエージェントをバックエンド解決で使用することをお勧めします。

サービスプロキシの有効化

コントローラでサービスプロキシの検出を有効にするには、backend.detect.loadbalancer.enabled および backend.detect.urimisconfig.enabled フラグを設定します。詳細については、「サービスプロキシの概要」を参照してください。