継続的パフォーマンステスト結果の分析

継続的パフォーマンステストから生成された結果に対してカスタム分析を実行するためのユーティリティ。

継続的パフォーマンステスト

ROSA Daily Scheduled Run workflow は、継続的なパフォーマンステストを保証する自動化されたプロセスであり、平日に毎日実行されるようにスケジュールされています。

このワークフローは、マルチAZクラスターをデプロイし、外部Infinispanや永続セッションなどの機能をアクティブにすることによって開始されます。アクティブ-アクティブ構成でのシステムのパフォーマンスと安定性を検証するために、一連の機能テストを実行します。

これらのテストに続いて、スケーリングベンチマークは、さまざまな負荷を処理するシステムの能力を評価し、実際の条件下でのパフォーマンスに関する重要な洞察を提供します。その後、結果はベンチマークのGitHubリポジトリのresult-data branchに永続化され、さらなる分析のために使用されます。

この自動化されたスケジュールにより、一貫性のあるテスト、潜在的な問題の早期検出、およびKeycloakのパフォーマンスの継続的な改善が保証されます。

結果を分析する

上記の継続的パフォーマンステストから生成された結果を分析するためのPythonスクリプト perfInsights.py があります。

必要なPythonライブラリのインストール

pip3 install -U -r requirements.txt

また、以下のコマンドを使用して、すべての要件が満たされているかどうかを確認できます。

python3 -m pip check

使用法

以下のコマンドを実行して、result-data branch から結果にアクセスし、分析をローカルディレクトリに保存します。

python3 perfInsights.py <result_json_dir_path_on_github> <output_dir_path>
Example:
python3 perfInsights.py rosa_scalability/2024/07/23 results

結果を可視化する

上記の手順で生成されたデータを可視化するために、generate_timeseries_plots.py スクリプトを使用できます。

使用法

以下のコマンドを実行して、results ローカルディレクトリから結果を可視化します。

python3 generate_timeseries_plots.py <results_dir_path>
Example:
python3 generate_timeseries_plots.py results
Saved combined plot for memoryUsageTest to results/memoryUsageTest_combined_timeseries_plot.png
Saved combined plot for cpuUsageForLoginsTest to results/cpuUsageForLoginsTest_combined_timeseries_plot.png
Saved combined plot for cpuUsageForCredentialGrantsTest to results/cpuUsageForCredentialGrantsTest_combined_timeseries_plot.png