plantpulse-timeseries (時系列)
役割
時系列データ専用エンジン(TSE)と PlantPulse Dashboardです。タグ値を Aster TSDB に行単位 TTL で保存し、集計・照会 API を提供します。
| 項目 | 値 |
|---|---|
| モジュール名 | plantpulse-timeseries |
| インストールパス | /opt/kopens/plantpulse-platform/plantpulse-timeseries/ |
| エンジンポート | 7800 (HTTP) · 7801 (TLS) |
| UI ポート | 3000 (PlantPulse Dashboard、TLS 専用) |
pd サービス | timeseries — MASTER のみ (2026-09-05 以降)。engine(tse) → dashboard(grafana) |
| アカウント | PP_TSE_USER / PP_TSE_PASSWORD |
ワーカーのエンジンは誰も読み取らず、マスターが既に書き込んだ行を同じリングに再コピーするだけでした(実測 4.4G)。すべての照会コンシューマーがマスターのエンジンを指しているため、MASTER 専用に変更されました。
構成
ディレクトリ構造
plantpulse-timeseries/
├── engine/ # 시계열 엔진 (Java)
│ ├── bin/
│ ├── conf/plantpulse-timeseries-engine.conf # 생성물 (옛 이름 timeseries-engine.conf 로도 한 벌)
│ └── logs/
└── dashboard/ # PlantPulse Dashboard
├── bin/
├── conf/custom.ini # protocol = https · http_port = 3000
├── data/ # PlantPulse Dashboard DB — 이미지 트리 안 (볼륨 아님)
└── logs/
時系列エンジン (7800 · 7801)
設定テンプレートは /etc/kopens/conf/plantpulse-timeseries-engine.conf.template の一つで、二つの名前のファイルとしてレンダリングされます。重要な項目:
| 項目 | 値 |
|---|---|
jetty.port · jetty.ssl.port | PP_TSE_PORT(7800) · PP_TSE_TLS_PORT(7801)。TLS はプラットフォーム共通 keystore |
service.datastore | Aster TSDB モジュール — テーブル pp.ts_data_points など、UnifiedCompactionStrategy |
| データポイント TTL | PP_TSE_DATAPOINT_TTL — デフォルト 31536000 秒(365日)。書き込みごとに記録されるため、新しい値は新しい行から |
| 認証 | PP_TSE_USER / PP_TSE_PASSWORD — passwd.sh 対象ではなく、サイドカー更新 + 再起動 |
curl -fsS http://127.0.0.1:7800/api/health # 컨테이너 안
curl -kfsS https://<server-ip>:7801/api/health # 밖에서 — 401 은 «로그인 필요» 이지 «없음» 이 아닙니다
管理コンソールのツール画面 «Timeseries Engine» カード(7801)は、エンジン自体の管理画面です。時系列データを確認する場所は PlantPulse Dashboard です。
PlantPulse Dashboard (3000)
https://<server-ip>:3000/ — TLS のみで応答します。http:// で開くと 400。
ログインアカウントは PlantPulse Dashboard 独自のリポジトリにあります。変更する場所は PlantPulse Dashboard 画面(プロフィール → Change password)です → ウェブ画面ログインアカウント — PlantPulse Dashboard
ダッシュボード・データソース・ユーザー・アラームルール・API キーが PostgreSQL の grafana DB に
保存されます。以前はイメージツリー内の SQLite(dashboard/data/grafana.db)だったため、コンテナーを
再作成するとすべて巻き戻っていましたが、今は保持されます。
| 変数 | 値 |
|---|---|
PP_GRAFANA_DB_USER | grafana (固定 — スキーマがこの名前でロールを作成します) |
PP_GRAFANA_DB_PASSWORD | 🔑 起動必須 — ない場合 pd start が exit 3 で停止します |
ロールのパスワードはブートごとにサイドカー値で調整されます。
🔴 PlantPulse Dashboard はリポジトリ間を自動で移動しません。 空の PostgreSQL を指すと、そのまま 空の PlantPulse Dashboard になります — ダッシュボードも、データソースも、ユーザーもありません。以前の SQLite に あったものを移行する手順が別途あります。
移行後、コンソールは PlantPulse Dashboard デフォルトアカウントで開きます。ブートごとに調整する仕組みがないため、 人が一度変更する必要があります。 設定ファイルに管理者アカウントを記述しても無駄です — リポジトリに ユーザーが 1 人でも作成された後はリポジトリが優先され、その事実を知らせるエラーもありません。
運用コマンド
docker exec plantpulse-datalake pd status timeseries
docker exec plantpulse-datalake pd restart timeseries # 엔진 + PlantPulse Dashboard
docker exec plantpulse-datalake pd logs --lines 100 timeseries
docker exec plantpulse-datalake pd retention # ts_data_points 의 크기 · 압축 전략
頻繁に発生する問題
| 症状 | 原因 | 対処 |
|---|---|---|
| Kafka ラグ増加 | エンジン処理不足 · Aster TSDB I/O | pd flow, pd node compactionstats |
| データが数日で消える | TTL | PP_TSE_DATAPOINT_TTL — 旧イメージは 31 日のリテラルでした。既に書き込まれた行は旧値のまま失効します |
| PlantPulse Dashboard が空(ダッシュボード・データソースなし) | リポジトリを PostgreSQL に移行した際に内容を移さなかった | 上記の警告 — 移行手順を経ます |
pd start が exit 3 | PP_GRAFANA_DB_PASSWORD が空 | サイドカーに値を設定して再起動 |
http://…:3000 が 400 | TLS 専用 | https:// |
| ダッシュボードの応答が遅い | 時間範囲が過大 | 範囲を短縮、集計間隔を拡大 |
関連ドキュメント
- データレイク概要
- 変数リファレンス —
PP_TSE_* - パフォーマンスチューニング