メインコンテンツまでスキップ

システムモニタリング

概要

PlantPulse のモニタリングは 3 階層 で構成されています。各階層のツールを組み合わせて使用することで、問題を早期に発見し、迅速に対応できます。

階層責務頻度
L1 ホスト/スタックコンテナ状態·ヘルス、リソース使用量、ヘルス応答毎分~5分 (自動/手動)
L2 プラットフォーム組込モジュール別ビジネスメトリクス (スループット、ラグ、キュー深度、JVM)リアルタイム
L3 外部モニタリング長期トレンド、アラーム、マルチホスト統合ビューリアルタイム

プラットフォームサービスモジュール

PlantPulse は plantpulse- プレフィックスで始まる複数のサービスモジュールで構成されています。モジュールとコンテナは 1:1 ではありません — アプリケーション 6 つはそれぞれコンテナを持ち、残りのインフラモジュールは plantpulse-datalake コンテナ 1 つ内で協働します。

どこにあるかモジュール
独立コンテナplantpulse-server-web · plantpulse-batch-web · plantpulse-warehouse · plantpulse-plugin-opcua-server · plantpulse-plugin-aasx-server · plantpulse-ha
plantpulse-datalake コンテナ内storage · messaging · analytics · timeseries · workflow · cep · data-gateway · sql · monitor · backup

コンテナ単位の状態はホストから bin/status.sh で、データレイク内のモジュール単位の状態はコンテナ内の status.sh で確認します。以下の «ポート» はそのモジュールが コンテナ内で 開くポートであり、ホストに公開されるのはその一部です → ポート設定情報

コアサービスモジュール

モジュールポート説明
plantpulse-server80 / 443 / 7443ウェブサーバーおよび管理コンソール、REST API
plantpulse-cep7400 / 7401複合イベント処理エンジン (Esper)
plantpulse-batch9500バッチ処理サーバー
plantpulse-data-gateway5500データゲートウェイ (HTTP REST ベースのデータ照会)
plantpulse-sql4000SQL クエリツール
plantpulse-monitor4950 (HTTPS)システムモニタリングエージェント。ホストに公開される唯一のヘルスポート
plantpulse-warehouse9600データウェアハウス
plantpulse-plugin-opcua-server11004 / 11005OPC-UA サーバープラグイン
plantpulse-plugin-aasx-server(ホスト非公開)AASX サーバープラグイン
plantpulse-ha10210冗長化復旧デーモン
plantpulse-proxy80 / 443 / 1883 / 1884ユーザー·設備が接する唯一の入口

メッセージングモジュール (plantpulse-messaging)

サービスポート説明
Kafka9092分散メッセージストリーミング
MQTT1883IoT 軽量メッセージプロトコル
MQTT Enterprise-MQTT エンタープライズエディション

ストレージモジュール (plantpulse-storage)

サービスポート説明
Cassandra 6.09042時系列データベース (CQL)
PostgreSQL5432メタデータリレーショナルデータベース
Valkey (Redis)6379インメモリキャッシュ
MinIO9000オブジェクトストレージ (S3 互換)
JanusGraph-グラフデータベース
RustFS / WeedFS-分散ファイルシステム

分析モジュール (plantpulse-analytics)

サービスポート説明
Spark Master7077分散分析エンジン
Spark UI4440Spark 管理コンソール
Kyuubi10000分散 SQL ゲートウェイ (JDBC/Thrift)
Gravitino19001データカタログ
Hadoop-分散ファイルシステム
Hive-データウェアハウスクエリエンジン

時系列モジュール (plantpulse-timeseries)

サービスポート説明
時系列エンジン7800時系列データ処理エンジン
時系列 UI3000時系列データ可視化 UI

ワークフローモジュール (plantpulse-workflow)

サービスポート説明
Temporal7233分散ワークフローエンジン (Web UI 8233)
Kestra8380ワークフローオーケストレーション / スケジューラ

ユーティリティモジュール

モジュール説明
plantpulse-datalake-cli (pd)データレイク起動/停止/再起動·設定·ノード管理 CLI
plantpulse-setup初期セットアップツール (モデル、CSV 設定)
plantpulse-backupバックアップサービス
plantpulse-recoveryデータ復旧ツール
plantpulse-exporterアセットデータエクスポートツール
plantpulse-migratorデータマイグレーションツール (Spark ベース)
plantpulse-mirror-makerデータレプリケーションツール
plantpulse-simulatorデータシミュレーター (テスト用)
plantpulse-apiREST 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内部 IP192.168.0.41
PP_SERVICE_IPサービス IP192.168.0.41
PP_MASTER_IPマスターノード IP192.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コネクションプール、クエリ性能、ディスク
Cassandraクラスター状態、レイテンシ、コンパクション
Redisメモリ、ヒット率、接続数
エンジンパイプラインスループット、キュー深度、エラー率
ネットワークOPC 接続、WebSocket、レイテンシ

ウェブコンソールモニタリング

システムモニタリング画面

パス: /monitoring/index

リアルタイムシステム状態をダッシュボード形式で表示します。各指標が下表の「正常範囲」を超える場合、パフォーマンス低下の原因となる可能性があるため確認してください。

指標説明正常範囲
CPU 使用率サーバー CPU 負荷< 70%
JVM ヒープメモリヒープ使用量/最大< 80%
アクティブスレッド動作中スレッド数< 500
MPS (Messages/sec)1 秒当たりのメッセージ処理数設定された 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 failedCassandra 接続に失敗しました — クラスター状態を確認してください
OPC connection lostOPC サーバー接続が切断されました — ネットワークおよび 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;"

Cassandra

# 클러스터 상태
nodetool status

# 테이블별 통계
nodetool tablestats pp

# 컴팩션 상태
nodetool compactionstats

# GC 로그 확인
nodetool gcstats

# 지연 히스토그램
nodetool tablehistograms pp tm_tag_point

Cassandra 状態コード:

状態説明
UNUp / Normal — 正常状態です
DNDown / Normal — ノードがダウンしている状態です
UJUp / Joining — クラスターに参加中です
ULUp / 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.mps1 秒当たりのメッセージ処理数
cache.tag.countキャッシュされたタグ数
storage.cassandra.statusCassandra 接続状態

Codahale Metrics

お知らせ: Codahale Metrics はアプリケーションのパフォーマンス指標を収集するライブラリです。PlantPulse では 70 個以上のメトリクスが収集され、/admin/tool/metrics パスで照会できます。

メトリクスタイプ

タイプ説明
Counter累積カウンターです (イベント数、エラー数など)
Timer処理時間を測定します (平均、p95、p99)
Histogram値の分布を表示します (キュー深度、バッチサイズ)
Gauge現在時点の値を表示します (アクティブ接続、メモリ)

標準ヘルスチェック API

ウェブアプリ / プラグインサービスはプラットフォーム共通仕様のヘルスチェックエンドポイント GET /api/health を提供します。 主要ウェブアプリ(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 クエリ / ネットワークピング禁止 — ポーリングがデータストアに負荷をかけません)。
  • 匿名アクセス — 認証なしで呼び出せます (運用点検 / デプロイ自動検証用)。
  • キャッシュなしCache-Control: no-cache シリーズヘッダが常に含まれます。
  • 応答フィールドは status / service(アーティファクト名) / ts(epoch ms) + readiness 昇格サービスの checks(サービス別チェック詳細)です。
サービスヘルス URL意味checks / 備考
serverhttp://HOST:80/api/healthreadinessengine — エンジンライフサイクル状態(全段階起動完了 RUNNING の場合のみ UP)
batchhttp://HOST:9500/api/healthreadinesstimer(バッチパイプライン稼働) / redis(InMemory 接続)
cephttp://HOST:7400/api/healthreadinessengine(CEP エンジン+コンシューマ+復旧完了) / redis(InMemory 接続)
sqlhttps://HOST:4001/api/healthreadinessdatabase_manager(DB マネージャー初期化完了) — HTTPS で提供
data-gatewayhttp://HOST:5500/api/healthreadinessdatabase / inmemory / query_log — このパスのみ HTTPS 強制(CONFIDENTIAL)から除外、localhost HTTP プローブ許可
warehouse (s3 サービス)http://HOST:9600/api/healthreadinesstemporal — Temporal ワーカー登録完了。未登録の場合は STARTING + 503 (ウェブサーバーが先に起動し、ワーカーが後続するため、起動直後 503 は正常)。共通 3 フィールド + システム/JVM メトリクス含む
plugin — AAS V3http://HOST:8090/api/healthlivenessreadiness 非昇格
plugin — OPC-UA Browse UIhttp://HOST:12780/api/healthlivenessポートは opc.ua.browser.ui.port 設定 (デフォルト 12780)

用途は 2 つです。

  1. 運用点検 — 手動確認、crontab / 外部モニタリングの readiness プローブ
  2. CI デプロイ自動検証deploy:dev ジョブがデプロイ後このURL をポーリング(DEPLOY_HEALTH、240秒)して起動を確認します (設定およびデプロイガイド参照)。readiness の意味のため 起動中の 503 は正常 でありポーリングが UP 転換を待ちます。

役割分担: plantpulse-monitor(:4950)はホスト / JVM / モジュール指標を収集·公開する インフラモニタリングエージェント であり、/api/health は各ウェブアプリ自身が提供する readiness エンドポイント です。相互置換関係ではなく補完関係です。

コンテナ環境では各アプリの readiness を compose の healthcheck が既に判定しているため、運用者は bin/status.sh 1 行で 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

Grafana モニタリングダッシュボード

プラットフォームモニタリングは Grafana を通じて可視化されます。接続 URL: http://localhost:3000/

お知らせ: Grafana はオープンソースのデータ可視化ツールで、PlantPulse の各種メトリクスをグラフとチャートで表示します。PLANTPULSE フォルダ配下に 5 つのダッシュボードがデフォルトで提供されます。


1. PlantPulse - サーバー

プラットフォームサーバーの全体状態を一目で把握できるコアダッシュボードです。

SUMMARY (サマリ)

パネル種類説明
VERSIONStatプラットフォームバージョン情報
サーバー起動日Statエンジン最初の起動日時
CPU 負荷Gaugeサーバー CPU 使用率
メモリ使用率Gaugeサーバーメモリ使用率
1 秒当たり受信件数Stat1 秒当たりのメッセージ受信数 (MPS)
全体保存件数Stat累積保存データ件数
ネットワーク遅延Statメッセージ受信ネットワーク遅延(ms)
診断Stat診断イベント状態

SERVER-METRICS (サーバーメトリクス)

パネル種類説明
CACHE / MQTT / KAFKA / WEBSOCKET / DATABASE / TSEStat各サービス接続状態
サーバー CPU 使用率GraphCPU 使用率の時系列推移
サーバーメモリ使用量Graphメモリ使用量の時系列推移
JAVA ヒープ使用量GraphJVM ヒープメモリ使用量
データ DISK R/W 状況Graphディスク読み書きトラフィック
プロトコル別メッセージ受信件数GraphOPC、MQTT、Kafka などプロトコル別受信数
メッセージ受信ネットワーク遅延Graphネットワーク遅延の時系列
全体メッセージ受信量Graph累積メッセージ受信量
メッセージ受信件数 BY 1SECGraph1 秒当たりのメッセージ受信推移
パイプラインウェイティングキューGraphパイプラインキュー深度
パイプラインオフロードキューサイズGraphRocksDB オフロードキュー
パイプラインバリデーション失敗件Graph有効性検証失敗件数
パイプラインワーカー処理時間Graphワーカー処理所要時間
タイムアウトメッセージバックアップ処理Graphタイムアウトメッセージバックアップ件数
パイプラインコレクターGraphコレクター動作状況
ストレージ保存バッファGraph保存バッファサイズ
ストリーミング処理件数GraphWebSocket ストリーミング処理量
ストリーミング動作スレッド件数Graphストリーミングアクティブスレッド
ストリーミングウェイティングキュー件数Graphストリーミングキュー待機件数
ストレージ保存件数GraphDB 保存件数
ストレージバッチ件数Graphバッチ保存件数
ストレージワーカー件数Graph保存ワーカー数
DDS 処理件数GraphKafka DDS 配分件数
非同期スレッドアクティブカウントGraph非同期実行アクティブスレッド
非同期スレッドプールサイズGraphスレッドプールサイズ
診断エラー件数Graph診断エラー発生推移
ロギング例外Graph例外ログ発生推移
GC 時間GraphJVM GC 所要時間
DISK 使用量Graphディスク使用量推移

2. PlantPulse - データレイクハウス

データベースおよびストレージ層のパフォーマンスと状態をモニタリングするダッシュボードです。

DATA-GATEWAY (データゲートウェイ)

パネル説明
TOTAL_QUERY全体クエリ件数
QPS1 秒当たりのクエリ処理量 (Gauge)
QUERY_LATENCYクエリ遅延の時系列
QUERY_LATENCY_MAX最大クエリ遅延
SUCCESS / ERROR成功およびエラー件数

CACHE (REDIS)

パネル説明
CLIENTSRedis クライアント接続数
ALLOCATORメモリアロケーター状態
KEY_COUNT保存キー数
FRAGMENTATIONメモリ断片化率

CEP (ESPER)

パネル説明
JAVA_HEAP_USEDCEP エンジンヒープメモリ
EVENT_INGESTION_RATEイベントインジェスト比率
EQL_CPU_TIMEEPL クエリ CPU 時間
EQL_MAP_COUNTEPL マップカウント
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_SECONDS1 秒当たりの読取/書込
HEAP / DIRECT_MAPPED_MEMORYJVM メモリ
CACHE / CACHE_HIT_RATEキャッシュおよびヒット率
TOTAL_DATA_SIZE全体データサイズ
MEMTABLEMemtable 状態
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_TIMEHTTP 応答時間
TSE_DATASTOREデータストア状態
TSE_QUEUE_PROCESS_COUNTキュー処理件数

ANALYTICS-STORE (SPARK)

パネル説明
MEMORY_USEDSpark メモリ使用量
CONNECTION接続数
OPERATION操作数
REQUEST_RATEリクエスト比率

3. PlantPulse - エッジゲートウェイ

エッジデバイスの状態、PLC 接続、データ受信状況をモニタリングするダッシュボードです。

サマリパネル

パネル説明
全体エッジゲートウェイ登録されたエッジゲートウェイ数
電源 (正常/異常)電源状態正常および異常件数
PLCPLC 接続数
全体データ容量収集された全体データサイズ
1 秒当たり受信合計件数全体エッジの 1 秒当たり受信合計 (Gauge)
データ受信最大遅延最大受信遅延(ms) (Gauge)
ログログ状態

PLC STATUS (PLC 状態)

パネル説明
PLC ピング失敗件数PLC 接続ピング失敗推移
PLC 接続済み / 接続切断PLC 接続状態推移
PLC 値読取成功件数データ読取成功推移
PLC データ読取失敗件数データ読取失敗推移
システムエラー件数トレンドシステムエラー推移

DATA POINT (データポイント)

パネル説明
1 秒当たり全体送信件数 SUM(MPS)全体エッジ 1 秒当たり送信合計
ポイント送信件ポイント送信件数推移
送信ポイントバイト送信データバイト
受信最低/平均/最大遅延受信遅延分布

EDGE H/W (エッジハードウェア)

パネル説明
CPUエッジデバイス CPU 使用率
メモリメモリ使用量
ディスク (SSD)ディスク使用量
ネットワークアップロード/ダウンロードネットワークトラフィック
温度デバイス温度

4. PlantPulse - 統計

日別データ増加量、システムリソースピーク値などの長期統計を追跡するダッシュボードです。システムの長期的な成長トレンドを把握するのに有用です。

パネル説明
全体データ容量全体保存データサイズ
日別データ全体容量日別データ容量推移
日別メッセージ送信量日別メッセージ送信件数
日別データ増加量日別データ増加推移
メッセージ受信件数メッセージ受信件数推移
ネットワーク遅延平均/最大値ネットワーク遅延統計
SSTABLE 増加量Cassandra SSTable 増加推移
最大 DB クライアント接続DB 接続最大値
非同期スレッド最大実行件数非同期処理ピーク
JAVA 最大 GC 時間GC 最大所要時間
CQL 準備最大件数CQL Prepared Statement 最大値
最大パーティションサイズCassandra パーティション最大サイズ
JAVA ヒープ最小余裕サイズJVM ヒープ余裕最小値
非同期スレッド最大待機件数非同期キュー最大待機
最大メモリバッファサイズメモリバッファ最大値
バックアップメッセージ処理件数バックアップ処理件数

5. PlantPulse - メッセージング

MQTT、Kafka、WebSocket メッセージブローカーの状態をモニタリングするダッシュボードです。

SUMMARY (サマリ)

パネル説明
MQTT / KAFKA / WEBSOCKET各ブローカー接続状態
CPUサーバー CPU 使用率
JAVA_HEAPJVM ヒープ使用量
NETWORK_READ_BYTESネットワーク受信バイト

MQTT

パネル説明
CPU_USEDMQTT ブローカー CPU (Gauge)
MEMORY_USEDメモリ使用量
CONNECTIONSクライアント接続数
NETWORK IN/OUTネットワーク入出力
GC_COUNT / GC_TIME_MSGC 回数および所要時間
THREAD_COUNTスレッド数
INCOMMING / OUTGOING受信および送信メッセージ数
RETAINED_COUNTRetained メッセージ数
SUBSCRIPTIONSサブスクリプション数
TOTAL_MESSAGE全体メッセージ数

KAFKA

パネル説明
CPU_USEDKafka ブローカー CPU (Gauge)
MEMORY_USEDメモリ使用量
GLOBAL_TOPICグローバルトピック状況
NETWORK IN/OUTネットワーク入出力
TOPIC_BYTE_IN/OUT_PER_SECトピック別 1 秒当たりバイト
MESSAGE_PER_SEC_MEAN_RATE / 1M_RATE1 秒当たりのメッセージ処理量
NETWORK_REQUEST_FETCHFetch リクエスト件数
OFFLINE_PARTITION_COUNTオフラインパーティション数
ACTIVE_CONTROLLER_COUNTアクティブコントローラー数

WEBSOCKET

パネル説明
CPU_USEDWebSocket サーバー CPU (Gauge)
MEMORY_USEDメモリ使用量
CONNECTION_COUNTWebSocket 接続数
ENQUEUE / DEQUEUEキュー入出力件数

モニタリングツール連携

ELK Stack

コンテナログを Filebeat → Logstash → Elasticsearch → Kibana パイプラインで収集し、ログ検索および分析環境を構築できます。大規模運用環境でログを効率的に管理したい場合は、導入検討をお勧めします。コンテナ標準出力は docker ロギングドライバーで、コンテナ内のファイルログはホストマウント(PLANTPULSE_LOG_DIR)で収集します。