plantpulse-timeseries (시계열)
역할
시계열 데이터 전용 엔진(TSE)과 Grafana 대시보드입니다. 태그 값을 Cassandra 에 행 단위 TTL 로 저장하고, 집계 · 조회 API 를 제공합니다.
| 항목 | 값 |
|---|---|
| 모듈명 | plantpulse-timeseries |
| 설치 경로 | /opt/kopens/plantpulse-platform/plantpulse-timeseries/ |
| 엔진 포트 | 7800 (HTTP) · 7801 (TLS) |
| UI 포트 | 3000 (Grafana, TLS 전용) |
pd 서비스 | timeseries — MASTER 만 (2026-09-05 부터). engine(tse) → dashboard(grafana) |
| 계정 | PP_TSE_USER / PP_TSE_PASSWORD |
워커에서는 뜨지 않습니다 (2026-09-05)
워커의 엔진은 아무도 읽지 않고 마스터가 이미 쓴 행을 같은 링에 다시 복사할 뿐이었습니다(실측 4.4G). 모든 조회 소비자가 마스터의 엔진을 가리키므로 MASTER 전용으로 바뀌었습니다.
구성
디렉토리 구조
plantpulse-timeseries/
├── engine/ # 시계열 엔진 (Java)
│ ├── bin/
│ ├── conf/plantpulse-timeseries-engine.conf # 생성물 (옛 이름 timeseries-engine.conf 로도 한 벌)
│ └── logs/
└── dashboard/ # Grafana
├── bin/
├── conf/custom.ini # protocol = https · http_port = 3000
├── data/ # Grafana 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 | Cassandra 모듈 — 테이블 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://<서버IP>:7801/api/health # 밖에서 — 401 은 «로그인 필요» 이지 «없음» 이 아닙니다
관리 콘솔의 도구 화면 «Timeseries Engine» 카드(7801)는 엔진 자체의 관리 화면입니다. 시계열 데이터를 보는 곳은 Grafana 입니다.
Grafana (3000)
https://<서버IP>:3000/ — TLS 로만 답합니다. http:// 로 열면 400.
로그인 계정은 Grafana 자신의 DB 에 있고, 데이터레이크는 PP_GRAFANA_* 같은 변수를 읽지 않습니다. 바꾸는 자리는 Grafana 화면(프로필 → Change password)입니다 → 웹 화면 로그인 계정 — Grafana
Grafana 의 데이터는 컨테이너 재생성에 살아남지 못합니다
dashboard/data 가 이미지 트리 안에 있어 볼륨이 아닙니다. 화면에서 바꾼 비밀번호 · 만든 대시보드는 컨테이너를 다시 만들면 이미지가 실은 상태로 돌아갑니다. 제품 결함으로 보고돼 있습니다. 대시보드는 JSON 으로 내보내 따로 보관하세요.
운영 명령
docker exec plantpulse-datalake pd status timeseries
docker exec plantpulse-datalake pd restart timeseries # 엔진 + Grafana
docker exec plantpulse-datalake pd logs --lines 100 timeseries
docker exec plantpulse-datalake pd retention # ts_data_points 의 크기 · 압축 전략
자주 발생하는 문제
| 증상 | 원인 | 조치 |
|---|---|---|
| Kafka lag 증가 | 엔진 처리 부족 · Cassandra I/O | pd flow, pd node compactionstats |
| 데이터가 며칠 만에 사라짐 | TTL | PP_TSE_DATAPOINT_TTL — 옛 이미지는 31일 리터럴이었습니다. 이미 쓰인 행은 옛 값대로 만료됩니다 |
| Grafana 로그인 실패 | 컨테이너 재생성으로 계정이 되돌아감 | 위 경고. 기본값으로 다시 로그인 |
http://…:3000 이 400 | TLS 전용 | https:// |
| 대시보드 응답 느림 | 시간 범위 과다 | 범위 단축, 집계 간격 확대 |