4.4.2 評価対象メトリクスの選定
HMP-PCTOでは、オートスケール機能でのメトリクスの収集方法によって、評価対象として利用できるメトリクスが異なります。
(1) Metrics Serverでメトリクスを収集する場合
Metrics Serverでメトリクスを収集する場合に利用できるメトリクスを次に示します。なお、Podのリソースは、Pod内で動作しているコンテナすべてで利用しているリソースの合計値です。
-
PodのCPUリソース
HMP-PCTOのコンテナのCPUリソースだけに絞り込みたい場合は、「(2) Prometheusでメトリクスを収集する場合」のprocess_cpu_usageメトリクスの利用を検討してください。
-
Podのメモリリソース
Podのメモリリソースは、javaプロセスのガベージコレクションによって変動するため、オートスケールの評価対象としても安定しないおそれがあります。
(2) Prometheusでメトリクスを収集する場合
Prometheusでメトリクスを収集する場合に利用できるメトリクスは、「(3) 出力内容」を参照してください。利用できるメトリクスのうち、HMP-PCTOの評価対象メトリクスとして推奨するメトリクスを次の表に示します。
|
メトリクス名 |
メトリクスの説明 |
用途 |
対象のKubernetesアプリケーション |
クエリの例 |
|---|---|---|---|---|
|
process_cpu_usage |
Java VMプロセスのCPU使用率 |
HMP-PCTOのKubernetesアプリケーションのコンテナの最近のCPU利用率を評価対象メトリクスとしたい場合に利用します。 |
オートスケール機能の対象となるすべてのKubernetesアプリケーション |
SUM(process_cpu_usage{pod=~"orchestrator-.*"}) |
|
hmppcto_participant_transactions_inProcess_operations |
処理中のトランザクションブランチ数 |
Pod当たりのトランザクションの処理件数が一定値を超えると性能が低下するなどの理由で、Pod当たりのトランザクションの処理件数を一定の範囲内に収めたいケースで評価対象メトリクスとして利用します。※1 |
SQL-Participant |
SUM(hmppcto_participant_transactions_inProcess_operations{id=~"^sql-participant-.*", status=~"NONE|PREPARING|COMMIT_VOTE|ROLLBACK_VOTE|COMMITTING|ROLLING_BACK|READ_ONLY|COMMITTED|ROLLED_BACK|ROLLED_BACK_BY_RM"}) |
|
hmppcto_executor_active_threads |
アクティブにタスクを実行しているスレッドのおおよその数 |
過去のメトリクスデータから、実行中のスレッド数が大きくなった場合に性能低下が見られるような傾向があるとき、評価対象メトリクスとして利用します。 |
オートスケール機能の対象となるすべてのKubernetesアプリケーション※2 |
SUM(hmppcto_executor_active_threads{pod=~"sql-participant-.*"}) |
|
hmppcto_executor_queued_tasks |
実行待ちのタスクのおおよその数 |
負荷がスレッドの処理能力を超えてタスクがキューに滞留し、性能低下する傾向があるとき、評価対象メトリクスとして利用します。※3 |
SUM(hmppcto_executor_queued_tasks{pod=~"mediator-.*"}) |
- 注※1
-
評価対象メトリクスとして利用するには、トランザクションが処理中であることを示すステータスに絞り込む必要があります。トランザクションが処理中であることを示すステータスに絞り込むクエリの例は「クエリの例」列を参照してください。
- 注※2
-
Orchestratorの場合は、この項目の利用を推奨しません。SQL-ParticipantやMediatorの処理待ちの状態でもOrchestratorのこの項目の負荷が高くなり、適切なメトリクスの評価ができません。
- 注※3
-
負荷がスレッドの処理能力を超えていない場合は、実行待ちタスクにならないため、それを踏まえて閾値をチューニングしてください。