Skip to content

Commit a3e3624

Browse files
adding label to durable emitter emit latency metric (#2191)
1 parent cd99794 commit a3e3624

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

pkg/durableemitter/durable_emitter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ func (d *DurableEmitter) Emit(ctx context.Context, body []byte, attrKVs ...any)
428428
h.OnEmitInsert(insElapsed, res.err)
429429
}
430430
if d.metrics != nil {
431-
d.metrics.emitDuration.Record(ctx, insElapsed.Seconds())
431+
d.metrics.recordEmitDuration(ctx, insElapsed, res.err)
432432
if res.err != nil {
433433
d.metrics.emitFail.Add(ctx, 1)
434434
} else {
@@ -447,7 +447,7 @@ func (d *DurableEmitter) Emit(ctx context.Context, body []byte, attrKVs ...any)
447447
h.OnEmitInsert(insElapsed, err)
448448
}
449449
if d.metrics != nil {
450-
d.metrics.emitDuration.Record(ctx, insElapsed.Seconds())
450+
d.metrics.recordEmitDuration(ctx, insElapsed, err)
451451
if err != nil {
452452
d.metrics.emitFail.Add(ctx, 1)
453453
} else {

pkg/durableemitter/durable_emitter_metrics.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func newDurableEmitterMetrics(meter metric.Meter) (*durableEmitterMetrics, error
101101
if m.emitDuration, err = meter.Float64Histogram(
102102
"durable_emitter.emit.duration",
103103
metric.WithUnit("s"),
104-
metric.WithDescription("Emit insert path duration (seconds, fractional; aligns with Prometheus _duration_seconds)"),
104+
metric.WithDescription("Emit insert path duration (seconds, fractional; aligns with Prometheus _duration_seconds); labels: error={true,false}"),
105105
durationBuckets,
106106
); err != nil {
107107
return nil, err
@@ -319,6 +319,15 @@ func (m *durableEmitterMetrics) recordQueueStats(ctx context.Context, st Durable
319319
}
320320
}
321321

322+
func (m *durableEmitterMetrics) recordEmitDuration(ctx context.Context, elapsed time.Duration, err error) {
323+
if m == nil {
324+
return
325+
}
326+
m.emitDuration.Record(ctx, elapsed.Seconds(),
327+
metric.WithAttributes(attribute.Bool("error", err != nil)),
328+
)
329+
}
330+
322331
func (m *durableEmitterMetrics) recordPublish(ctx context.Context, elapsed time.Duration, phase string, err error) {
323332
if m == nil {
324333
return

0 commit comments

Comments
 (0)