システムモニタリング
概要
PlantPulse のモニタリングは 3 層 で構成されています。各層のツールを併用することで、問題を早期に発見し、迅速に対応することが可能です。
| 層 | 責任 | 頻度 |
|---|---|---|
| L1 ホスト/スタック | コンテナ状態・health、リソース使用量、ヘルス応答 | 毎分~5分 (自動/手動) |
| L2 プラットフォーム内蔵 | モジュール別ビジネスメトリクス (スループット, lag, キュー深度, JVM) | リアルタイム |
| L3 外部モニタリング | 長期トレンド、アラーム、マルチホスト統合ビュー | リアルタイム |
プラットフォームサービスモジュール
PlantPulse は plantpulse- 接頭辞で始まる多数のサービスモジュールで構成されています。モジュールとコンテナは 1:1 ではありません — アプリケーション 6 つはそれぞれコンテナを持ち、残りのインフラモジュールは plantpulse-datalake コンテナ 1 つの中で共に動作します。
| 場所 | モジュール |
|---|---|
| 専用コンテナ | plantpulse-server-web · plantpulse-batch-web · plantpulse-warehouse-web · plantpulse-plugin-opcua · plantpulse-plugin-aasx · plantpulse-ha |
plantpulse-datalake コンテナ内 | storage · messaging · analytics · timeseries · workflow · cep · data-gateway · sql · monitor · backup |
コンテナ単位の状態はホストで bin/status.sh、データレイク内モジュール単位の状態はコンテナ内の status.sh で確認します。以下「ポート」はそのモジュールが コンテナ内で 開くポートであり、ホストに公開されるのはその一部です → ポート構成情報
コアサービスモジュール
| モジュール | ポート | 説明 |
|---|---|---|
plantpulse-server | 80 / 443 | Web サーバーおよび管理コンソール, REST API |
plantpulse-cep | 7400 / 7401 | 複合イベント処理エンジン (Aster CEP) |
plantpulse-batch | 9500 | バッチ処理サーバー |
plantpulse-data-gateway | 5500 | データゲートウェイ (HTTP REST ベース データ照会) |
plantpulse-datalake-admin-api | 4950 (HTTPS) | 管理コンソール API 兼 モニタリングエージェント。ホストに publish される唯一のヘルスポート |
plantpulse-warehouse-web | 9600 | データウェアハウス |
plantpulse-plugin-opcua | 11004 / 11005 | OPC-UA サーバープラグイン |
plantpulse-plugin-aasx | (ホスト非公開) | AASX サーバープラグイン |
plantpulse-ha | 10210 | 二重化復旧デーモン |
plantpulse-proxy | 80 / 443 / 1883 / 1884 | ユーザー・設備が到達する唯一の入口 |
メッセージングモジュール (plantpulse-messaging)
| サービス | ポート | 説明 |
|---|---|---|
| Kafka | 9092 | 分散メッセージストリーミング |
| MQTT | 1883 | IoT 軽量メッセージプロトコル |
| MQTT Enterprise | - | MQTT エンタープライズエディション |
ストレージモジュール (plantpulse-storage)
| サービス | ポート | 説明 |
|---|---|---|
| Cassandra 6.0 | 9042 | 時系列データベース (CQL) |
| PostgreSQL | 5432 | メタデータ関係型データベース |
| Valkey (Redis) | 6379 | インメモリキャッシュ |
| RustFS | 9000 | オブジェクトストレージ (S3 互換) |
| JanusGraph | - | グラフデータベース |
| RustFS / WeedFS | - | 分散ファイルシステム |
分析モジュール (plantpulse-analytics)
| サービス | ポート | 説明 |
|---|---|---|
| Spark Master | 7077 | 分散分析エンジン |
| Spark UI | 4440 | Spark 管理コンソール |
| Kyuubi | 10000 | 分散 SQL ゲートウェイ (JDBC/Thrift) |
| Gravitino | 19001 | データカタログ |
| Hadoop | - | 分散ファイルシステム |
| Hive | - | データウェアハウスクエリエンジン |
時系列モジュール (plantpulse-timeseries)
| サービス | ポート | 説明 |
|---|---|---|
| 時系列エンジン | 7800 | 時系列データ処理エンジン |
| 時系列 UI | 3000 | 時系列データ可視化 UI |
ワークフローモジュール (plantpulse-workflow)
| サービス | ポート | 説明 |
|---|---|---|
| Temporal | 7233 | 分散ワークフローエンジン (Web UI 8233) |
| Kestra | 8380 | ワークフローオーケストレーション / スケジューラ |
ユーティリティモジュール
| モジュール | 説明 |
|---|---|
plantpulse-datalake-cli (pd) | データレイク起動/停止/再起動・設定・ノード管理 CLI |
plantpulse-setup | 初期セットアップツール (モデル, CSV 設定) |
plantpulse-backup | バックアップサービス |
plantpulse-recovery | データ復旧ツール |
plantpulse-exporter | アセットデータエクスポートツール |
plantpulse-migrator | データ移行ツール (Spark ベース) |
plantpulse-mirror-maker | データ複製ツール |
plantpulse-simulator | データシミュレーター (テスト用) |
plantpulse-api | REST API クライアントライブラリ |
サービス状態の確認
ホストから スタック全体の状態を先に確認します。
cd /opt/kopens/plantpulse-platform-docker/bin
./status.sh # 0 = 정상 / 2 = 비정상
./ops-check.sh # 헬스 + 최근 critical log
インフラモジュールのポート単位の状態は データレイクコンテナ内 で確認します。
./shell.sh
/opt/kopens/plantpulse-platform/plantpulse-datalake-cli/bin/pd status
出力例:
==============================================================================================================
PLANTPULSE PLATFORM - ALL SERVICE STATUS
2026-03-01 12:00:00
==============================================================================================================
<SYSTEM RESOURCE OVERVIEW>
--------------------------------------------------------------------------------------------------------------
포트 서비스 상태
--------------------------------------------------------------------------------------------------------------
9092 PP_MESSAGING[KAFKA] ● RUNNING
1883 PP_MESSAGING[MQTT] ● RUNNING
9042 PP_STORAGE[CASSANDRA] ● RUNNING
5432 PP_STORAGE[POSTGRESQL] ● RUNNING
6379 PP_STORAGE[REDIS] ● RUNNING
9000 PP_STORAGE[MINIO] ● RUNNING
7077 PP_ANALYTICS[SPARK-MASTER] ● RUNNING
4440 PP_ANALYTICS[SPARK-UI] ● RUNNING
10000 PP_ANALYTICS[KYUUBI] ● RUNNING
19001 PP_ANALYTICS[GRAVITINO] ● RUNNING
7233 PP_WORKFLOW[ENGINE] ● RUNNING
8380 PP_WORKFLOW[BATCH] ● RUNNING
7800 PP_TIMESERIES[ENGINE] ● RUNNING
3000 PP_TIMESERIES[UI] ● RUNNING
7400 PP_CEP ● RUNNING
5500 PP_DATA_GATEWAY ● RUNNING
4000 PP_SQL ● RUNNING
4950 PP_MONITOR ● RUNNING
60000 PP_AGENT ● RUNNING
80 PP_SERVER ● RUNNING
9500 PP_BATCH ● RUNNING
9600 PP_WAREHOUSE ● RUNNING
11004 PP_PLUGIN[OPCUA] ● RUNNING
データレイク内の status.sh はそのコンテナのモジュールのみを確認します。PP_SERVER · PP_BATCH · PP_WAREHOUSE · PP_PLUGIN 項目が STOPPED と表示されるか、あるいは存在しなくても障害ではありません — これらのアプリはそれぞれのコンテナで動作しており、判定はホストの bin/status.sh が行います。
環境変数
ホスト側の値は /opt/kopens/plantpulse-platform-docker/bin/env.sh が、コンテナが実際に参照する値は compose/docker-compose.yml が決定します。詳細な関係と優先順位は 環境変数リファレンス に記載されています。以下はコンテナ内で使用される名称です。
| 変数 | 説明 | 例 |
|---|---|---|
PP_SCHEME | スキーマ名 | PP |
PP_MODE | 実行モード | MASTER |
PP_HOST_IP | 内部 IP | 192.168.0.41 |
PP_SERVICE_IP | サービス IP | 192.168.0.41 |
PP_MASTER_IP | マスターノード IP | 192.168.0.41 |
PP_DATA_DIR | データディレクトリ | /data1/pp-data |
PP_TEMP_DIR | 一時ディレクトリ | /data1/pp-temp |
PP_BACKUP_DIR | バックアップディレクトリ | /data1/pp-backup |
PP_CLUSTER_CORES | クラスター CPU コア数 | 16 |
PP_CLUSTER_MEMORY_BY_CORE | コアあたりメモリ | 2G |
PP_OPTIONS | 追加オプション (JSON) | {"use-infra":true,"use-app":true} |
モニタリング対象
PlantPulse プラットフォームでモニタリングすべき主要な対象と項目は以下の通りです。各項目を定期的に確認することで、安定した運用に役立ちます。
| 対象 | モニタリング項目 |
|---|---|
| アプリケーションサーバー | CPU, メモリ, ディスク, スレッド |
| JVM | 힙メモリ, GC, クラスローディング |
| PostgreSQL | 接続プール, クエリ性能, ディスク |
| Aster TSDB | クラスター状態, 遅延, コンパクション |
| Redis | メモリ, ヒット率, 接続数 |
| エンジン | パイプラインスループット, キュー深度, エラー率 |
| ネットワーク | OPC 接続, WebSocket, 遅延 |
Web コンソールモニタリング
システムモニタリング画面
パス: /monitoring/index
リアルタイムのシステム状態をダッシュボード形式で表示します。各指標が下表の「正常範囲」を外れた場合、性能低下の原因となる可能性があるため確認してください。
| 指標 | 説明 | 正常範囲 |
|---|---|---|
| CPU 使用率 | サーバー CPU 負荷 | < 70% |
| JVM 힙メモリ | 힙使用量/最大 | < 80% |
| アクティブスレッド | 動作中のスレッド数 | < 500 |
| MPS (Messages/sec) | 秒間メッセージ処理数 | 設定された rate limit 以下 |
| パイプラインキュー | 待機中のメッセージ数 | < 10,000 |
| DB 接続 | アクティブ DB 接続数 | < プール最大値 |
サーバー状態
パス: /server/status
| 項目 | 説明 |
|---|---|
| サーバー稼働時間 | Uptime |
| エンジン状態 | RUNNING / STOPPED / ERROR |
| 最終起動時刻 | エンジン最終起動日時 |
| バージョン情報 | プラットフォームバージョン |
ログモニタリング
ログはシステムの動作状態を記録するテキストファイルです。問題が発生した際にログを確認することで、原因の特定に大きく役立ちます。
ホストから — logs.sh
コンテナが 8 つあるため、どのコンテナに問題があるか不明な場合は引数なしで 開始するのが最も迅速です。
cd /opt/kopens/plantpulse-platform-docker/bin
./logs.sh # 여덟 컨테이너를 시간순으로 한 화면에 (서비스 이름 접두)
./logs.sh plantpulse-server-web -n 200 # 웹 서버 컨테이너
./logs.sh cassandra # 데이터레이크 안 컴포넌트 로그 파일
./logs.sh --list # 볼 수 있는 대상 전체 (그 시점의 실제 목록)
./logs.sh -f plantpulse-server-web # 계속 따라가기 (Ctrl-C 로 종료)
基本は 末尾 N 行 (デフォルト 200) を出力して終了 します。追跡する場合は -f を付与してください。
コンテナ内のログファイル
# 웹 서버 — 자기 컨테이너 안에 있습니다
./shell.sh plantpulse-server-web
tail -f /opt/kopens/plantpulse-platform/plantpulse-server/logs/system.log
grep -i "ERROR\|EXCEPTION" /opt/kopens/plantpulse-platform/plantpulse-server/logs/system.log | tail -100
# 인프라 — 데이터레이크 컨테이너 안
./shell.sh
tail -f /opt/kopens/plantpulse-platform/plantpulse-storage/db/cassandra/logs/system.log
ログをホストに一括コピーするには ./tools/copy-log-to-local.sh、サポート依頼用バンドルには ./doctor.sh を使用します。
ログレベル
| レベル | 説明 |
|---|---|
| INFO | 正常動作の情報です |
| WARN | 警告メッセージです (性能低下, 再試行などの状況) |
| ERROR | エラーが発生しました (処理失敗, 接続エラーなど) |
主要ログパターン
以下のログパターンが表示された場合は、対応する処置を行ってください:
| パターン | 意味 |
|---|---|
Engine started successfully | エンジンが正常に起動しました |
Pipeline queue overflow | パイプラインキューが上限を超過しました — 処理速度を点検してください |
Cassandra connection failed | Aster TSDB 接続に失敗しました — クラスター状態を確認してください |
OPC connection lost | OPC サーバー接続が切断されました — ネットワークおよび OPC サーバーを確認してください |
Rate limit exceeded | 処理率が上限を超過しました — engine.pipeline.ratelimit の値を調整してください |
データベースモニタリング
データベースの状態を定期的にモニタリングすることで、性能低下や障害を事前に予防できます。
PostgreSQL
# 활성 연결 확인
psql -h HOST -U plantpulse -d pp -c "
SELECT count(*) as active_connections
FROM pg_stat_activity
WHERE state = 'active';"
# 느린 쿼리 확인
psql -h HOST -U plantpulse -d pp -c "
SELECT pid, now() - pg_stat_activity.query_start AS duration, query
FROM pg_stat_activity
WHERE state != 'idle' AND now() - pg_stat_activity.query_start > interval '5 seconds'
ORDER BY duration DESC;"
# 테이블 크기 확인
psql -h HOST -U plantpulse -d pp -c "
SELECT relname, pg_size_pretty(pg_total_relation_size(relid))
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC
LIMIT 10;"
Aster TSDB
# 클러스터 상태
nodetool status
# 테이블별 통계
nodetool tablestats pp
# 컴팩션 상태
nodetool compactionstats
# GC 로그 확인
nodetool gcstats
# 지연 히스토그램
nodetool tablehistograms pp tm_tag_point
Aster TSDB 状態コード:
| 状態 | 説明 |
|---|---|
| UN | Up / Normal — 正常状態です |
| DN | Down / Normal — ノードがダウンした状態です |
| UJ | Up / Joining — クラスターにジョイン中です |
| UL | Up / Leaving — クラスターから離脱中です |
Redis
# Redis 상태 확인
redis-cli -a 설치-시-변경 INFO
# 메모리 사용량
redis-cli -a 설치-시-변경 INFO memory
# 키 수 확인
redis-cli -a 설치-시-변경 DBSIZE
# 슬로우 로그
redis-cli -a 설치-시-변경 SLOWLOG GET 10
JMX モニタリング
案内: JMX (Java Management Extensions) は、Java アプリケーションの内部状態を外部からモニタリングできるように提供する技術です。PlantPulse は JMX を通じて 150 以上の属性を提供しています。
JMX 接続
# JMX 포트 활성화 (setenv.sh에 추가)
export JAVA_OPTS="$JAVA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9090 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false"
JMX MBean
- ObjectName:
plantpulse:name=MBean - カテゴリ: engine, cache, storage, network, pipeline, cep, scheduler, monitoring など 12 種
主要 JMX 属性
| 属性 | 説明 |
|---|---|
| engine.status | エンジン状態 |
| engine.uptime | 稼働時間 |
| pipeline.queue.size | パイプラインキューサイズ |
| pipeline.mps | 秒間メッセージ処理数 |
| cache.tag.count | キャッシュされたタグ数 |
| storage.cassandra.status | Aster TSDB 接続状態 |
Codahale Metrics
案内: Codahale Metrics は、アプリケーションの性能指標を収集するライブラリです。PlantPulse では 70 以上のメトリクスが収集され、
/admin/tool/metricsパスで照会可能です。
メトリクスタイプ
| タイプ | 説明 |
|---|---|
| Counter | 累積カウンターです (イベント数, エラー数など) |
| Timer | 処理時間を測定します (平均, p95, p99) |
| Histogram | 値の分布を表示します (キュー深度, バッチサイズ) |
| Gauge | 現時点の値を表示します (アクティブ接続, メモリ) |
標準ヘルスチェック API
Web アプリ / プラグインサービスは、プラットフォーム共通仕様のヘルスチェックエンドポイント GET /api/health を提供します。
主要 Web アプリ (server / batch / cep / sql / data-gateway) において、このエンドポイントは readiness (準備完了状態) を意味します —
プロセス (コンテキスト) が生存しているだけでは UP を報告せず、内部エンジン / コア依存関係が正常であり、トラフィックを受け付ける準備ができた時のみ UP を返します (2026-06 プラットフォーム設計決定)。
curl -fsS http://127.0.0.1:9500/api/health
# 준비 완료: 200 {"status":"UP","service":"plantpulse-batch-web","ts":1765500000000,"checks":{"timer":true,"redis":true}}
# 기동 진행 중: 503 {"status":"STARTING",...}
# 기동 후 의존성 다운: 503 {"status":"DEGRADED",...,"checks":{...}}
- readiness — 準備完了時にのみ
200 UP。起動進行中であれば503 STARTING、起動完了後に一部の依存関係が停止していれば503 DEGRADEDとして区別して報告します。 - 依存関係への疎通確認なし — checks は各サービスが既に保持している インメモリ状態フラグのみ を読み取ります (ライブ DB クエリ / ネットワーク ping は禁止 — ポーリングによるデータストアへの負荷を防止)。
- 匿名アクセス — 認証なしで呼び出し可能です (運用点検 / デプロイ自動検証用)。
- キャッシュ禁止 —
Cache-Control: no-cache系ヘッダーが常に含まれます。 - 応答フィールドは
status/service(アーティファクト名) /ts(epoch ms) + readiness 昇格サービスのchecks(サービス別チェック詳細) です。
| サービス | ヘルス URL | 意味 | checks / 備考 |
|---|---|---|---|
| server | http://HOST:80/api/health | readiness | engine — エンジンライフサイクル状態 (前段階起動完了 RUNNING 時のみ UP) |
| batch | http://HOST:9500/api/health | readiness | timer (バッチパイプライン稼働) / redis (InMemory 接続) |
| cep | http://HOST:7400/api/health | readiness | engine (CEP エンジン+コンシューマー+復旧完了) / redis (InMemory 接続) |
| sql | https://HOST:4001/api/health | readiness | database_manager (DB マネージャ初期化完了) — HTTPS で提供 |
| data-gateway | http://HOST:5500/api/health | readiness | database / inmemory / query_log — このパスのみ HTTPS 強制 (CONFIDENTIAL) から除外, localhost HTTP プローブ許可 |
| warehouse (s3 サービス) | http://HOST:9600/api/health | readiness | temporal — Temporal ワーカー登録完了。未登録時は STARTING + 503 (Web サーバーが先に起動しワーカーが後続するため、起動直後の 503 は正常)。共通 3 フィールド + システム/JVM メトリクスを含む |
| plugin — AAS V3 | http://HOST:8090/api/health | liveness | readiness 未昇格 |
| plugin — OPC-UA Browse UI | http://HOST:12780/api/health | liveness | ポートは opc.ua.browser.ui.port 設定 (デフォルト 12780) |
用途は 2 つです。
- 運用点検 — 手動確認, crontab / 外部モニタリングの readiness プローブ
- CI デプロイ自動検証 —
deploy:devジョブがデプロイ後、この URL をポーリング (DEPLOY_HEALTH, 240秒) して起動を確認します (設定およびデプロイガイド参照)。readiness 意味のため 起動中の 503 は正常 であり、ポーリングは UP への転換を待ちます。
役割区分:
plantpulse-datalake-admin-api(:4950) はホスト / JVM / モジュール指標を収集・公開する インフラモニタリングエージェント であり、/api/healthは各 Web アプリ自身が提供する readiness エンドポイント です。代替関係ではなく補完関係にあります。コンテナ環境では、各アプリの readiness を compose の healthcheck が既に判定しているため、運用者は
bin/status.sh1 行で 8 つのコンテナの判定をまとめて受け取れます。
ヘルスチェックスクリプト
ヘルスチェックスクリプトを活用することで、プラットフォームの主要サービスが正常に動作しているかを自動的に確認できます。
自動ヘルスチェック
以下は主要サービスの状態を自動的に点検するスクリプト例です:
#!/bin/bash
# healthcheck.sh
# 표준 헬스체크 (GET /api/health)
BODY=$(curl -fsS -m 5 http://localhost/api/health 2>/dev/null)
case "$BODY" in
*'"status":"UP"'*) : ;; # 정상
*) echo "[ALERT] PlantPulse server is not responding: ${BODY:-no response}"
# 알림 발송 로직 추가
;;
esac
# PostgreSQL 체크
pg_isready -h HOST -p 5432 -U plantpulse
if [ $? -ne 0 ]; then
echo "[ALERT] PostgreSQL is not responding"
fi
# Cassandra 체크
nodetool status | grep -q "^UN"
if [ $? -ne 0 ]; then
echo "[ALERT] Cassandra node is down"
fi
# Redis 체크
redis-cli -a 설치-시-변경 ping | grep -q "PONG"
if [ $? -ne 0 ]; then
echo "[ALERT] Redis is not responding"
fi
crontab に登録して定期的に実行してください:
# 5분마다 헬스체크
*/5 * * * * /opt/scripts/healthcheck.sh >> /var/log/plantpulse-healthcheck.log 2>&1
PlantPulse Dashboard モニタリングダッシュボード
プラットフォームモニタリングは PlantPulse Dashboard を通じて視覚的に提供されます。接続 URL: http://localhost:3000/
案内: PlantPulse Dashboard はプラットフォームに同梱されたデータ可視化ツールで、PlantPulse の様々なメトリクスをグラフやチャートで表示します。PLANTPULSE フォルダ配下に 5 つのダッシュボードがデフォルトで提供されます。
1. プラント펄스 - サーバー
プラットフォームサーバーの全体状態を一目で把握できるコアダッシュボードです。
SUMMARY (要約)
| パネル | タイプ | 説明 |
|---|---|---|
| VERSION | Stat | プラットフォームバージョン情報 |
| サーバー開始日 | Stat | エンジン初回起動日時 |
| CPU 負荷 | Gauge | サーバー CPU 使用率 |
| メモリ使用率 | Gauge | サーバー メモリ使用率 |
| 1秒あたり受信件数 | Stat | 秒間メッセージ受信量 (MPS) |
| 全体保存件数 | Stat | 累積保存データ件数 |
| ネットワーク遅延 | Stat | メッセージ受信ネットワーク遅延 (ms) |
| 診断 | Stat | 診断イベント状態 |
SERVER-METRICS (サーバーメトリクス)
| パネル | タイプ | 説明 |
|---|---|---|
| CACHE / MQTT / KAFKA / WEBSOCKET / DATABASE / TSE | Stat | 各サービス接続状態 |
| サーバー CPU 使用率 | Graph | CPU 使用率時系列推移 |
| サーバー メモリ使用量 | Graph | メモリ使用量時系列推移 |
| JAVA 힙使用量 | Graph | JVM 힙メモリ使用量 |
| データ DISK R/W 現況 | Graph | ディスク読み取り/書き込みトラフィック |
| プロトコル別メッセージ受信件数 | Graph | OPC, MQTT, Kafka 等プロトコル別受信量 |
| メッセージ受信ネットワーク遅延 | Graph | ネットワーク遅延時系列 |
| 全体メッセージ受信量 | Graph | 累積メッセージ受信量 |
| メッセージ受信件数 BY 1SEC | Graph | 秒間メッセージ受信推移 |
| パイプライン待機キュー | Graph | パイプラインキュー深度 |
| パイプラインオフロードキューサイズ | Graph | RocksDB オフロードキュー |
| パイプライン検証失敗件 | Graph | 有効性検証失敗件数 |
| パイプラインワーカー処理時間 | Graph | ワーカー処理所要時間 |
| タイムアウトメッセージバックアップ処理 | Graph | タイムアウトメッセージバックアップ件数 |
| パイプライン収集機 | Graph | 収集機動作現況 |
| ストレージ保存バッファ | Graph | 保存バッファサイズ |
| ストリーミング処理件数 | Graph | WebSocket ストリーミング処理量 |
| ストリーミング動作スレッド件数 | Graph | ストリーミングアクティブスレッド |
| ストリーミング待機キュー件数 | Graph | ストリーミングキュー待機件数 |
| ストレージ保存件数 | Graph | DB 保存件数 |
| ストレージバッチ件数 | Graph | バッチ保存件数 |
| ストレージワーカー件数 | Graph | 保存ワーカー数 |
| DDS 処理件数 | Graph | Kafka DDS 分配件数 |
| 非同期スレッドアクティブカウント | Graph | 非同期実行アクティブスレッド |
| 非同期スレッドプールサイズ | Graph | スレッドプールサイズ |
| 診断エラー件数 | Graph | 診断エラー発生推移 |
| ロギング例外 | Graph | 例外ログ発生推移 |
| GC 時間 | Graph | JVM GC 所要時間 |
| DISK 使用量 | Graph | ディスク使用量推移 |
2. プラント펄스 - データレイクハウス
データベースおよびストレージ層の性能と状態をモニタリングするダッシュボードです。
DATA-GATEWAY (データゲートウェイ)
| パネル | 説明 |
|---|---|
| TOTAL_QUERY | 全クエリ件数 |
| QPS | 秒間クエリ処理量 (Gauge) |
| QUERY_LATENCY | クエリ遅延時系列 |
| QUERY_LATENCY_MAX | 最大クエリ遅延 |
| SUCCESS / ERROR | 成功および失敗件数 |
CACHE (REDIS)
| パネル | 説明 |
|---|---|
| CLIENTS | Redis クライアント接続数 |
| ALLOCATOR | メモリアロケータ状態 |
| KEY_COUNT | 保存されたキー数 |
| FRAGMENTATION | メモリ断片化率 |
CEP
| パネル | 説明 |
|---|---|
| JAVA_HEAP_USED | CEP エンジン 힙メモリ |
| EVENT_INGESTION_RATE | イベントインジェスト比率 |
| EQL_CPU_TIME | 値が表示されません — CEP は文ごとの CPU 時間を計測しません |
| EQL_MAP_COUNT | デプロイされた EQL 文数 |
| EVENT_INGEST_DIFF | イベントインジェスト差異 |
| EVENT_DELAY_HISTOGRAM | イベント遅延分布 |
| CEP_STATEMENT_MATCH_RATE | ステートメントマッチング比率 |
| EQL_STATEMENT_OUTPUT_RATE | ステートメント出力比率 |
META-STORE (POSTGRES)
| パネル | 説明 |
|---|---|
| TOTAL_CONNECTIONS | 全接続数 |
| QUERY_LATENCY | クエリ遅延 |
| TOTAL_READS_HITS | 読み取りヒット件数 |
| TOTAL_DB_SIZE | 全 DB サイズ |
EVENT-STORE (CASSANDRA)
| パネル | 説明 |
|---|---|
| NATIVE_CLIENT | ネイティブクライアント接続 |
| LATENCY | 読み取り/書き込み遅延 |
| READ_PER_SECONDS / WRITE_PER_SECONDS | 秒間読み取り/書き込み |
| HEAP / DIRECT_MAPPED_MEMORY | JVM メモリ |
| CACHE / CACHE_HIT_RATE | キャッシュおよびヒット率 |
| TOTAL_DATA_SIZE | 全データサイズ |
| MEMTABLE | Memtable 状態 |
| COMPACTION / COMPACTION_BYTES | コンパクション現況 |
| TABLE_COMPACTIONS / TABLE_SSTABLE_COUNT | テーブル別コンパクションおよび SSTable |
| BLOOM_FILTER_FALSE_RATIO | ブルームフィルタ誤検知率 |
| TABLE_READ_LATENCY / TABLE_RANGE_LATENCY / TABLE_WRITE_LATENCY | テーブル別遅延 |
| PENDINGS / FLUSH / THREAD_POOL | 待機, フラッシュ, スレッドプール |
| STATEMENT / COMMITLOG / EXCEPTION / MUTATION | 内部メトリクス |
| COMPRESSION / TOTAL_SSTABLE | 圧縮および SSTable 現況 |
TIMESERIES-STORE (TSE)
| パネル | 説明 |
|---|---|
| TSE_MEMORY | 時系列エンジンメモリ |
| TSE_HTTP_TIME | HTTP 応答時間 |
| TSE_DATASTORE | データストア状態 |
| TSE_QUEUE_PROCESS_COUNT | キュー処理件数 |
ANALYTICS-STORE (SPARK)
| パネル | 説明 |
|---|---|
| MEMORY_USED | Spark メモリ使用量 |
| CONNECTION | 接続数 |
| OPERATION | 作業数 |
| REQUEST_RATE | 要求比率 |
3. プラント펄스 - エッジゲートウェイ
エッジデバイスの状態、PLC 接続、データ受信状況をモニタリングするダッシュボードです。
要約パネル
| パネル | 説明 |
|---|---|
| 全エッジゲートウェイ | 登録されたエッジゲートウェイ数 |
| 電源 (正常/異常) | 電源状態正常および異常件数 |
| PLC | PLC 接続数 |
| 全データ容量 | 収集された全データサイズ |
| 1秒あたり受信合計件数 | 全エッジの秒間受信合計 (Gauge) |
| データ受信最大遅延 | 最大受信遅延 (ms) (Gauge) |
| ログ | ログ状態 |
PLC STATUS (PLC 状態)
| パネル | 説明 |
|---|---|
| PLC ピング失敗件数 | PLC 接続ピング失敗推移 |
| PLC 接続済み / 切断 | PLC 接続状態推移 |
| PLC 値読み取り成功件数 | データ読み取り成功推移 |
| PLC データ読み取り失敗件数 | データ読み取り失敗推移 |
| システムエラー件数トレンド | システムエラー推移 |
DATA POINT (データポイント)
| パネル | 説明 |
|---|---|
| 1秒あたり全発送信件数 SUM(MPS) | 全エッジ秒間送信合計 |
| ポイント送信件 | ポイント送信件数推移 |
| 送信ポイントバイト | 送信データバイト |
| 受信最低/平均/最大遅延 | 受信遅延分布 |
EDGE H/W (エッジハードウェア)
| パネル | 説明 |
|---|---|
| CPU | エッジデバイス CPU 使用率 |
| メモリ | メモリ使用量 |
| ディスク (SSD) | ディスク使用量 |
| ネットワークアップロード/ダウンロード | ネットワークトラフィック |
| 温度 | デバイス温度 |
4. プラント펄스 - 統計
日別データ増加量、システムリソースピーク値など、長期統計を追跡するダッシュボードです。システムの長期的な成長トレンドを把握するのに有用です。
| パネル | 説明 |
|---|---|
| 全データ容量 | 全保存データサイズ |
| 日別データ全容量 | 日別データ容量推移 |
| 日次メッセージ送信量 | 日別メッセージ送信件数 |
| 日次データ増加量 | 日別データ増加推移 |
| メッセージ受信件数 | メッセージ受信件数推移 |
| ネットワーク遅延平均/最大値 | ネットワーク遅延統計 |
| SSTABLE 増加量 | Aster TSDB SSTable 増加推移 |
| 最大 DB クライアント接続 | DB 接続最大値 |
| 非同期スレッド最大実行件数 | 非同期処理ピーク |
| JAVA 最大 GC 時間 | GC 最大所要時間 |
| CQL 準備最大件数 | CQL Prepared Statement 最大値 |
| 最大パーティションサイズ | Aster TSDB パーティション最大サイズ |
| JAVA 힙最小余裕サイズ | JVM 힙余裕最小値 |
| 非同期スレッド最大待機件数 | 非同期キュー最大待機 |
| 最大メモリバッファサイズ | メモリバッファ最大値 |
| バックアップメッセージ処理件数 | バックアップ処理件数 |
5. プラント펄스 - メッセージング
MQTT, Kafka, WebSocket メッセージブローカーの状態をモニタリングするダッシュボードです。
SUMMARY (要約)
| パネル | 説明 |
|---|---|
| MQTT / KAFKA / WEBSOCKET | 各ブローカー接続状態 |
| CPU | サーバー CPU 使用率 |
| JAVA_HEAP | JVM 힙使用量 |
| NETWORK_READ_BYTES | ネットワーク受信バイト |
MQTT
| パネル | 説明 |
|---|---|
| CPU_USED | MQTT ブローカー CPU (Gauge) |
| MEMORY_USED | メモリ使用量 |
| CONNECTIONS | クライアント接続数 |
| NETWORK IN/OUT | ネットワーク入出力 |
| GC_COUNT / GC_TIME_MS | GC 回数および所要時間 |
| THREAD_COUNT | スレッド数 |
| INCOMMING / OUTGOING | 受信および発信メッセージ数 |
| RETAINED_COUNT | Retained メッセージ数 |
| SUBSCRIPTIONS | 購読数 |
| TOTAL_MESSAGE | 全メッセージ数 |
KAFKA
| パネル | 説明 |
|---|---|
| CPU_USED | Kafka ブローカー CPU (Gauge) |
| MEMORY_USED | メモリ使用量 |
| GLOBAL_TOPIC | 全局トピック現況 |
| NETWORK IN/OUT | ネットワーク入出力 |
| TOPIC_BYTE_IN/OUT_PER_SEC | トピック別秒間バイト |
| MESSAGE_PER_SEC_MEAN_RATE / 1M_RATE | 秒間メッセージ処理量 |
| NETWORK_REQUEST_FETCH | Fetch 要求件数 |
| OFFLINE_PARTITION_COUNT | オフラインパーティション数 |
| ACTIVE_CONTROLLER_COUNT | アクティブコントローラー数 |
WEBSOCKET
| パネル | 説明 |
|---|---|
| CPU_USED | WebSocket サーバー CPU (Gauge) |
| MEMORY_USED | メモリ使用量 |
| CONNECTION_COUNT | WebSocket 接続数 |
| ENQUEUE / DEQUEUE | キュー入出力件数 |
モニタリングツール連携
ELK Stack
コンテナログを Filebeat → Logstash → Elasticsearch → Kibana パイプラインで収集し、ログ検索および分析環境を構築できます。大規模運用環境でログを効率的に管理したい場合に導入を検討してください。コンテナ標準出力は docker ロギングドライバで、コンテナ内のファイルログはホストマウント (PLANTPULSE_LOG_DIR) で収集します。