指标监控
FlowMQ 以 Prometheus 格式暴露所有运行指标,支持对接 Prometheus + Grafana 等主流监控体系。
指标接入
FlowMQ 通过 HTTP 端点暴露 Prometheus 格式的指标:
GET /v1/prometheus/metrics配置 Prometheus 采集示例:
yaml
scrape_configs:
- job_name: "flowmq"
metrics_path: "/v1/prometheus/metrics"
static_configs:
- targets: ["your-flowmq-host:port"]关键指标
Broker 路由
| 指标 | 类型 | 说明 |
|---|---|---|
broker_messages_published_count | Counter | 发布到 Broker 的消息总数 |
broker_messages_dispatched_count | Counter | 分发到本地订阅者的消息总数 |
broker_messages_forwarded_count | Counter | 转发到其他集群节点的消息总数 |
broker_destinations | Gauge | 已注册的 Destination 数量 |
broker_subscriptions | Gauge | 本地订阅数量 |
broker_stream_subscriptions | Gauge | Stream 订阅数量 |
MQTT
所有 MQTT 指标均携带 namespace 标签,支持按租户维度观测。
| 指标 | 类型 | 说明 |
|---|---|---|
mqtt_connections | Gauge | 当前活跃连接数 |
mqtt_messages_in_count | Counter | 接收消息总数 |
mqtt_messages_out_count | Counter | 发送消息总数 |
mqtt_messages_in_bytes_count | Counter | 接收消息总字节数 |
mqtt_messages_out_bytes_count | Counter | 发送消息总字节数 |
mqtt_messages_dropped_count | Counter | 丢弃消息数(如配额超限) |
Kafka
所有 Kafka 指标均携带 namespace 标签。
| 指标 | 类型 | 说明 |
|---|---|---|
kafka_requests_count | Counter | Kafka 请求总数 |
kafka_messages_in_count | Counter | 接收消息总数 |
kafka_messages_out_count | Counter | 发送消息总数 |
kafka_messages_in_bytes_count | Counter | 接收消息总字节数 |
kafka_messages_out_bytes_count | Counter | 发送消息总字节数 |
对象存储(S3)
| 指标 | 类型 | 说明 |
|---|---|---|
s3_request_count | Counter | S3 请求总数(按 type 标签区分:get、put、delete) |
s3_request_size | Counter | S3 传输字节数(按 type 标签区分) |
s3_request_time | Histogram | S3 请求耗时(ms) |
集群
Gossip 协议
| 指标 | 类型 | 说明 |
|---|---|---|
gossip_cluster_size | Gauge | 集群节点总数 |
gossip_events_originated_count | Counter | 本节点产生的事件数 |
gossip_events_received_unique_count | Counter | 接收到的去重事件数 |
gossip_events_dropped_count | Counter | 丢弃的事件数 |
gossip_event_propagation_hops_count | Histogram | 事件传播跳数分布 |
Anti-Entropy 同步
| 指标 | 类型 | 说明 |
|---|---|---|
anti_entropy_syncs_completed_count | Counter | 同步成功次数 |
anti_entropy_syncs_failed_count | Counter | 同步失败次数 |
anti_entropy_sync_duration_ms | Histogram | 同步耗时(ms) |
anti_entropy_missing_events_detected_count | Counter | 检测到的缺失事件数 |
Stream 存储
| 指标 | 类型 | 说明 |
|---|---|---|
kas3_page_cache_hit_count | Counter | 页缓存命中次数 |
kas3_page_cache_miss_count | Counter | 页缓存未命中次数 |
kas3_page_cache_size | Gauge | 当前页缓存大小(字节) |
kas3_online_running_tasks | Gauge | 正在运行的在线 Compaction 任务数 |
kas3_segment_size | Histogram | Segment 大小分布(字节) |
kas3_retention_time | Histogram | Retention 处理耗时(ms) |
告警建议
| 关注点 | 建议告警条件 |
|---|---|
| 连接异常 | mqtt_connections 骤降 |
| 消息积压 | broker_messages_published_count 持续增长而 broker_messages_dispatched_count 停滞 |
| S3 异常 | s3_request_time P99 飙升或 s3_request_count(type=get/put)出现失败 |
| 集群同步 | anti_entropy_syncs_failed 持续增长 |
| 消息丢弃 | mqtt_messages_dropped_count 持续增长 |
排障思路
- 从业务现象定位到 Topic / Stream
- 查看协议层指标(
mqtt_*/kafka_*)确认连接与消息流是否正常 - 查看路由层指标(
broker_*)确认消息是否被正确分发 - 查看存储层指标(
s3_*/kas3_*)确认持久化是否正常 - 查看集群层指标(
gossip_*/anti_entropy_*)确认节点间同步状态