fix(go.d): correct buf truncate in processMetrics (#21008)
Ilya Mashchenko committed
Sep 18, 2025 at 23:15 UTC
ff4e467ce9fbbf78f3fc03a67532e58f1fd21c9d
1 file changed
+3
-2
src/go/plugin/go.d/agent/module/job.go
+3
-2
@@ -450,7 +450,7 @@ func (j *Job) processMetrics(metrics map[string]int64, startTime time.Time, sinc
450
451
elapsed := int64(durationTo(time.Since(startTime), time.Millisecond))
452
453
- var i, updated int
453
+ var i, updated, created int
454
for _, chart := range *j.charts {
455
if !chart.created || createChart {
456
typeID := fmt.Sprintf("%s.%s", j.FullName(), chart.ID)
@@ -460,6 +460,7 @@ func (j *Job) processMetrics(metrics map[string]int64, startTime time.Time, sinc
460
chart.ignore = true
461
}
462
j.createChart(chart)
463
+ created++
464
}
465
if chart.remove {
466
continue
@@ -475,7 +476,7 @@ func (j *Job) processMetrics(metrics map[string]int64, startTime time.Time, sinc
476
}
477
*j.charts = (*j.charts)[:i]
478
478
- if updated == 0 && j.vnode.GUID != "" {
479
+ if updated == 0 && created == 0 && j.vnode.GUID != "" {
480
j.buf.Truncate(bufLenBeforeHost)
481
}
482