Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


4.4.2 評価対象メトリクスの選定

HMP-PCTOでは、オートスケールでのメトリクスの収集方法によって、評価対象として利用できるメトリクスが異なります。

〈この項の構成〉

(1) Metrics Serverでメトリクスを収集する場合

Metrics Serverでメトリクスを収集する場合に利用できるメトリクスを次に示します。なお、Podのリソースは、Pod内で動作しているコンテナすべてで利用しているリソースの合計値です。

(2) Prometheusでメトリクスを収集する場合

Prometheusでメトリクスを収集する場合に利用できるメトリクスは、「(3) 出力内容」を参照してください。利用できるメトリクスのうち、HMP-PCTOの評価対象メトリクスとして推奨するメトリクスを次の表に示します。

表4‒7 HMP-PCTOの評価対象メトリクスとして推奨するメトリクス

メトリクス名

メトリクスの説明

用途

対象のKubernetesアプリケーション

クエリの例

process_cpu_usage

Java VMプロセスのCPU使用率

HMP-PCTOのKubernetesアプリケーションのコンテナの最近のCPU利用率を評価対象メトリクスとしたい場合に利用します。

  • Orchestrator-Service

  • Relay-Service

  • Entity-Service(SQL)

  • Orchestrator-Service(SQL)

  • Alternate-Service

  • Alternate-Service(SQL)

  • Mediator

SUM(process_cpu_usage{label_app_kubernetes_io_name="orchestrator"})※1

hmppcto_participant_transactions_inProcess_operations

処理中のトランザクションブランチ数

Pod当たりのトランザクションの処理件数が一定値を超えると性能が低下するなどの理由で、Pod当たりのトランザクションの処理件数を一定の範囲内に収めたいケースで評価対象メトリクスとして利用します。2

  • Entity-Service(SQL)

  • Orchestrator-Service(SQL)

  • Alternate-Service(SQL)

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

アクティブにタスクを実行しているスレッドのおおよその数

過去のメトリクスデータから、実行中のスレッド数が大きくなった場合に性能低下が見られるような傾向があるとき、評価対象メトリクスとして利用します。

  • Orchestrator-Service

  • Entity-Service(SQL)

  • Orchestrator-Service(SQL)

  • Alternate-Service

  • Alternate-Service(SQL)

  • Mediator

SUM(hmppcto_executor_active_threads{label_app_kubernetes_io_name="sql-participant"})※1

hmppcto_executor_queued_tasks

実行待ちのタスクのおおよその数

負荷がスレッドの処理能力を超えてタスクがキューに滞留し、性能低下する傾向があるとき、評価対象メトリクスとして利用します。3

SUM(hmppcto_executor_queued_tasks{label_app_kubernetes_io_name="mediator"})※1

注※1

label_app_kubernetes_io_nameラベルは、Kubernetesマニフェストの.spec.template.metadata.labelsのapp.kubernetes.io/nameに指定した値です。label_app_kubernetes_io_nameラベルを表示するための設定方法については、「3.7.14 PrometheusのKubernetesマニフェスト作成」を参照してください。

注※2

評価対象メトリクスとして利用するには、トランザクションが処理中であることを示すステータスに絞り込む必要があります。トランザクションが処理中であることを示すステータスに絞り込むクエリの例は「クエリの例」列を参照してください。

注※3

負荷がスレッドの処理能力を超えていない場合は、実行待ちタスクにならないため、それを踏まえて閾値をチューニングしてください。