Analytics worker は Enterprise 専用のアドオンです。Cockpit ダッシュボード(DORA 風メトリクス、PR ライフサイクル、LLM ベースの PR classifier)を駆動する取り込み cron を実行します。Documentation Index
Fetch the complete documentation index at: https://docs.kodus.io/llms.txt
Use this file to discover all available pages before exploring further.
何をするか
worker と同じイメージ(kodus-ai-worker)を実行する別プロセスで、
boot 時に WORKER_ROLE=analytics で選択されます。このプロセスからのみ
2 つの cron が起動します:
- 取り込み(
ANALYTICS_INGESTION_CRON、デフォルト*/30 * * * *) — Mongo + OLTP Postgres から pull request とレビューセッションを読み、analyticsschema に投影します。 - Classifier(
ANALYTICS_CLASSIFIER_CRON、デフォルト*/15 * * * *) — LLM を呼び出して各 PR にタイプ (feature/bugfix/refactor/etc)をタグ付けします。
worker から分離することで、code review の event loop が
長時間の取り込みクエリの影響を受けないようにします。
トポロジー
Analytics warehouse は別の DB ではなく Postgres の schema です。 2 つのレイアウトがサポートされています:- 共有 Postgres(セルフホスト推奨) —
ANALYTICS_PG_DB_HOSTを空に します。設定ローダーがAPI_PG_DB_*変数にフォールバックし、同じ インスタンスにanalyticsschema を作成します。バックアップと運用は 1 つの DB だけ。 - 専用 Postgres — 別のインスタンスを指す
ANALYTICS_PG_DB_*全体を 設定します。OLTP の write path から完全に分離した分析クエリが必要な 場合に使用します。
セルフホスト Enterprise での有効化
1. docker-compose.yml にサービスを追加
worker サービスと同一です — WORKER_ROLE=analytics だけが
取り込みモードに切り替えます。
2. .env に analytics ブロックを追加
共有 Postgres(推奨):
3. Boot — マイグレーションが自動実行されます
worker-analytics コンテナは api/worker/webhooks と同じ
prod-entrypoint.sh を共有します。RUN_MIGRATIONS=true(インストーラー
のデフォルト)の場合、analytics warehouse のマイグレーション
(yarn analytics:migration:run:prod)が初回 boot で実行され、
analytics schema とそのテーブルが作成されます。
リファレンス
| 変数 | 説明 | デフォルト |
|---|---|---|
WORKER_ROLE | このコンテナでは analytics に設定する必要があります。 | 必須 |
ANALYTICS_PG_DB_HOST | Analytics Postgres ホスト。空 → メイン Postgres を再利用。 | 空 |
ANALYTICS_PG_DB_PORT | Analytics Postgres ポート。 | 5432 |
ANALYTICS_PG_DB_USERNAME | Analytics Postgres ユーザー。空 → API_PG_DB_USERNAME を再利用。 | 空 |
ANALYTICS_PG_DB_PASSWORD | Analytics Postgres パスワード。空 → API_PG_DB_PASSWORD を再利用。 | 空 |
ANALYTICS_PG_DB_DATABASE | Analytics Postgres データベース。空 → API_PG_DB_DATABASE を再利用。 | 空 |
ANALYTICS_PG_DB_SCHEMA | Warehouse テーブルの schema 名。 | analytics |
ANALYTICS_PG_POOL_MAX | Analytics Postgres プールの上限。 | 5 |
ANALYTICS_INGESTION_CRON | 取り込み実行の cron schedule(UTC)。 | */30 * * * * |
ANALYTICS_CLASSIFIER_CRON | LLM PR タイプ classifier の cron schedule(UTC)。 | */15 * * * * |
取り込みの一時停止(高度)
コンテナを削除せずに runtime で取り込みを停止するには、ANALYTICS_INGESTION_DISABLED=true および/または
ANALYTICS_CLASSIFIER_DISABLED=true を設定し、worker-analytics を
再起動してください。Cron はスケジュールされたままですが、各 tick が
ショートサーキットします。これはインシデントトリアージ用で、長期設定
としては使わないでください — これらの変数は主にクラウド向けに管理されて
おり、インストーラーテンプレートには表示されない場合があります。
動作の確認
Boot 後、analytics worker のログを追跡します:analytics ingestion done in NNNms — {...} のような行と、
15 分ごとに analytics classifier done ... が表示されるはずです。
表示されない場合は、WORKER_ROLE=analytics がこのコンテナにのみ
設定されていることを確認してください(メインの worker には設定しない
こと — そちらは code-review のままにする必要があります)。