CNE Kubernetes Ready: 可観測性とテレメトリ
Kubernetes Readyデプロイメントでは、Prometheus互換のメトリクス、コンテナネイティブのログ、およびオプションのトレースが公開されます。 liferay-default Helm チャートは、Liferay JVM の起動の一部として JMX エクスポーターをインストールするため、外部の監視サイドカーは必要ありません。 既存のPrometheus、Grafana、OpenTelemetry、およびログ集約スタックを設定して、Podからデータを取り込むようにします。
メトリクス
このチャートには、Liferay JVM にアタッチされた jmx_prometheus_javaagent が含まれています。 このエージェントは、各ポッドから直接取得できる専用のメトリクスエンドポイント上でランタイムメトリクスを公開します。
追加のJMXエクスポーターやサイドカーは必要ありません。
メトリクスエンドポイントは http://<pod-ip>:12345/metrics です。 各ポッドは、環境変数 JMX_AGENT_PORT で設定されたコンテナポート 12345でエージェントを公開します。
このチャートは メトリクス ポートを liferay-default サービスに追加せず、Prometheus ポッド アノテーションも追加しません。 各ポッドのIPアドレスのポート 12345 でエンドポイントを直接スクレイピングします(下記 メトリクスエンドポイントのスクレイピング を参照)。 オートスケーリング(CPU 上の HPA、または Prometheus メトリックに対する KEDA)は、 architecture-sizing-and-support-model.md で個別に構成されます。
主要指標
以下の主要なランタイムメトリクスを監視してください。
- JVMメモリ使用量(
jvm_memory_bytes_used) - ガベージコレクションアクティビティ (
jvm_gc_*) - スレッド数 (
jvm_threads_current) - データベース接続プール (
hikari_active_connections、hikari_idle_connections) - Tomcatセッションアクティビティ(
tomcat_sessions_active_current) - 標準プロセスレベルメトリクス (
process_*)
メトリクスエンドポイントのスクレイピング
監視プラットフォームを統合するには、各 Liferay ポッドによって公開されている /metrics エンドポイントをスクレイピングします。
チャートではポート 12345 がサービスまたは標準のポッドアノテーションを介して公開されていないため、スクレイピングターゲットを明示的に構成する必要があります。 2つのパターンが有効です。
エンドポイントを確認する
スクレイピング対象を設定する前に、メトリクスが正しく流れていることを確認してください。
kubectl --namespace liferay port-forward pod/liferay-default-0 12345:12345
curl http://localhost:12345/metrics | head
ターミナルには Prometheus の説明行が表示されます (# HELP ...、 # タイプ ...(サンプル値)。
プロメテウスに基づく摂取
プラットフォームが Prometheus Operator または互換性のあるディストリビューションを使用している場合は、 PodMonitor を使用して、JMX エージェントのコンテナ ポートを直接スクレイピングします。
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: liferay
namespace: liferay
spec:
selector:
matchLabels:
app.kubernetes.io/name: liferay
podMetricsEndpoints:
- port: jmx-metrics
path: /metrics
interval: 30s
podTargetLabels:
- app.kubernetes.io/name
チャートのサービスにメトリクス ポートが含まれていないため、 PodMonitor が必要です。 ポート: jmx-metrics 参照では、チャートの customPorts 拡張ポイントを介してエージェントを公開する必要があります。 values.yaml に以下を追加してください。
customPorts:
- name: jmx-metrics
containerPort: 12345
protocol: TCP
通常の Prometheus インストールでは、ラベルによって Pod をターゲットにし、スクレイピング ポートをオーバーライドする kubernetes_sd_configs ジョブを使用して Liferay をスクレイピングできます。
- job_name: liferay
kubernetes_sd_configs:
- role: pod
namespaces:
names: [liferay]
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
action: keep
regex: liferay
- source_labels: [__meta_kubernetes_pod_ip]
target_label: __address__
replacement: $1:12345
OpenTelemetryベースのデータ取り込み
Kubernetesからデータをスクレイピングし、選択したバックエンドにエクスポートすることで、データ取り込みパターンが完了します。
ログ
Liferayはコンテナ内の標準出力ストリームとエラー ストリームにログを書き込みます。 Kubernetesは、コンテナ実行時からこれらのログを収集します。
Pod、ネームスペース、およびデプロイメントのメタデータは、これらのログを関連付けます。
分散トレーシング(オプション)
分散トレーシングは、イングレス、Liferay、データベース、検索エンジンなど、複数のシステムにわたるリクエストフローを追跡します。
健康シグナル
ポッドの準備状況、安定したリソース使用状況、および外部依存関係(データベース、検索エンジン、オブジェクトストレージなど)への接続の成功は、システムの健全性を示しています。