Cloud Native Experience Kubernetes Ready
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

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_connectionshikari_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、データベース、検索エンジンなど、複数のシステムにわたるリクエストフローを追跡します。

健康シグナル

ポッドの準備状況、安定したリソース使用状況、および外部依存関係(データベース、検索エンジン、オブジェクトストレージなど)への接続の成功は、システムの健全性を示しています。