Hitachi

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


11.5.3 メトリクス

〈この項の構成〉

(1) 出力先

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

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

(2) 出力形式

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

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

図11‒32 Prometheusサーバの標準のWeb UI

[図データ]

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

(b) Grafanaによる参照

Prometheusで収集されたメトリクスは、メトリクス閲覧アプリケーションであるGrafanaで確認できます。Microsoft Azure環境でメトリクスを収集した場合は、マネージドGrafanaを使用してメトリクスを確認してください。Grafanaの詳細については、公式ドキュメントを参照してください。

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

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

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

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

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

注※2

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

図11‒33 Kibanaによるメトリクス参照例

[図データ]

(3) 出力内容

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

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

表11‒41 システムの利用状況、および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世代領域のメモリプールサイズの増加量です。

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

メトリクス取得項目

説明

対象コンポーネント

hmppcto_executor_active_threads

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

Orchestrator

SQL-Participant

TCC-Participant

TP1-Bridge

Mediator

hmppcto_executor_queued_tasks

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

Orchestrator

SQL-Participant

TCC-Participant

TP1-Bridge

Mediator

grpc_server_processing_duration_seconds_max

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

Mediator

grpc_client_processing_duration_seconds_max

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

Orchestrator

SQL-Participant

TCC-Participant

TP1-Bridge

hmppcto_participant_transactions_inProcess_operations

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

SQL-Participant

TCC-Participant

TP1-Bridge

hmppcto_participant_transactions_terminated_operations

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

SQL-Participant

TCC-Participant

TP1-Bridge

hmppcto_participant_transaction_duration_seconds

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

SQL-Participant

TCC-Participant

TP1-Bridge

hmppcto_asynctask_duration_seconds

HMP-PCTO内部で実施される非同期送信処理時間の統計情報

Mediator

hmppcto_asynctask_operations_total

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

Mediator

hmppcto_asynctask_queued_operations

キュー内にあり、まだ実行されていないHMP-PCTO内部で実施される非同期送信処理の数

Mediator

hmppcto_mediator_consensus_duration_seconds

ConsensusLogの処理時間

Mediator

hmppcto_participant_eads_duration_seconds

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

SQL-Participant

TCC-Participant

TP1-Bridge

tomcat_threads_busy_threads

Spring Boot組み込みTomcatで、ビジー状態のスレッド数

TP1-Bridge

表11‒43 Jaeger-collectorが出力するメトリクス

メトリクス取得項目

説明

出力するコンポーネント

jaeger_collector_queue_length

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

Jaeger-collector

jaeger_collector_spans_dropped_total

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

Jaeger-collector

表11‒44 Prometheusが出力するメトリクス

メトリクス取得項目

説明

出力するコンポーネント

up

スクレイプに成功したときは「1」、失敗したときは「0」を示すメトリックです。HMP-PCTOのKubernetesアプリケーションの稼働監視に利用できます。

Prometheus server

scrape_duration_seconds

スクレイプに掛かった時間を示すメトリックです。通常の運用では使用しません。

スクレイプが想定した時間内に終わらなかった場合の調査などで使用します。

Prometheus server

scrape_samples_post_metric_relabeling

メトリックのリラベル後に残ったサンプル数を示すメトリックです。通常の運用では使用しません。

環境構築時のデータ数の確認で使用します。

Prometheus server

scrape_samples_scraped

HMP-PCTOのKubernetesアプリケーションがスクレイプで返却したサンプル数を示すメトリックです。通常の運用では使用しません。

環境構築時のデータ数の確認で使用します。

Prometheus server

scrape_series_added

新しく生成した系列のおおよその数を示すメトリックです。通常の運用では使用しません。

Prometheus server

(4) 参照方法

(a) PrometheusのWeb UI参照方法

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

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

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

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

(b) エンドポイント

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

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

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

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

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

Orchestrator

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

表11‒45 Orchestratorのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/orchestrator/metrics

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

Entity-ServiceまたはEntity-Module

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

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

項番

エンドポイント名

役割

1

/hmppcto/entity/metrics

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

SQL-Participant

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

表11‒47 SQL-Participantのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/sqlparticipant/metrics

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

TCC-Participant

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

表11‒48 TCC-Participantのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/tccparticipant/metrics

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

Mediator

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

表11‒49 Mediatorのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/mediator/metrics

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

TP1-Bridge

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

表11‒50 TP1-Bridgeのエンドポイント

項番

エンドポイント名

役割

1

/hmppcto/tp1bridge/metrics

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