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 Metrics | Kubernetesオブジェクトメトリクス |
| 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 Monitoring | Blackboxプローブ結果 — 全JiteraサービスとデータストアのHTTP/TCPヘルスステータス |
| APM Dashboard | アプリケーションパフォーマンスモニタリング — OpenTelemetryトレースから導出されたリクエストレート、エラーレート、レイテンシー(REDメトリクス) |
| Kubernetes Service Monitoring | サービスごとのPod CPU、メモリ、ネットワークI/O、再起動回数 |
| Logs Exploration | LokiとPromtailで収集されたログのクエリとフィルタリング |
| K8s Views Global | ノードとワークロードのリソース使用状況のクラスタ全体ビュー |
ヘルスプローブ
Blackbox Exporterは、すべてのJiteraサービスのヘルスエンドポイントを自動的にプローブします:
| サービス | エンドポイント | プローブタイプ |
|---|
| Frontend | /health | HTTP |
| Automation(Rails) | /health | HTTP |
| Ultron | /api/health | HTTP |
| Ultron Public | /api/health | HTTP |
| SWEF | /health | HTTP |
| Hasura | /healthz | HTTP |
| LiteLLM | /health/readiness | HTTP |
| Document Converter | ポート80 | TCP |
| Boost | ポート80 | TCP |
| PostgreSQL | 設定済みポート | TCP |
| PGVector | 設定済みポート | TCP |
| MongoDB | ポート27017 | TCP |
| RabbitMQ | ポート5672 | TCP |
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を参照してください。