Hitachi

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


9.4.3 メトリクス

〈この項の構成〉

(1) 出力先

HMP-PCTOの各コンポーネントは、Micrometerを使用してメトリクスデータを取得し、Prometheus向けのExporterを使って、テキストのデータをPrometheusサーバに送ります。

また、Jaeger-collectorから出力されるメトリクスについてもPrometheusサーバで収集します。

(2) 出力形式

(a) PrometheusサーバのWeb UIによる参照

Prometheusサーバの標準のWeb UIにアクセスすると、次の画面が表示されます。

図9‒22 Prometheusサーバの標準のWeb UI

[図データ]

虫眼鏡マークの右にあるテキストフィールドにPromQLの構文でクエリを入力し、Executeボタンを押すことでクエリの結果のメトリクス情報が画面に出力されます。

(b) Kibanaなどの可視化ツールによる参照

Elasticsearchに保存されたメトリクスはKibanaなどの可視化ツールで確認できます。詳細はKibanaなどの可視化ツールのリファレンスを参照してください。

Kibanaを例として、HMP-PCTOのメトリクスを抽出するためのフィールドを指定する例を次に示します。

prometheus.metrics.<メトリクス取得項目※1> : *※2
注※1

メトリクス取得項目に関しては、「(3) 出力内容」の項目を参照してください。

注※2

数値に関して特に条件がない場合は、": *"を指定することで、該当するメトリクスを取得した項目の絞り込みができます。

図9‒23 Kibanaによるメトリクス参照例

[図データ]

(3) 出力内容

メトリクスデータとして出力する、HMP-PCTOのメトリクス取得項目を次に示します。

なお、ユーザアプリケーション(業務処理)部分は、ユーザがメトリクスを取得する必要があります。

表9‒35 システムの利用状況、およびJava VMの利用状況

メトリクス取得項目

説明

system_cpu_usage

システム(Kubernetesの場合、コンテナ環境)のCPU使用率です。

process_cpu_usage

Java VMプロセスのCPU使用率です。

jvm_memory_max_bytes

Java VMで使用できるメモリの最大量です。

jvm_memory_used_bytes

Java VMの使用メモリ量です。

process_files_max_files

ファイル記述子の最大数です。

process_files_open_files

開いているファイル記述子の数です。

jvm_gc_memory_allocated_bytes_total

あるGC実施後から、次のGCの間での、JavaヒープNew世代領域のメモリプールサイズの増加量です。

jvm_gc_memory_promoted_bytes_total

あるGC実施前とGC実施後での、JavaヒープOld世代領域のメモリプールサイズの増加量です。

executor_active_threads

アクティブにタスクを実行しているユーザのスレッドのおおよその数です。

executor_queued_tasks

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

表9‒36 HMP-PCTOの性能を評価するための指標

メトリクス取得項目

説明

対象コンポーネント

grpc_server_processing_duration_seconds

gRPCサーバが呼び出し完了に掛かった時間

すべて

grpc_client_processing_duration_seconds

gRPCクライアントが通信完了するまでに掛かった合計時間

すべて

hmppcto_participant_transactions_inProcess_operations

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

SQL-Participant

TCC-Participant

hmppcto_participant_transactions_terminated_operations

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

SQL-Participant

TCC-Participant

hmppcto_participant_transaction_duration_seconds_*

完了したトランザクションブランチの処理時間の統計情報

SQL-Participant

TCC-Participant

hmppcto_asynctask_duration_seconds_*

HMP-PCTO内部で実施される非同期送信処理の所要時間

すべて

hmppcto_asynctask_operations_total

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

すべて

hmppcto_asynctask_queued_operations

キュー内にあり、まだ実行されていない非同期タスクの数

すべて

hmppcto_mediator_consensus_duration_*

ConsensusLogアクセス所要時間

Mediator

hmppcto_participant_eads_duration_*

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

SQL-Participant

TCC-Participant

表9‒37 Jaeger-collectorが出力するメトリクス

メトリクス取得項目

説明

出力するコンポーネント

jaeger_collector_queue_length

Jaeger-collectorの内部キュー内に存在するアイテム数

Jaeger-collector

jaeger_collector_spans_dropped_total

Jaeger-collectorの内部キューに存在し、Elasticsearchに送信されることなく、上書きされてしまったSpanの数

Jaeger-collector

(4) 参照方法

(a) Prometheus UIの参照方法

Prometheusサーバに収集されたメトリクスデータは、Prometheusサーバが公開しているWeb UIに、次のURLへアクセスすることで参照できます。

http://A...A:B...B

A...A:Prometheus UIのDNS名またはIPアドレス

B...B:Prometheus UIのポート番号

(b) エンドポイント

HMP-PCTOのメトリクスデータと、Mediatorでの処理中のトランザクションブランチ数、処理が完了したトランザクションブランチ数を参照可能とするために、各コンポーネントでエンドポイントを次の形式で用意しています。

http://A...A/B...B

A...A:各コンポーネントのPodのDNS名

B...B:メトリクスのエンドポイント

次にHMP-PCTOの各コンポーネントにおけるエンドポイントの詳細を示します。

Orchestrator

Orchestratorのエンドポイントを次に示します。

表9‒38 Orchestratorのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/orchestrator/metrics

Prometheusにメトリクスを公開するためのエンドポイント

Entity-ServiceまたはEntity-Module

Entity-ServiceまたはEntity-Moduleのエンドポイントを次に示します。

表9‒39 Entity-ServiceまたはEntity-Moduleのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/entity/metrics

Prometheusにメトリクスを公開するためのエンドポイント

SQL-Participant

SQL-Participantのエンドポイントを次に示します。

表9‒40 SQL-Participantのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/sqlparticipant/metrics

Prometheusにメトリクスを公開するためのエンドポイント

TCC-Participant

TCC-Participantのエンドポイントを次に示します。

表9‒41 TCC-Participantのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/tccparticipant/metrics

Prometheusにメトリクスを公開するためのエンドポイント

Mediator

Mediatorのエンドポイントを次に示します。

表9‒42 Mediatorのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/mediator/metrics

Prometheusにメトリクスを公開するためのエンドポイント