|
|
WebOTX Manual V11.1 (第6版) 目次を表示 |
本節では、Kubernetes、及びKubernetesの商用ディストリビューションを利用した環境下においての一般的な監視観点・方法、WebOTXを利用した場合の監視観点について説明します。
WebOTXの監視観点は下表のようなものが挙げられます。
オンプレミス環境において、各情報は、基本的にWebOTX Application Serverがインストールされたマシン上で取得します。
| 大分類 | 小分類 | 取得方法 | 監視目的 |
|---|---|---|---|
| ログ監視 | WebOTXの各種ログ | テキストエディタ等で内容を閲覧します。 | WebOTX Application Serverの稼働状態を把握します。 |
| アプリケーション固有のログ | アプリケーション自体の稼働状態を把握します。 | ||
| GCログ | WebOTX Application ServerのJavaプロセスのGCを把握し、Javaのヒープメモリ使用状況を測定します。 | ||
| マシンのリソース監視 | CPU | タスクマネージャやtopコマンド等を使用し、確認します。 | Kubernetesノードの負荷状態を監視します。 |
| メモリ |
「2-1. WebOTXとしての監視観点」ではオンプレミス環境においての情報を説明していますが、コンテナ環境の運用では通常、ユーザーがコンテナ内で直接操作することは想定していません。
本項では、Kubernetes環境においてのログ監視、Kubernetesノードリソース監視を実現するための製品、また、それらの利用方針について説明します。
Kubernetes環境下での各情報の取得方法は、下表のようになります。
| 大分類 | 小分類 | 取得方法 |
|---|---|---|
| ログ監視 | WebOTXの各種ログ | ELKスタックを使用し、ログを蓄積、閲覧します。 |
| アプリケーション固有のログ | ||
| GCログ | WebOTX Operatorのメトリクス公開機能とPrometheusを使用し、取得します。 | |
| マシンのリソース監視 | CPU | Prometheusを使用し、各情報を蓄積、閲覧します。 |
| メモリ |
WebOTX外のサービスへログを集約し、解析する方針について説明します。
ログの集約、解析についての基本的な考え方は、以下をご参照ください。
[スタートアップガイド > チュートリアル MicroService編 > ログの集約]
[スタートアップガイド > チュートリアル MicroService編 > ログの解析]
ここに示す方針では、下表のコンテナを使用します。
| サービス名 | 機能説明 |
|---|---|
| Logstash | "同一Pod内の特定のテキストファイルの更新を監視し、その内容を自身の標準出力や外部に出力できるコンテナです。WebOTX Operatorを使用し、WebOTX Application Serverと同一のPodに含めることができます。 |
| Elasticsearch | オープンソース型の分散型データベースのコンテナです。ここではLogstashの出力の格納先として使用します。 |
| Kibana | Elasticsearchに格納されたデータを探索、可視化、分析できるコンテナです。ブラウザ経由でログの検索、同一ログのカウントやグラフ化を行うことができます。 |
Memo
ELKスタックとは、上記のサービスの頭文字を取ったサービス群を指します。
以下のようにして、ELKスタックを利用した監視を実現します。

Memo
WebOTXとしての提供範囲は、図中の「WebOTXのPod」です。
本方針で使用する監視製品のセットアップ手順について記載します。
WebOTXのPodは、WebOTX Operatorを使用してインストールしているものとします。
ECK Operatorを使用し、Elasticsearchをインストールします。
ECK Operatorの詳細、及び最新の手順は、Elastic公式ドキュメントをご参照ください。
https://www.elastic.co/guide/en/cloud-on-k8s/current/index.html
https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html
以下のコマンドで、ECK Operatorのカスタムリソース定義ファイルの適用、ECK Operatorの配備を行います。
ECK Operatorは、"elastic-system"というnamespace配備されます。
kubectl (oc) apply -f https://download.elastic.co/downloads/eck/1.5.0/all-in-one.yaml
以下のコマンドで、ECK Operatorが配備されたことを確認します。
kubectl (oc) get po -n elastic-system
NAME READY STATUS RESTARTS AGE
elastic-operator-0 1/1 Running 0 60s
以下のカスタムリソースファイル(elasticsearch.yaml)を作成します。
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: quickstart
spec:
version: 7.12.1
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
xpack.security.enabled: false
podTemplate:
spec:
containers:
- name: elasticsearch
env:
- name: READINESS_PROBE_PROTOCOL
value: "http"
Memo
本項で作成するElasticsearch clusterは、Logstashと連携するため、セキュリティ機能を無効化しています。
以下のコマンドで、カスタムリソースファイルを適用します。
kubectl (oc) apply -n elastic-system -f elasticsearch.yaml
以下のコマンドで、Elasticsearch clusterのPod (quickstart-es-default) が配備されていることを確認します。
kubectl (oc) get po -n elastic-system
NAME READY STATUS RESTARTS AGE
elastic-operator-0 1/1 Running 0 5m
quickstart-es-default-0 1/1 Running 0 60s
以下のコマンドで、Elasticsearchコンテナの9200ポートを公開するサービス名を取得します。
以下の例では、"quickstart-es-http"となります。
kubectl (oc) get svc -n elastic-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elastic-webhook-server ClusterIP 10.100.144.45 <none> 443/TCP 5m
quickstart-es-default ClusterIP None <none> 9200/TCP 60s
quickstart-es-http ClusterIP 10.100.49.2 <none> 9200/TCP 60s
quickstart-es-transport ClusterIP None <none> 9300/TCP 60s
AWS上にKubernetesクラスタを構築している場合、AmazonElasticsearch Serviceを利用することもできます。
構築手順は、下記の公式ドキュメントをご参照ください。
WebOTX Application Serverのカスタムリソース定義を編集し、Elasticsearchの情報を記入します。
- spec.deployment.logstash.elasticsearch: host: <Elasticsearchのホスト名> port: <Elasticsearchのサービスのポート>
[監視製品のセットアップ - Elasticsearch]に従ってElasticsearchをインストールした場合、
Elasticsearchのホスト名: quickstart-es-http.elastic-system.svc.cluster.local
Elasticsearchのサービスのポート: 9200
となります。
また、以下のようにWebOTX ASのカスタムリソースファイルを編集することで、
Logstashがアプリケーション固有のログファイルを検知することができます(複数指定可能)。
- spec.webotx application:
logs:
- <コンテナ内のログファイル@のフルパス>
- <コンテナ内のログファイルAのフルパス>
詳細は、[構築・運用 > コンテナ型仮想化 > Operator > アプリケーションログの収集]をご参照ください。
WebOTX Application Serverのカスタムリソースを適用します。
kubectl (oc) apply -f <カスタムリソースyamlファイル> -n <WebOTXのnamespace>
ECK Operatorを使用し、Kibanaをインストールします。
以下のカスタムリソースファイル(kibana.yaml)を作成します。
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: quickstart
spec:
version: 7.12.1
count: 1
config:
elasticsearch.hosts:
- http://quickstart-es-http.elastic-system.svc.cluster.local:9200
Memo
本項で作成するKibanaは、セキュリティ機能を無効化したElasticsearchと連携するため、ElasticsearchのURLを直接指定しています。
以下のコマンドで、Kibanaのyamlファイルを適用します。
kubectl (oc) apply -n elastic-system -f kibana.yaml
以下のコマンドで、KibanaのPod (quickstart-kb-xxxxx-xxxxx)が起動していることを確認します。
kubectl (oc) get po -n elastic-system
NAME READY STATUS RESTARTS AGE
elastic-operator-0 1/1 Running 0 9m
quickstart-es-default-0 1/1 Running 0 5m
quickstart-kb-54fb494fbd-nv8ms 1/1 Running 0 60s
ブラウザからアクセスする為、以下のコマンドでKibanaのURLを公開します。
以下のコマンドで、LoadBalancerタイプのサービスを作成し、KibanaのURLを公開します。
kubectl expose svc -n elastic-system quickstart-kb-http --target-port 5601 --port 443 --type LoadBalancer --name kibana-url
以下のコマンドで、KibanaのURLを取得します。
kubectl get svc kibana-url -n elastic-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE quickstart-kb-lb LoadBalancer 10.100.114.185 abcdefghijklmn-123456789.ap-northeast-1.elb.amazonaws.com 443:31700/TCP 125m
URLは、"https://<EXTERNAL-IP値>:443"となります。
以下のコマンドで、KibanaのURLを公開します。
oc create route passthrough -n elastic-system --service=quickstart-kb-http --port 5601
以下のコマンドで、KibanaのURLを取得します。
oc get route quickstart-kb-http -n elastic-system
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
quickstart-kb-http quickstart-kb-http-elastic-system.apps.example.com quickstart-kb-http 5601 passthrough None
URLは、"https://<HOST/PORT値>:443"となります。
KibanaのURLへアクセスできることを確認します。
Kibanaによるログ監視手法を記載します。
以下の手順で、WebOTXログのインデックスパターンをKibanaに登録します。
以下の手順で、KibanaからWebOTXのログを取得できることを確認します。
message:"* domain1 is alive *"

以下のようにして、ログの絞り込みを行うことができます。
[Search]テキストボックスに以下のように記入することで、
ログレベルによる絞り込みを行うことができます。
level.keyword: "WARN" or "ERROR"
例では、ログレベル"WARN" もしくは "ERROR"のログを表示しています。
以下のようにして、ログの出力日時で絞り込むこともできます。
検索結果画面の上部には、検索したログの出力回数が棒グラフで表示されています。
その他、Kibanaの基本的な利用方法については、公式ドキュメントをご参照ください。
https://www.elastic.co/guide/jp/kibana/current/getting-started.html
使用するサービス一覧と、その説明を記載します。
Kuberenetesから様々な情報を収集・蓄積するデータベースです。蓄積した情報は、PromQLというクエリを使用し引き出すことができます。
MicroProfile Metrics機能を使用し、WebOTX Application Serverに配備したアプリケーションから任意のデータを蓄積することもできます。
データベースに保存されたログやデータの可視化ツールです。リアルタイムにクエリを発行し、ブラウザ経由でデータを確認することができます。
以下のような順で、Kubernetesノードリソース監視を実現します。

Prometheusを配備するためのNamespaceを作成します。
kubectl create namespace prometheus
helmを使用し、インストールします。
helm install prometheus stable/prometheus --namespace prometheus --set alertmanager.persistentVolume.storageClass="gp2",server.persistentVolume.storageClass="gp2"
Prometheusへブラウザからアクセスできるよう、URLを公開します。
kubectl expose deployment prometheus-server -n prometheus --name prometheus --port 80 --target-port 9090 --type LoadBalancer
作成したURLを下記コマンドで確認し、ブラウザ経由でアクセスできることを確認します。
kubectl get svc -n prometheus prometheus
OpneShift環境では、デフォルトでインストールされているPrometheusを使用します。
PrometheusのURLを下記コマンドで確認し、ブラウザ経由でアクセスできることを確認します。
oc get route -n openshift-monitoring prometheus-k8s
PrometheusがWebOTXのメトリクスを取得できるように設定します。
ConfigMapを編集し、prometheus.ymlのscrape_configsにWebOTXのメトリクスURLを指定します。
scrape_configs:
- job_name: webotx-as
static_configs:
- targets:
- <WebOTX-AS Podのhttpsポート公開Service名>.<WebOTX-AS PodのあるNamespace>.svc.cluster.local:<ポート>
- job_name: webotx-operator
static_configs:
- targets:
- webotx-operator-metrics.webotx.svc.cluster.local:8383
詳細は、[構築・運用 > コンテナ型仮想化 > Operator > Promethues との連携]をご参照ください。
Amazon EKSへは、Helmを使用し、インストールします。
kubectl create ns grafana
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: prometheus
type: prometheus
url: http://prometheus-server.prometheus.svc.cluster.local
access: proxy
isDefault: true
helm install grafana grafana/grafana \ --namespace grafana \ --set persistence.storageClassName="gp2" \ --set persistence.enabled=true \ --set adminPassword='EKS!sAWSome' \ --values grafana.yml \ --set service.type=LoadBalancer
以下のコマンドで編集エディタを開きます。
kubectl edit cm grafana -n grafana
エディタで開いたConfigMapの下記階層に定義を追加してください。
data->grafana.ini:
[auth.anonymous]
enabled = true
org_name = Main Org.
org_role = Viewer
kubectl delete po <grafanaのPod名> -n grafana
Red Hat OpenShift Container Platformでは、PROMETHEUSクラスターモニタリング機能として、Grafanaが標準提供されていますが、既定のダッシュボードしか利用できません。
本項では、標準とは別のネームスペースにGrafanaをインストールする手順について説明します。
Red Hat OpenShift Container Platformが提供する、クラスターモニタリングの機能を利用できること。
詳細については、以下のOpenShift公式マニュアルをご参照ください。
https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.7/html/monitoring/
oc create ns grafana
Name:grafana
Installed Namespace:grafana
Name:grafana Anonymous:true
Binding Type:Cluster-wide Role Binding(ClusterRoleBinding) Role Binding - Name:cluster-monitoring-view Role - Role Name:cluster-monitoring-view Subject:Service Account Subject - Subject Namespace:grafana Subject - Subject Name:grafana-serviceaccount
Name:prometheus-grafanadatasource Name:prometheus-grafanadatasource.yaml
caution
画面では、同じ"Name"の設定項目が表示されますが、後者はyamlファイル名を指定します。
エディタで開かれたGrafanaDataSourceの下記階層の定義を変更してください。
<Grafanaサービスアカウントのトークン>には、前の手順で取得したものを指定します
spec->datasources:
- access: proxy
editable: true
isDefault: true
jsonData:
timeInterval: 5s
name: Prometheus
type: prometheus
url: 'http://prometheus-service:9090'
version: 1
spec->datasources:
- access: proxy
editable: true
isDefault: true
jsonData:
httpHeaderName1: 'Authorization'
timeInterval: 5s
tlsSkipVerify: true
name: prometheus
secureJsonData:
httpHeaderValue1: 'Bearer <Grafanaサービスアカウントのトークン>'
type: prometheus
url: 'https://prometheus-k8s.openshift-monitoring.svc.cluster.local:9091'
個別のGrafanaダッシュボード作成については、Grafana公式ドキュメントをご参照ください。
下記コマンドでPrometheusのURLを取得し、ブラウザ経由でアクセスします。
kubectl get svc -n prometheus
oc get route -n openshift-monitoring
Prometheusのページより、PromQLを実行します。
監視で使用する各PromQLの例を以下に記載します。
Caution
Kubernetesやその他情報収集サービスのバージョンにより、使用できるクエリが変わることがあります。
| 情報種別 | クエリ例 | 説明 |
|---|---|---|
| CPU使用率 | sum by(cpu) (rate(container_cpu_usage_seconds_total{image!="",container!="POD",pod="<任意のPod名>"}[2m] ) ) * 100 | 任意のPod内コンテナのCPU使用量の内、[コンテナイメージが無いもの, PODそのものでないもの]を除外した2分辺りの増加量の平均の合計(使用率)を、CPUコア毎に算出します。 |
| メモリ使用率 | sum (container_memory_usage_bytes{pod="<任意のPod名>",container!="", container!="POD"}) / sum(node_memory_MemTotal_bytes{kubernetes_node=~"<Podが配備されているノード名>"}) * 100 | 任意のPod内コンテナのメモリ使用率の内、[コンテナ名が無いもの, PODそのものでないもの]を合計し、それをPodが配備されているノードのメモリ最大量で割って算出します。 |
| 情報種別 | クエリ例 | 説明 |
|---|---|---|
| CPU使用率 | sum by(cpu) (rate(container_cpu_usage_seconds_total{image!="",container_name!="POD",pod_name="<任意のPod名>"}[2m] ) ) * 100 | 任意のPod内コンテナのCPU使用量の内、[コンテナイメージが無いもの, PODそのものでないもの]を除外した2分辺りの増加量の平均の合計(使用率)を、CPUコア毎に算出します。 |
| メモリ使用率 | sum (container_memory_usage_bytes{pod_name="<任意のPod名>",container_name!="", container_name!="POD"}) / sum(node_memory_MemTotal_bytes{instance=~"<Podが配備されているノードのIPアドレス>:.*"}) * 100 | 任意のPod内コンテナのメモリ使用率の内、[コンテナ名が無いもの, PODそのものでないもの]を合計し、それをPodが配備されているノードのメモリ最大量で割って算出します。 |
| 情報種別 | クエリ例 | 説明 |
|---|---|---|
| CPU使用率 | sum by(cpu) (rate(container_cpu_usage_seconds_total{image!="",container!="POD",pod="<任意のPod名>"}[2m] ) ) * 100 | 任意のPod内コンテナのCPU使用量の内、[コンテナイメージが無いもの, PODそのものでないもの]を除外した2分辺りの増加量の平均の合計(使用率)を、CPUコア毎に算出します。 |
| メモリ使用率 | sum (container_memory_usage_bytes{pod="<任意のPod名>",container!="", container!="POD"}) / sum(node_memory_MemTotal_bytes{instance=~"<Podが配備されているノード名>"}) * 100 | 任意のPod内コンテナのメモリ使用率の内、[コンテナ名が無いもの, PODそのものでないもの]を合計し、それをPodが配備されているノードのメモリ最大量で割って算出します。 |
| 情報種別 | クエリ例 | 説明 |
|---|---|---|
| CPU使用率 | sum by (cpu) (rate(node_cpu_seconds_total{mode!="<任意のノード名>", mode!="<任意のノード名>", kubernetes_node=~"<任意のノード名>"}[2m])) * 100 | 任意のノードのCPU使用量の内、稼働モードが"idle", "steal"でないものの2分あたりの平均増加量をCPUコア毎に算出します。 |
| メモリ使用率 | ((node_memory_MemTotal_bytes{kubernetes_node=~"<任意のノード名>"} - node_memory_MemFree_bytes{kubernetes_node=~"<任意のノード名>"} - node_memory_Cached_bytes{kubernetes_node=~"<任意のノード名>"} - node_memory_Buffers_bytes{kubernetes_node=~"<任意のノード名>"}) / node_memory_MemTotal_bytes{kubernetes_node=~"<任意のノード名>"}) * 100 | 任意のノードのメモリ最大値から[空き容量, キャッシュ, バッファ]を引いたものを、再度最大値で割って算出します。 |
| ディスク使用率 | sum(rate(node_disk_io_time_seconds_total{kubernetes_node=~"<任意のノード名>"}[2m])) by (device) *100 | 任意のノードのディスク使用時間の2分辺りの平均増加量の合計(=使用率)を、ディスク毎に算出します。 |
| ネットワーク受信量 | sum(rate(container_network_receive_bytes_total{instance=~"<任意のノード名>"}[2m])) by (interface) | 任意のノードのネットワーク受信 / 送信量の2分辺りの増加量の合計(使用量)を、ネットワークインターフェース毎に算出します。 |
| ネットワーク送信量 | sum(rate(container_network_transmit_bytes_total{instance=~"<任意のノード名>"}[2m])) by (interface) |
| 情報種別 | クエリ例 | 説明 |
|---|---|---|
| CPU使用率 | sum by (cpu) (rate (node_cpu_seconds_total{mode!="idle", mode!="steal", instance=~"<任意のノードのIPアドレス>"}[2m])) * 100 | 任意のノードのCPU使用量の内、稼働モードが"idle", "steal"でないものの2分あたりの平均増加量をCPUコア毎に算出します。 |
| メモリ使用率 | ((node_memory_MemTotal_bytes{instance=~"<任意のノードのIPアドレス>.*"} - node_memory_MemFree_bytes{instance=~"<任意のノードのIPアドレス>:.*"} - node_memory_Cached_bytes{instance=~"<任意のノードのIPアドレス>:.*"} - node_memory_Buffers_bytes{instance=~"<任意のノードのIPアドレス>:.*"}) / node_memory_MemTotal_bytes{instance=~"<任意のノードのIPアドレス>:.*"}) * 100 | 任意のノードのメモリ最大値から[空き容量, キャッシュ, バッファ]を引いたものを、再度最大値で割って算出します。 |
| ディスク使用率 | sum(rate(node_disk_io_time_seconds_total{instance=~"<任意のノードのIPアドレス>:.*"}[2m])) by (device) *100 | 任意のノードのディスク使用時間の2分辺りの平均増加量の合計(=使用率)を、ディスク毎に算出します。 |
| ネットワーク使用量 | sum(rate(container_network_receive_bytes_total{instance=~"<任意のノードのIPアドレス>:.*"}[2m])) by (interface) | 任意のノードのネットワーク受信 / 送信量の2分辺りの増加量の合計(使用量)を、ネットワークインターフェース毎に算出します。 |
| ネットワーク送信量 | sum(rate(container_network_transmit_bytes_total{instance=~"<任意のノードのIPアドレス>:.*"}[2m])) by (interface) |
| 情報種別 | クエリ例 | 説明 |
|---|---|---|
| CPU使用率 | sum by (cpu) (rate(node_cpu_seconds_total{mode!="idle", mode!="steal", instance=~"<任意のノード名>"}[2m])) * 100 | 任意のノードのCPU使用量の内、稼働モードが"idle", "steal"でないものの2分あたりの平均増加量をCPUコア毎に算出します。 |
| メモリ使用率 | ((node_memory_MemTotal_bytes{instance=~"<任意のノード名>"} - node_memory_MemFree_bytes{instance=~"<任意のノード名>"} - node_memory_Cached_bytes{instance=~"<任意のノード名>"} - node_memory_Buffers_bytes{instance=~"<任意のノード名>"}) / node_memory_MemTotal_bytes{instance=~"<任意のノード名>"}) * 100 | 任意のノードのメモリ最大値から[空き容量, キャッシュ, バッファ]を引いたものを、再度最大値で割って算出します。 |
| ディスク使用率 | sum(rate(node_disk_io_time_seconds_total{instance=~"<任意のノード名>"}[2m])) by (device) *100 | 任意のノードのディスク使用時間の2分辺りの平均増加量の合計(=使用率)を、ディスク毎に算出します。 |
| ネットワーク使用量 | sum(rate(container_network_receive_bytes_total{node=~"<任意のノード名>"}[2m])) by (interface) | 任意のノードのネットワーク受信 / 送信量の2分辺りの増加量の合計(使用量)を、ネットワークインターフェース毎に算出します。 |
| ネットワーク送信量 | sum(rate(container_network_transmit_bytes_total{node=~"<任意のノード名>"}[2m])) by (interface) |
WebOTX Application ServerのMicroProfile Metrics機能が出力する情報(メトリクス)をPrometheusで取得する手順について、説明します。
MicroProfile Metricsを使用したアプリケーション作成については、[アプリケーション開発ガイド > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile Metrics]をご参照ください。
WebOTX Application ServerのMicroProfile Metrics機能が出力するメトリクス一覧を、下記URLで取得することができます。
https://<WebOTX Application ServerのURL>:<WebOTX Application Serverのポート>/metrics
# HELP base:classloader_total_loaded_class_count Display the total number of classed that have been loaded since the JVM has started execution. # TYPE base:classloader_total_loaded_class_count counter base:classloader_total_loaded_class_count 13555.0 # HELP base:cpu_system_load_average # TYPE base:cpu_system_load_average gauge base:cpu_system_load_average 4.2 # HELP base:thread_count Display the current number of live threads including both daemon and non-daemon threads. # TYPE base:thread_count counter base:thread_count 67.0 # HELP base:gc_mark_sweep_compact_count Display the total number of collections that have occured. This attribute display -1 if the collection count is undefined for this collector. # TYPE base:gc_mark_sweep_compact_count counter base:gc_mark_sweep_compact_count 4.0 # HELP base:classloader_current_loaded_class_count Display the number of classes that are currently loaded in the JVM. # TYPE base:classloader_current_loaded_class_count counter base:classloader_current_loaded_class_count 13556.0 # HELP base:gc_copy_count Display the total number of collections that have occured. This attribute display -1 if the collection count is undefined for this collector. # TYPE base:gc_copy_count counter base:gc_copy_count 126.0 # HELP base:jvm_uptime_seconds Display the start time of the JVM. # TYPE base:jvm_uptime_seconds gauge base:jvm_uptime_seconds 84.705 # HELP base:gc_copy_time_seconds Display the approximate occumulated collection elapsed time. # TYPE base:gc_copy_time_seconds counter base:gc_copy_time_seconds 1.32 # HELP base:memory_committed_heap_bytes Display the amount of memory that is committed for the JVM to use. # TYPE base:memory_committed_heap_bytes gauge base:memory_committed_heap_bytes 2.00704E8 # HELP base:thread_max_count Display the peak live thread count since the JVM started or peak was reset. This includes daemon and non-daemon threads. # TYPE base:thread_max_count counter base:thread_max_count 68.0 # HELP base:cpu_available_processors Di # TYPE base:cpu_available_processors gauge base:cpu_available_processors 1.0 # HELP base:thread_daemon_count Display the current number of live daemon threads. # TYPE base:thread_daemon_count counter base:thread_daemon_count 64.0 # HELP base:gc_mark_sweep_compact_time_seconds Display the approximate occumulated collection elapsed time. # TYPE base:gc_mark_sweep_compact_time_seconds counter base:gc_mark_sweep_compact_time_seconds 0.702 # HELP base:classloader_total_unloaded_class_count Display the total number of classed that have been unloaded since the JVM has started execution. # TYPE base:classloader_total_unloaded_class_count counter base:classloader_total_unloaded_class_count 0.0 # HELP base:memory_max_heap_bytes Display the maximum amount of heap memory. This attribute displays -1 if the maximum heap memory size is undefined. # TYPE base:memory_max_heap_bytes gauge base:memory_max_heap_bytes 8.73791488E8 # HELP base:memory_used_heap_bytes Display the amount of used heap memory. # TYPE base:memory_used_heap_bytes gauge base:memory_used_heap_bytes 1.29386776E8 # HELP vendor:machine_disk_free_disk_space_bytes Represents the amount of free disk space. (Unit: Bytes) # TYPE vendor:machine_disk_free_disk_space_bytes gauge vendor:machine_disk_free_disk_space_bytes 8.130185216E10 # HELP vendor:machine_disk_usable_free_disk_space_bytes Represents the amount of free disk space available. (Unit: Bytes) # TYPE vendor:machine_disk_usable_free_disk_space_bytes gauge vendor:machine_disk_usable_free_disk_space_bytes 8.130185216E10 # HELP vendor:license_code Represents a registered product code. # TYPE vendor:license_code gauge vendor:license_code 0.0 # HELP vendor:license_count Represents the number of licenses registered. # TYPE vendor:license_count counter vendor:license_count 1.0 # HELP vendor:license_available_cores Represents the number of CPU cores that Java virtual machine can use. # TYPE vendor:license_available_cores gauge vendor:license_available_cores 1.0 # HELP vendor:machine_disk_disk_used_rate_ratio Represents the utilization of a disk. (Unit: %) # TYPE vendor:machine_disk_disk_used_rate_ratio gauge vendor:machine_disk_disk_used_rate_ratio 5.0 # HELP vendor:machine_disk_total_disk_space_bytes Represents the total capacity of the disk. (Unit: Bytes) # TYPE vendor:machine_disk_total_disk_space_bytes gauge vendor:machine_disk_total_disk_space_bytes 8.5886742528E10 # HELP vendor:machine_os_available_processors The number of processors available to the Java virtual machine. This method is equivalent to the Runtime.availableProcessors() method. This value may change during a particular invocation of the virtual machine. # TYPE vendor:machine_os_available_processors counter vendor:machine_os_available_processors 1.0 # HELP vendor:java_vm_memory_all_application_server_physical_mem_size_bytes Represents the amount of physical memory used by the application server. (Unit: Kilobytes) # TYPE vendor:java_vm_memory_all_application_server_physical_mem_size_bytes gauge vendor:java_vm_memory_all_application_server_physical_mem_size_bytes 3.615468E9 # HELP vendor:java_vm_memory_all_application_server_virtual_mem_size_bytes Represents the amount of virtual memory used by the application server. (Unit: Kilobytes) # TYPE vendor:java_vm_memory_all_application_server_virtual_mem_size_bytes gauge vendor:java_vm_memory_all_application_server_virtual_mem_size_bytes 0.0
WebOTX Application Server フルプロファイル版コンテナの、Eclipse MicroProfile Metricsによるメトリクス用エンドポイントの有効化については、以下をご参照ください。
[構築・運用 > コンテナ型仮想化 > WebOTX Application Serverのコンテナイメージ > 1.1.3. 追加構成]
また、WebOTX Operatorを使用したメータリング機能については、以下をご参照ください。
[構築・運用 > コンテナ型仮想化 > Operator > 2.1.5. メータリング機能の利用]
| 取得情報 | PromQL | 実行結果例 |
|---|---|---|
| スレッドカウンタ | base:thread_count | 75.0 (threads) |
| JVMのメモリヒープ最大値 | base:memory_max_heap_bytes | 1.761738752E9 (bytes) |
| JVMのメモリヒープ使用量 | base]memory_used_heap_bytes | 1.30548032E8 (bytes) |