feat(go): expose history batch pending metrics

This commit is contained in:
lingniu
2026-07-03 18:46:40 +08:00
parent 1cbe29c5fc
commit 71905aca3d
6 changed files with 79 additions and 7 deletions

View File

@@ -174,6 +174,8 @@ func processHistoryBatch(ctx context.Context, logger interface {
envelopes = append(envelopes, env)
}
if len(envelopes) > 0 {
setBatchPending(registry, len(messages), len(envelopes))
defer setBatchPending(registry, 0, 0)
started := time.Now()
err := appender.AppendAllBatch(messageCtx, envelopes)
elapsed := time.Since(started)
@@ -230,6 +232,14 @@ func setBatchDuration(registry *metrics.Registry, status string, elapsed time.Du
registry.SetGauge("vehicle_history_batch_flush_duration_ms", metrics.Labels{"status": status}, float64(elapsed.Milliseconds()))
}
func setBatchPending(registry *metrics.Registry, messages int, rows int) {
if registry == nil {
return
}
registry.SetGauge("vehicle_history_batch_pending_messages", nil, float64(messages))
registry.SetGauge("vehicle_history_batch_pending_rows", nil, float64(rows))
}
func addWriterLagMetric(registry *metrics.Registry, message kafka.Message) {
if registry == nil {
return