11.5.3 メトリクス
(1) 出力先
HMP-PCTOの各コンポーネントは、Micrometerを使用してメトリクスデータを取得し、Prometheus向けのExporterを使って、テキストのデータをPrometheusサーバに送ります。
また、Jaeger-collectorから出力されるメトリクスについてもPrometheusサーバで収集します。
(2) 出力形式
(a) PrometheusサーバのWeb UIによる参照
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のメトリクス取得項目を次に示します。
なお、ユーザアプリケーション(業務処理)部分は、ユーザがメトリクスを取得する必要があります。
|
メトリクス取得項目 |
説明 |
|---|---|
|
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世代領域のメモリプールサイズの増加量です。 |
|
メトリクス取得項目 |
説明 |
対象コンポーネント |
|---|---|---|
|
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 |
|
メトリクス取得項目 |
説明 |
出力するコンポーネント |
|---|---|---|
|
jaeger_collector_queue_length |
Jaeger-collectorの内部キュー内に存在するアイテム数 |
Jaeger-collector |
|
jaeger_collector_spans_dropped_total |
Jaeger-collectorの内部キューに存在し、Elasticsearchに送信されることなく、上書きされてしまったSpanの数 |
Jaeger-collector |
|
メトリクス取得項目 |
説明 |
出力するコンポーネント |
|---|---|---|
|
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にメトリクスを公開するためのエンドポイント