9.4.3 メトリクス
(1) 出力先
HMP-PCTOの各コンポーネントは、Micrometerを使用してメトリクスデータを取得し、Prometheus向けのExporterを使って、テキストのデータをPrometheusサーバに送ります。
また、Jaeger-collectorから出力されるメトリクスについてもPrometheusサーバで収集します。
(2) 出力形式
(a) PrometheusサーバのWeb UIによる参照
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のメトリクス取得項目を次に示します。
なお、ユーザアプリケーション(業務処理)部分は、ユーザがメトリクスを取得する必要があります。
|
メトリクス取得項目 |
説明 |
|---|---|
|
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 |
実行待ちのタスクのおおよその数です。 |
|
メトリクス取得項目 |
説明 |
対象コンポーネント |
|---|---|---|
|
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 |
|
メトリクス取得項目 |
説明 |
出力するコンポーネント |
|---|---|---|
|
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にメトリクスを公開するためのエンドポイント