/metrics 已开放但连接数、待投递等指标从未打点 #5

Closed
opened 2026-09-30 10:28:16 +08:00 by nixevol · 1 comment
Owner

严重级

medium

分类

可观测性 / F22

现象

GET /metrics 能返回 Prometheus 文本,访问门禁(共用端口 Bearer / 后台分离端口免令牌)可用,但 nixmsg_connections、nixmsg_deliveries_pending、耗时直方图等保持初值(连接数 0,计数不增)。无法按 PRD F22 用 Prometheus 观察在线数、待投递、投递耗时。

路径

  • cmd/nixmsg/serve.go 第 187–194 行:只把 metricsReg.Handler() 挂到路由,registry 未交给 broker / message / store / auth
  • internal/metrics/metrics.go 第 101–102 行:启动时把 ws/tcp 设为 0
  • 业务包没有任何 WithLabelValues / Set / Observe 调用;仅 internal/metrics/metrics_test.go 在单测里打点

文档条款

  • PRD F22:提供 Prometheus 指标(在线数、待投递数、投递耗时等)
  • DEVELOPMENT 4.3:列出 connections、endpoints、deliveries_pending、messages_scheduled、dispatch/ack 耗时、写队列、哈希排队、errors_total
  • DEVIATIONS P4:注册表给各线打点,A 线负责访问规则。访问规则已实现,打点没有

为何不是故意设计

「指标不含正文和编号」是已确认的隐私选择。端点存在但永远为 0 等于监控未交付,DEVIATIONS 也没写「本版只暴露空指标」。

建议方向(不实现)

把 metrics.Registry 注入连接表(按 ws/tcp 更新连接数)、消息循环(pending/scheduled、到点到推送、ack 耗时)、写队列与 argon2 池。周期采样或事件更新均可。门禁逻辑保持 A3 现状。

## 严重级 medium ## 分类 可观测性 / F22 ## 现象 `GET /metrics` 能返回 Prometheus 文本,访问门禁(共用端口 Bearer / 后台分离端口免令牌)可用,但 `nixmsg_connections`、`nixmsg_deliveries_pending`、耗时直方图等保持初值(连接数 0,计数不增)。无法按 PRD F22 用 Prometheus 观察在线数、待投递、投递耗时。 ## 路径 - `cmd/nixmsg/serve.go` 第 187–194 行:只把 `metricsReg.Handler()` 挂到路由,registry 未交给 broker / message / store / auth - `internal/metrics/metrics.go` 第 101–102 行:启动时把 ws/tcp 设为 0 - 业务包没有任何 `WithLabelValues` / `Set` / `Observe` 调用;仅 `internal/metrics/metrics_test.go` 在单测里打点 ## 文档条款 - PRD F22:提供 Prometheus 指标(在线数、待投递数、投递耗时等) - DEVELOPMENT 4.3:列出 connections、endpoints、deliveries_pending、messages_scheduled、dispatch/ack 耗时、写队列、哈希排队、errors_total - DEVIATIONS P4:注册表给各线打点,A 线负责访问规则。访问规则已实现,打点没有 ## 为何不是故意设计 「指标不含正文和编号」是已确认的隐私选择。端点存在但永远为 0 等于监控未交付,DEVIATIONS 也没写「本版只暴露空指标」。 ## 建议方向(不实现) 把 `metrics.Registry` 注入连接表(按 ws/tcp 更新连接数)、消息循环(pending/scheduled、到点到推送、ack 耗时)、写队列与 argon2 池。周期采样或事件更新均可。门禁逻辑保持 A3 现状。
Author
Owner

已合入并推送 main 4059a1576bc97879b840ec5200defd80bc9eb3f0。
Prometheus 指标已接到连接、投递、确认、写队列与上行错误,沿用既有指标名。

已合入并推送 main `4059a1576bc97879b840ec5200defd80bc9eb3f0`。 Prometheus 指标已接到连接、投递、确认、写队列与上行错误,沿用既有指标名。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nixevol/NixMsg#5