Metrics 与可观测性
可观测性不是“出了问题再加日志”,而是网关架构的一部分:你需要在高吞吐、网络抖动、设备异常的常态下,仍然能回答“哪里慢、为什么慢、丢没丢、还能撑多久”。
三类必须具备的观测能力
- Logs(tracing):带上下文字段的结构化日志
- Metrics:可聚合的数值指标(吞吐/延迟/队列/错误)
- Health:健康检查与依赖状态(northward/storage/certs)
关键指标(建议最小集)
- 采集侧
- points/s、frames/s
- 解析错误率(按 driver/device 维度)
- 设备在线率、重连次数
- 队列与背压
- queue depth(每条关键队列)
- drops(丢弃数)/ blocked time(阻塞时间)
- 北向链路
- publish success rate
- retries/backoff count
- end-to-end latency(采集→上报)
- 资源
- CPU/内存
- 连接数、任务数、句柄数
最佳实践:每条“有界队列”必须配套指标,否则背压是否真正生效无法验证。
日志字段建议
至少包含:
gateway_iddevice_iddriverchanneltrace_id(或 request_id/command_id)
告警建议(起步版)
- 队列长期接近满:下游拥塞或处理能力不足
- publish 成功率下降:网络/鉴权/平台侧限流
- 解析错误率升高:线路噪声、设备异常、参数不匹配
