メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.jitera.ai/llms.txt

Use this file to discover all available pages before exploring further.

Jitera Helmチャートには、Kubernetesクラスター内に直接デプロイされるフルオブザーバビリティスタックが含まれています。monitoring.enabledを有効にするだけですべてのコアコンポーネントがデプロイされます。個々のサブコンポーネントは独立して有効・無効を切り替えることができます。

コンポーネント

monitoring.enabled: trueを設定すると、以下のコンポーネントがデプロイされます:
コンポーネント用途
Prometheusメトリクス収集とアラート
Grafanaダッシュボードと可視化
Lokiログ集約
Promtailログ収集エージェント(DaemonSet)
Tempo分散トレーシングバックエンド
OpenTelemetry Collectorトレース・メトリクス・ログの統合パイプライン
Blackbox Exporter全サービスのHTTP・TCPヘルスプローブ
Kube State MetricsKubernetesオブジェクトメトリクス
Node Exporterホストレベルのシステムメトリクス

モニタリングスタックの有効化

クラスタ内モニタリングを有効にするには、以下をHelm valuesに追加します。以下の例は最小限の必須設定を示しており、その他の値はデフォルトが使用されます。
monitoring:
  enabled: true

  grafana:
    adminPassword: <GRAFANA_ADMIN_PASSWORD>  # 必須 — デフォルトから変更してください
adminPassword は Grafana の初回起動時のみ反映されます。 Grafana サブチャートは Pod が初めて起動するときに、永続化された SQLite DB(/var/lib/grafana/grafana.db、5 GiB の PVC)に管理者パスワードを書き込みます。以降は、monitoring.grafana.adminPassword を変更して helm upgrade を実行しても、env var と Kubernetes Secret は更新されますが Grafana は無視します — 既存の admin ユーザーは古いパスワードのままです。パスワードをローテーションする方法(ダッシュボードとデータソースは保持されます):
kubectl -n jitera exec -it jitera-grafana-0 -c grafana -- \
  grafana-cli admin reset-admin-password '<new-password>'
代替手段 — Grafana の状態を破棄(DB に保存されているカスタムダッシュボード、ユーザー、フォルダ、データソースは失われます。プロビジョニング済みのダッシュボードは ConfigMap から再作成されます):
kubectl -n jitera scale statefulset jitera-grafana --replicas=0
kubectl -n jitera delete pvc -l app.kubernetes.io/name=grafana
kubectl -n jitera scale statefulset jitera-grafana --replicas=1
将来的に PVC が再作成されたときに live の管理者パスワードと整合性が取れるよう、同じ変更で values.yaml(および GitOps の真実の情報源)も更新してください。参考: Grafana — 管理者パスワードのリセット
設定を適用します:
helm upgrade jitera ./charts/jitera \
  -f values.yaml \
  -n jitera

Grafanaへのアクセス

Ingress(推奨)

GrafanaとPrometheusはIngressで公開できます。2つのモードがサポートされています: サブドメインモード(デフォルト)— 各ツールを独自のサブドメインで提供:
ingress:
  grafana:
    enabled: true
    type: subdomain
    domain: grafana.example.com  # オプション — デフォルトは grafana.<rootDomain>
  prometheus:
    enabled: true
    type: subdomain
    domain: prometheus.example.com  # オプション — デフォルトは prometheus.<rootDomain>
パスベースモード — メインドメインのパス配下で各ツールを提供:
ingress:
  grafana:
    enabled: true
    type: path
    pathPrefix: /grafana
  prometheus:
    enabled: true
    type: path
    pathPrefix: /prometheus

ポートフォワード

Ingressが設定されていない場合は、kubectl port-forwardを使用します:
kubectl port-forward -n jitera svc/jitera-grafana 3000:80
http://localhost:3000でアクセスします。デフォルトのユーザー名はadminです。パスワードは以下で取得できます:
kubectl get secret -n jitera jitera-grafana \
  -o jsonpath='{.data.admin-password}' | base64 -d

プリビルトダッシュボード

Grafanaには以下のダッシュボードが自動的にプロビジョニングされます:
ダッシュボード説明
Internal Service MonitoringBlackboxプローブ結果 — 全JiteraサービスとデータストアのHTTP/TCPヘルスステータス
APM Dashboardアプリケーションパフォーマンスモニタリング — OpenTelemetryトレースから導出されたリクエストレート、エラーレート、レイテンシー(REDメトリクス)
Kubernetes Service MonitoringサービスごとのPod CPU、メモリ、ネットワークI/O、再起動回数
Logs ExplorationLokiとPromtailで収集されたログのクエリとフィルタリング
K8s Views Globalノードとワークロードのリソース使用状況のクラスタ全体ビュー

ヘルスプローブ

Blackbox Exporterは、すべてのJiteraサービスのヘルスエンドポイントを自動的にプローブします:
サービスエンドポイントプローブタイプ
Frontend/healthHTTP
Automation(Rails)/healthHTTP
Ultron/api/healthHTTP
Ultron Public/api/healthHTTP
SWEF/healthHTTP
Hasura/healthzHTTP
LiteLLM/health/readinessHTTP
Document Converterポート80TCP
Boostポート80TCP
PostgreSQL設定済みポートTCP
PGVector設定済みポートTCP
MongoDBポート27017TCP
RabbitMQポート5672TCP
Hasura、LiteLLM、Boostのプローブは、Helm valuesでそれらのコンポーネントが有効になっている場合のみアクティブになります。

Helm Valuesリファレンス

Prometheus

monitoring:
  prometheus:
    replicaCount: 1
    retention: "15d"                # メトリクスの保持期間
    scrapeInterval: "15s"
    evaluationInterval: "15s"
    persistence:
      enabled: true
      size: 50Gi
      storageClass: ""              # 空の場合はクラスターデフォルトを使用
    resources:
      requests:
        memory: 512Mi
        cpu: 100m
      limits:
        memory: 2Gi
        cpu: 1000m
    externalLabels: {}              # 全メトリクスに追加(マルチクラスタ構成に有用)
    additionalScrapeConfigs: []     # カスタムPrometheusスクレイプターゲット

Grafana

monitoring:
  grafana:
    adminUser: admin
    adminPassword: <GRAFANA_ADMIN_PASSWORD>
    persistence:
      enabled: true
      size: 5Gi
      storageClass: ""
    resources:
      requests:
        memory: 256Mi
        cpu: 100m
    env: {}                         # オプションの環境変数

Loki(ログ集約)

monitoring:
  loki:
    enabled: true                   # falseでログ集約を無効化
    retention: "30d"                # ログの保持期間
    storage:
      type: filesystem              # オプション: filesystem, s3, azure
      # S3設定(type: s3の場合)
      s3:
        bucketName: ""
        region: ""
        accessKeyId: ""
        secretAccessKey: ""
      # Azure Blob設定(type: azureの場合)
      azure:
        accountName: ""
        accountKey: ""
        containerName: ""
    persistence:
      enabled: true
      size: 10Gi
  promtail:
    enabled: true                   # falseで既存のクラスタ内Promtailを使用
promtail.enabled: falseの場合、既存のPromtailがLokiエンドポイントhttp://<release-name>-loki:3100/loki/api/v1/pushにログをプッシュするよう設定してください。

Tempo(分散トレーシング)

monitoring:
  tempo:
    enabled: true                   # falseで分散トレーシングを無効化
    retention: 24h                  # トレースの保持期間
    logLevel: info
    storage:
      type: local                   # オプション: local, s3, azure, gcs
    persistence:
      enabled: true
      size: 10Gi

OpenTelemetry Collector

monitoring:
  opentelemetry:
    samplerRatio: "1.0"             # 1.0 = 100%サンプリング; 高トラフィック環境では低く設定(例: 0.1)
    collector:
      resources:
        requests:
          memory: 256Mi
          cpu: 100m

Node ExporterとKube State Metrics

両コンポーネントは、クラスターで既に実行されている場合(例:kube-prometheus-stack経由)無効にできます。無効にした場合は、既存のサービスにPrometheusを向けます。
monitoring:
  nodeExporter:
    enabled: true                   # falseで既存のNode Exporterを使用
    external:
      namespace: "kube-system"
      serviceName: "kube-prometheus-stack-prometheus-node-exporter"
  kubeStateMetrics:
    enabled: true                   # falseで既存のKube State Metricsを使用
    external:
      namespace: "kube-system"
      serviceName: "kube-prometheus-stack-kube-state-metrics"

Prometheusリモートライト

Prometheusはリモートライトを使用して、外部バックエンド(例:Azure Managed Prometheus、AWS AMP、Grafana Cloud)にメトリクスを転送できます。リモートライトが有効な場合、Grafanaは自動的にリモートバックエンドからデータを読み取ります。
monitoring:
  prometheus:
    remoteWrite:
      enabled: true
      configs:
        - name: "example"
          enabled: true
          url: "https://your-prometheus-endpoint/api/v1/write"
          # 認証 — いずれかを選択:
          basicAuth:
            username: ""
            password: ""
          # bearerToken: ""
Azure Managed Prometheusのサイドカー認証、AWS AMP、Grafana Cloudを含む詳細なリモートライト設定については、Helmチャートのvalues.yamlを参照してください。