新しいツールでマイクロサービスのパフォーマンス分析が簡単に!
視覚分析ツールはマイクロサービスのパフォーマンス分析を強化するよ。
― 1 分で読む
目次
マイクロサービスのパフォーマンス分析は複雑な仕事だよ。マイクロサービスは小さくて独立したサービスで、リクエストを完了させるためによく呼び合うんだ。リクエストがシステムを通るたび、別のサーバーやコンテナにある他のサービスに何回も呼び出しがかかるかもしれない。こういうやり取りはパフォーマンスを理解するのを難しくする。
今のマイクロサービスを追跡・分析するツールは主にスイムレーンと呼ばれる視覚化を使っている。この視覚化は、システム内を移動する個別のリクエストを示していて、パフォーマンスを理解するのに役立つけど、多くのリクエストがあるシステム全体のパフォーマンス傾向を把握するのには限界がある。
この問題を解決するために、複数のリクエストのパフォーマンスを同時に分析する新しい視覚分析ツールを紹介するよ。このツールはインタラクティブな視覚化をいろいろ提供して、共通のリクエスト特性とそれが全体のパフォーマンスとどう関係しているかを強調する。
確立されたオープンソースのマイクロサービスシステムからのデータを使ってこのツールをテストしたところ、パフォーマンスに影響を与えるリモートコールの重要な時間差を特定するのに役立つことがわかった。また、リクエストの意味あるパターンやそれがマイクロサービスのパフォーマンスにどう関連しているかを明らかにするのにも役立つ。
マイクロサービスパフォーマンスの課題
マイクロサービスはソフトウェアの開発とデプロイの仕方を変えたよ。それぞれのサービスは独立して運営されていて、別々のチームがそのライフサイクルを管理している。このセットアップは、今日の市場で重要な利点である迅速な更新を可能にするけど、一貫したパフォーマンスを維持するのにはチャレンジもある。
一つの大きな問題は、これらのシステムの複雑さだね。リリース前のテストなどのパフォーマンス保証手法は、限られた時間とリソースのために実施が難しくなることがよくある。素早い更新を求められるプレッシャーから、チームは重要なパフォーマンスチェックを省略することが多い。
さらに、マイクロサービスのパフォーマンスはリアルタイムの使用パターンによって変わるから、問題が発生する前に予測するのが難しい。システムの頻繁な変更や予測不可能な負荷がパフォーマンスの低下を引き起こすこともある。
こうした課題のために、オブザーバビリティの概念が注目を集めるようになった。オブザーバビリティは、チームがログ、トレース、メトリクスを分析してシステムのパフォーマンスを完全に把握できるようにするんだ。分散トレースツールは、マイクロサービスシステムのオブザーバビリティを向上させるために広く使われている。これらのツールは、リクエストがシステムを通過するのを追跡して、パフォーマンス分析のための視覚的なサポートを提供する。
ただ、多くの現在の分散トレースツールは、全体のパフォーマンス分析に効果的でないと批判されていることもある。さまざまな分析のために異なるツールを切り替えなければならないことがよくあって、その切り替えが面倒で時間がかかるため、システムのパフォーマンスパターンを素早く理解するのが難しくなってしまう。
視覚分析ツールの紹介
この新しいツールは、マイクロサービスシステムのパフォーマンス分析をシンプルにすることに焦点を当てている。以前のアイデアを基にして、異なるリクエスト特性が全体のパフォーマンスとどう関係しているかを簡単に見る方法を提供する。
このツールには、2つの主要な視覚コンポーネントがある:ツリーとヒストグラム。ツリーはリクエストがさまざまなリモートプロシージャコール(RPC)を通って流れる様子を示していて、ヒストグラムはリクエストの応答時間の分布を表示するんだ。
ユーザーはこれらのコンポーネントとインタラクションして、特定の実行パスの重要な特徴とそれがパフォーマンスに与える影響を発見できる。
視覚コンポーネントの説明
ツリー視覚化
ツリーはリクエストに関与するワークフローの詳細なビューを提供するためにデザインされている。ツリーの各ノードはRPCコールを表し、エッジはリクエスト同士の関係を示す。
例えば、リクエストが一連のRPCを含む場合、ノードの間の接続に基づいてツリーに表示される。このツリー構造は複数のリクエストの集約ビューを可能にし、どのパスがよく使われているのか、またそれがパフォーマンスにどう関連しているのかを見るのを簡単にする。
調査する価値のあるRPCを強調するために、ツールは実行時間の変動性や呼び出し頻度を示すために色分けを使用する。変動性が高いパスは、全体の応答時間により大きな影響を与える可能性を示すかもしれない。
ヒストグラムコンポーネント
ヒストグラムは、エンドツーエンドの応答時間の標準的なプロットを表示して、ユーザーが全体のパフォーマンスを把握できるようにする。これにより、再発するパターンを示すモードなど、パフォーマンスパターンを視覚的に特定できる。
ユーザーはヒストグラムの範囲を選択して特定の応答時間に焦点を当てることができる。この選択はツリーコンポーネントを更新して、RPCの実行パスが選択された時間にどう関連しているかを示し、選択された範囲に基づく応答時間の不一致を強調する。
ツールとのユーザーインタラクション
このツールは、フォワード分析とバックワード分析の2種類の分析をサポートしている。
フォワード分析
フォワード分析では、ユーザーはツリー視覚化から始める。ノードを調べることで、実行時間や呼び出し頻度に大きな変動を示すRPCパスを特定できる。ユーザーはこれらのノードをクリックして、これらの属性が全体の応答時間にどう関連しているかを探ることができる。
ユーザーがRPCパスを選択すると、ツールはそのパスの実行時間の範囲を表示する棒グラフを生成する。この視覚化により、特定の実行時間の動作がエンドツーエンドのパフォーマンスとどのように相関しているかを見るのができて、潜在的なパフォーマンスの問題を明らかにするのに役立つ。
バックワード分析
バックワード分析では、ユーザーはヒストグラムから始める。彼らは分析したいエンドツーエンドの応答時間の特定の範囲を選択し、その後ツリーが実行時間と頻度の不一致を示すように更新される。これらの属性において他のノードと比較して顕著な違いを示すノードが強調される。
強調されたノードをクリックすると、選択されたリクエストの実行時間を他のリクエストと比較するヒストグラムが表示される。このアプローチにより、異なる実行動作が特定の応答時間にどのように関連しているかを簡単に見ることができる。
ツールのアーキテクチャと実装
ツールの基盤となるアーキテクチャは、いくつかのコンポーネントで構成されている。
- トレースコレクター:これはマイクロサービスシステムからトレースを収集し、トレースストレージに保存する。
- 前処理ステップ:このコンポーネントは効率を高め、収集したデータを整理してツールでの分析のために準備する。
- ダッシュボードアプリ:ダッシュボードは整理されたデータに接続し、ユーザーのために視覚化を生成する。
このツールは一般的なトレースツールからフォーマットされたデータをサポートし、視覚化をレンダリングするためにウェブ技術を使用して構築されている。
ツールの評価
ツールがどれだけ効果的かを理解するために、複雑なマイクロサービスシステムから派生したデータセットを使って徹底的な評価を行った。私たちの目標は、このツールがRPC属性と全体の応答時間の関係を効果的に明らかにできるかを見ることだった。
データセットの生成
データセットは、予約サービスを提供する有名なオープンソースのマイクロサービスシステムから得た。異なるパフォーマンス特性を生み出すシナリオを模倣した、各々異なるデータセットを生成した。
データセットを作成するために、2つの主要なアプローチを使用した:
- パフォーマンス問題の注入:特定のRPCに人工的な遅延を導入することで、これらの変更が応答時間にどう影響するか観察した。
- 負荷の変更:異なるユーザーインタラクションのタイプをシミュレーションするために負荷を変え、パフォーマンスの変動を引き起こした。
手動分析
2人の著者がツールを使ってデータセットを手動で分析した。彼らはリクエスト属性と応答時間の関係を理解するのにどれだけ役立ったかに注目した。両方の著者はマイクロサービスシステムに関する前提知識を持っていたが、データセットに加えた具体的な変更には気づいていなかった。
全体的に、このツールはほとんどの場合、リクエストを分析するのを簡単にしてくれた。いくつかのデータセットにわたって、実行時間と応答時間の関係を効果的に強調していた。
評価の結果
評価を通じて、このツールがマイクロサービスのパフォーマンスに関する貴重な洞察を提供したことがわかった。ほとんどのテストデータセットで、影響を受けたRPCとそれらが全体の応答時間にどのように相関しているかを簡単に特定できた。
しかし、いくつかのデータセットでは、分析がより難しくなり、ツールとのインタラクションがより多く必要だった。
結論
この視覚分析ツールは、マイクロサービスのパフォーマンスを分析するための有望な解決策を提供する。リクエスト属性と全体の応答時間の関係を識別し理解するプロセスを簡素化し、さまざまな分析タイプをサポートする。
今後の改善は、ツールの効率を高め、より大規模なマイクロサービスシステムからの実データでの検証に焦点を当てる予定だ。目指すのは、このツールがマイクロサービスのパフォーマンスモニタリングと分析能力を向上させたいチームにとっての定番オプションとなることだよ。
タイトル: VAMP: Visual Analytics for Microservices Performance
概要: Analysis of microservices' performance is a considerably challenging task due to the multifaceted nature of these systems. Each request to a microservices system might raise several Remote Procedure Calls (RPCs) to services deployed on different servers and/or containers. Existing distributed tracing tools leverage swimlane visualizations as the primary means to support performance analysis of microservices. These visualizations are particularly effective when it is needed to investigate individual end-to-end requests' performance behaviors. Still, they are substantially limited when more complex analyses are required, as when understanding the system-wide performance trends is needed. To overcome this limitation, we introduce vamp, an innovative visual analytics tool that enables, at once, the performance analysis of multiple end-to-end requests of a microservices system. Vamp was built around the idea that having a wide set of interactive visualizations facilitates the analyses of the recurrent characteristics of requests and their relation w.r.t. the end-to-end performance behavior. Through an evaluation of 33 datasets from an established open-source microservices system, we demonstrate how vamp aids in identifying RPC execution time deviations with significant impact on end-to-end performance. Additionally, we show that vamp can support in pinpointing meaningful structural patterns in end-to-end requests and their relationship with microservice performance behaviors.
著者: Luca Traini, Jessica Leone, Giovanni Stilo, Antinisca Di Marco
最終更新: 2024-04-22 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2404.14273
ソースPDF: https://arxiv.org/pdf/2404.14273
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。