跳到主要内容

系统监控

概览​

PlantPulse 的监控由 3 个层级 组成。通过结合使用各层级的工具,可以尽早发现问题并迅速做出响应。

层级职责频率
L1 主机/栈容器状态·health,资源使用量,运行状态响应每分钟~5分钟 (自动/手动)
L2 平台内置各模块业务指标 (吞吐量, lag, 队列深度, JVM)实时
L3 外部监控长期趋势,报警,多主机综合视图实时

平台服务模块​

PlantPulse 由多个以 plantpulse- 为前缀的服务模块组成。模块与容器并非 1:1 关系 — 六个应用程序各有一个容器,其余基础架构模块则共同运行在一个 plantpulse-datalake 容器中。

位置模块
独立容器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-server80 / 443Web 服务器及管理控制台, REST API
plantpulse-cep7400 / 7401复杂事件处理引擎 (Aster CEP)
plantpulse-batch9500批处理服务器
plantpulse-data-gateway5500数据网关 (基于 HTTP REST 的数据查询)
plantpulse-datalake-admin-api4950 (HTTPS)管理控制台 API 兼监控代理。唯一发布到主机的运行状态端口
plantpulse-warehouse-web9600数据仓库
plantpulse-plugin-opcua11004 / 11005OPC-UA 服务器插件
plantpulse-plugin-aasx(主机未公开)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内存缓存
RustFS9000对象存储 (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连接池, 查询性能, 磁盘
Aster TSDB集群状态, 延迟, 压缩
Redis内存, 命中率, 连接数
引擎管道吞吐量, 队列深度, 错误率
网络OPC 连接, WebSocket, 延迟

Web 控制台监控​

系统监控画面​

路径: /monitoring/index

以仪表板形式显示实时系统状态。如果各项指标超出下表中的 «正常范围》,可能会导致性能下降,请及时核查。

指标说明正常范围
CPU 使用率服务器 CPU 负载< 70%
JVM 堆内存堆使用量/最大值< 80%
活动线程运行中的线程数< 500
MPS (Messages/sec)每秒消息处理数低于设定的速率限制
管道队列等待中的消息数< 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 failedAster TSDB 连接失败 — 请检查集群状态
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;"

Aster TSDB​

# 클러스터 상태
nodetool status

# 테이블별 통계
nodetool tablestats pp

# 컴팩션 상태
nodetool compactionstats

# GC 로그 확인
nodetool gcstats

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

Aster TSDB 状态代码:

状态说明
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.mps每秒消息处理数
cache.tag.count已缓存标签数
storage.cassandra.statusAster 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) 中,此端点表示 ready 含义 — 仅进程 (Context) 存活并不报告 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":{...}}
  • ready — 仅在准备就绪时 200 UP。若在启动过程中则 503 STARTING,启动完成后若部分依赖项掉线则 503 DEGRADED 分类报告。
  • 无依赖 Ping — checks 仅读取各服务已维护的 内存状态标志 (禁止实时 DB 查询 / 网络 Ping — 避免轮询给数据存储带来负载)。
  • 匿名访问 — 无需认证即可调用 (用于运维巡检 / 部署自动化验证)。
  • 禁止缓存 — 始终包含 Cache-Control: no-cache 系列响应头。
  • 响应字段包含 status / service (制品名称) / ts (epoch ms) + ready 升级服务的 checks (按服务分类的检查详情)。
服务运行状态 URL含义checks / 备注
serverhttp://HOST:80/api/healthreadyengine — 引擎生命周期状态 (仅在前阶段启动完成 RUNNING 时为 UP)
batchhttp://HOST:9500/api/healthreadytimer (批处理管道运行) / redis (InMemory 连接)
cephttp://HOST:7400/api/healthreadyengine (CEP 引擎+消费者+恢复完成) / redis (InMemory 连接)
sqlhttps://HOST:4001/api/healthreadydatabase_manager (DB 管理器初始化完成) — 通过 HTTPS 提供
data-gatewayhttp://HOST:5500/api/healthreadydatabase / inmemory / query_log — 仅此路径在 HTTPS 强制 (CONFIDENTIAL) 中排除,允许 localhost HTTP 探针
warehouse (s3 服务)http://HOST:9600/api/healthreadytemporal — Temporal 工作线程注册完成情况。未注册则 STARTING + 503 (Web 服务器先启动,工作线程随后启动,故启动直后 503 为正常)。含公共 3 个字段 + 系统/JVM 指标
plugin — AAS V3http://HOST:8090/api/healthliveness未升级至 ready
plugin — OPC-UA Browse UIhttp://HOST:12780/api/healthliveness端口设置 opc.ua.browser.ui.port (默认 12780)

用途有两种:

  1. 运维巡检 — 手动核查, crontab / 外部监控的 ready 探针
  2. CI 部署自动化验证 — deploy:dev 任务在部署后轮询 (Poll) 此 URL (DEPLOY_HEALTH, 240秒) 以确认启动 (详见配置及部署指南)。由于表示 ready 含义,启动期间 503 为正常,轮询将等待其转换为 UP。

角色区分: plantpulse-datalake-admin-api (:4950) 是采集并公开主机 / JVM / 模块指标的 基础架构监控代理,而 /api/health 是各 Web 应用自身提供的 ready 端点。两者并非替代关系,而是互补关系。

在容器环境中,每个应用的 ready 状态已被 compose 的 healthcheck 判定,因此运维人员可以通过 bin/status.sh 一行命令同时获取 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. PlantPulse - 服务器​

核心仪表板,用于一目了然地掌握平台服务器的整体状态。

SUMMARY (摘要)

面板类型说明
VERSIONStat平台版本信息
服务器启动日期Stat引擎首次启动日期时间
CPU 负载Gauge服务器 CPU 使用率
内存使用率Gauge服务器内存使用率
每秒接收数Stat每秒消息接收量 (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 1SECGraph每秒消息接收趋势
管道等待队列Graph管道队列深度
管道卸载队列大小GraphRocksDB 卸载队列
管道验证失败数Graph有效性验证失败条数
管道工作线程处理时间GraphWorker 处理耗时
超时消息备份处理Graph超时消息备份条数
管道采集器Graph采集器运行现状
存储保存缓冲区Graph保存缓冲区大小
流处理条数GraphWebSocket 流处理量
流运行线程数Graph流活动线程
流等待队列数Graph流队列等待条数
存储保存数GraphDB 保存条数
存储批次数Graph批次保存条数
存储工作线程数Graph保存 Worker 数
DDS 处理数GraphKafka DDS 分发数
异步线程活动计数Graph异步执行活动线程
异步线程池大小Graph线程池大小
诊断错误数Graph诊断错误发生趋势
日志异常Graph异常日志发生趋势
GC 时间GraphJVM GC 耗时
DISK 使用量Graph磁盘使用量趋势

2. PlantPulse - 数据湖仓​

用于监控数据库及存储层性能和状态的仪表板。

DATA-GATEWAY (数据网关)

面板说明
TOTAL_QUERY总查询数
QPS每秒查询处理量 (Gauge)
QUERY_LATENCY查询延迟时序
QUERY_LATENCY_MAX最大查询延迟
SUCCESS / ERROR成功及失败条数

CACHE (REDIS)

面板说明
CLIENTSRedis 客户端连接数
ALLOCATOR内存分配器状态
KEY_COUNT已存储键数
FRAGMENTATION内存碎片率

CEP

面板说明
JAVA_HEAP_USEDCEP 引擎堆内存
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_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 连接数
总数据容量采集的总数据大小
每秒接收总和数所有边缘每秒接收总和 (Gauge)
数据接收最大延迟最大接收延迟 (ms) (Gauge)
日志日志状态

PLC STATUS (PLC 状态)

面板说明
PLC Ping 失败数PLC 连接 Ping 失败趋势
PLC 已连接 / 已断开PLC 连接状态趋势
PLC 值读取成功数数据读取成功趋势
PLC 数据读取失败数数据读取失败趋势
系统错误数趋势系统错误趋势

DATA POINT (数据点)

面板说明
每秒总发送数 SUM(MPS)所有边缘每秒发送总和
传点条数传点条数趋势
传点字节数传输数据字节
接收最低/平均/最大延迟接收延迟分布

EDGE H/W (边缘硬件)

面板说明
CPU边缘设备 CPU 使用率
内存内存使用量
磁盘 (SSD)磁盘使用量
网络上传/下载网络流量
温度设备温度

4. PlantPulse - 统计​

用于追踪日数据增量、系统资源峰值等长期统计信息的仪表板。有助于掌握系统的长期增长趋势。

面板说明
总数据容量总存储数据大小
日总数据容量日数据容量趋势
日消息传输量日消息传输条数
日数据增量日数据增长趋势
消息接收数消息接收数趋势
网络延迟平均/最大值网络延迟统计
SSTABLE 增量Aster TSDB SSTable 增长趋势
最大 DB 客户端连接DB 连接最大值
异步线程最大执行数异步处理峰值
JAVA 最大 GC 时间GC 最大耗时
CQL 预备最大数CQL Prepared Statement 最大值
最大分区大小Aster TSDB 分区最大大小
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全局 Topic 现状
NETWORK IN/OUT网络输入输出
TOPIC_BYTE_IN/OUT_PER_SECTopic 每秒字节数
MESSAGE_PER_SEC_MEAN_RATE / 1M_RATE每秒消息处理量
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) 采集。