feat(go): expose fast writer nats consumer metrics

This commit is contained in:
lingniu
2026-07-03 19:24:02 +08:00
parent c43b87d648
commit d08bf17111
6 changed files with 63 additions and 3 deletions

View File

@@ -7,6 +7,8 @@ import (
"sync"
"testing"
"github.com/nats-io/nats.go"
"lingniu-vehicle-ingest/go/vehicle-gateway/internal/envelope"
"lingniu-vehicle-ingest/go/vehicle-gateway/internal/metrics"
)
@@ -173,6 +175,28 @@ func TestProcessFastBatchExposesPendingMetricsDuringAppend(t *testing.T) {
}
}
func TestRecordFastNATSConsumerInfoMetrics(t *testing.T) {
registry := metrics.NewRegistry()
cfg := config{NATSStream: "VEHICLE_INGEST", NATSDurable: "vehicle-fast-writer"}
recordFastNATSConsumerInfoMetrics(registry, cfg, &nats.ConsumerInfo{
NumPending: 23,
NumAckPending: 5,
NumWaiting: 3,
})
text := registry.Render()
for _, want := range []string{
`vehicle_fast_writer_nats_consumer_pending{consumer="vehicle-fast-writer",stream="VEHICLE_INGEST"} 23`,
`vehicle_fast_writer_nats_consumer_ack_pending{consumer="vehicle-fast-writer",stream="VEHICLE_INGEST"} 5`,
`vehicle_fast_writer_nats_consumer_waiting{consumer="vehicle-fast-writer",stream="VEHICLE_INGEST"} 3`,
} {
if !strings.Contains(text, want) {
t.Fatalf("metrics missing %s:\n%s", want, text)
}
}
}
type recordingFastAppender struct {
count int
batchCount int