Hitachi

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


9.3.1 概要

HMP-PCTOが動作するシステムでサービスのレスポンス遅延が発生したときに、パフォーマンスの傾向を調査するため、また、HMP-PCTOの性能評価を行うため、システムのパフォーマンスの指標となるメトリクスを取得します。

〈この項の構成〉

(1) メトリクスの評価対象

メトリクスの評価対象を次の表に示します。システム(Kubernetesの場合、コンテナ環境)の利用状況、Java VMの利用状況、およびHMP-PCTOの性能を評価するための指標となる数値を取得することで、HMP-PCTOが動作しているシステムのパフォーマンスの傾向を調査できます。

表9‒24 メトリクスの評価対象

項番

評価対象

説明

1

システムの利用状況

Kubernetesなどのコンテナ環境における性能

<例>

CPU使用率

2

Java VMの利用状況

Javaプロセス固有の性能

<例>

  • Java Heap

  • GC

3

HMP-PCTOの性能を評価するための指標

gRPC通信の性能

HMP-PCTOの各機能間のgRPC通信の性能

<例>

gRPC通信の処理時間

4

送信処理の性能

HMP-PCTO内部で実施される非同期送信処理の性能

<例>

  • 実行回数・時間

  • 未実行の(キューイングされている)数

5

機能固有の稼働統計情報

HMP-PCTOのコンポーネント(Mediatorなど)で固有に取得する稼働統計情報

<例>

  • Mediatorの例:ProposalLog、ConsesnusLogの状態ごとの件数

  • Participantの例:トランザクションブランチ数・処理時間

  • Jaeger-collectorの例:受信したSpan数、内部キューに登録されたデータ数

上記の評価対象ごとに取得する項目を次に示します。項目の詳細については、「(3) 出力内容」を参照してください。

各コンポーネントで「表9‒24 メトリクスの評価対象」の項番1〜4の情報を取得します。

項番5「機能固有の稼働統計情報」については、機能ごとに次の表のパフォーマンスを評価します。

表9‒25 機能固有の稼働統計情報の評価対象

項番

コンポーネント

評価対象

1

Orchestrator、Entity-Service、Entity-Module

なし。

2

Mediator

ConsensusLogアクセス所要時間

3

SQL-Participant

TCC-Participant

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

  • 完了したトランザクションブランチ数

  • 完了したトランザクションブランチの処理時間

  • EADS APIの所要時間(トライアル版では評価できません)

4

Jaeger-collector

  • Jaeger-collectorの内部キュー内のSpan数

  • Jaeger-collectorが受信したSpan数

上記で示したメトリクスの評価対象以外にも、次の表に示すExporterなどを用いてメトリクスを取得することを推奨します。Prometheusによって収集することで、HMP-PCTO各コンポーネントやKubernetesクラスタのパフォーマンス監視や保守を行うための情報を取得できます。

表9‒26 取得を推奨するメトリクスを出力するExporter

項番

Exporter/コンポーネント

概要

1

Node-Exporter

各Kubernetesノード上で実行し、各マシンのCPU,メモリの使用量などのマシンレベルのメトリクスを出力します。

2

kube-state-metrics

Kubernetes APIより、クラスタ上のリソース情報を収集し、メトリクスとして出力を行います。

3

cAdvisor

cgroupについてのメトリクスを収集するExporter。Kubernetes上で稼働するコンテナのパフォーマンスに関する情報を出力します。

(2) メトリクスの取得手段

HMP-PCTOでは、各コンポ—ネントでMicrometerのライブラリを使用してメトリクスの情報を取得します。メトリクスデータを収集するサーバPrometheus(Prometheus-Server)は、HMP-PCTOがMicrometerで取得したメトリクスデータを収集します。HMP-PCTOでは、送信先であるPrometheusに対応したExporterをMicrometerで実装することでPrometheusにメトリクスデータを送信できます。次に示す図はSQL-Participantを使用する場合です。TCC-Participantを使用する場合、Entity-ServiceをEntity-Moduleと読み替えてください。

図9‒18 HMP-PCTO メトリクスの構成

[図データ]

評価対象ごとの取得手段を次の表に示します。

表9‒27 メトリクスの取得手段

項番

評価対象

取得手段

1

システムの利用状況

Micrometerが標準で用意するライブラリでPrometheus-Serverに送信するメトリクスデータを生成します。

2

Java VMの利用状況

Micrometerが標準で用意するライブラリでPrometheus-Serverに送信するメトリクスデータを生成します。

3

HMP-PCTOの性能を評価するための指標

gRPC通信の性能

Micrometerが標準で用意するライブラリでPrometheus-Serverに送信するメトリクスデータを生成します。

4

送信処理の性能

HMP-PCTO内部で実施される非同期送信処理に関する項目について、Micrometerを使用して独自に作成し、この取得項目についてPrometheus-serverに送信するメトリクスデータを生成します。

5

機能固有の稼働統計情報

  • HMP-PCTOが各コンポーネント固有の稼働統計情報について、Micrometerを使用して独自に作成し、この取得項目についてPrometheus-serverに送信するメトリクスデータを生成します。

  • Jaeger-collectorは、Jaeger-collectorの機能によってメトリクス情報を生成します。

重要

メトリクスデータの取得条件

Micrometerのライブラリによって取得されるメトリクスデータには、取得条件を満たした場合だけ記録されるため、Prometheus-UIで閲覧できないことがあります。

メトリクスデータの取得条件については、Micrometerのライブラリのドキュメントを参照してください。

Prometheus-Server自体は永続化の手段を持たないため、さらに永続化を目的として外部に送信を行います。次の送信先があります。

Prometheus-Serverが収集したメトリクスデータを閲覧するには、Prometheus-UIを使用します。詳細については、「9.4.3 メトリクス」を参照してください。