fix(gateway): sustain qualified media traversal
Verify Data Plane / gateway (push) Successful in 5m4s

This commit is contained in:
sechmachine
2026-07-30 17:36:31 +07:00
parent 78e4709c90
commit df23f5edc1
6 changed files with 63 additions and 30 deletions
+15 -6
View File
@@ -19,6 +19,7 @@ import (
"os"
"os/exec"
"path/filepath"
"strconv"
"strings"
"sync"
"testing"
@@ -71,7 +72,7 @@ type qualificationProcessRecordResult struct {
CPUSeconds float64
PeakHeapBytes uint64
PeakGoroutines int
Mallocs uint64
AllocatedObjects uint64
AllocatedBytes uint64
RecordingElapsed time.Duration
}
@@ -162,11 +163,19 @@ func (r *qualificationProcessRecorder) observe(observation mediaTimingObservatio
func (r *qualificationProcessRecorder) writeTimings() {
defer close(r.timingDone)
line := make([]byte, 0, 96)
for sample := range r.timingSamples {
if r.recordErr == nil {
_, r.recordErr = fmt.Fprintf(r.rawBuffered, "%d,%d,%d,%d\n",
sample.elapsed.Nanoseconds(), sample.observation.QueueDelay.Nanoseconds(),
sample.observation.ProcessingDelay.Nanoseconds(), sample.observation.PacingDelay.Nanoseconds())
line = line[:0]
line = strconv.AppendInt(line, sample.elapsed.Nanoseconds(), 10)
line = append(line, ',')
line = strconv.AppendInt(line, sample.observation.QueueDelay.Nanoseconds(), 10)
line = append(line, ',')
line = strconv.AppendInt(line, sample.observation.ProcessingDelay.Nanoseconds(), 10)
line = append(line, ',')
line = strconv.AppendInt(line, sample.observation.PacingDelay.Nanoseconds(), 10)
line = append(line, '\n')
_, r.recordErr = r.rawBuffered.Write(line)
}
r.samples++
}
@@ -233,8 +242,8 @@ func (r *qualificationProcessRecorder) stop() (qualificationProcessRecordResult,
}
first, last := resources[0], resources[len(resources)-1]
result.CPUSeconds = max(last.CPUSeconds-first.CPUSeconds, 0)
result.Mallocs = last.Mallocs - first.Mallocs
result.AllocatedBytes = last.Allocated - first.Allocated
result.AllocatedObjects = last.AllocatedObjects - first.AllocatedObjects
result.AllocatedBytes = last.AllocatedBytes - first.AllocatedBytes
for _, sample := range resources {
result.PeakHeapBytes = max(result.PeakHeapBytes, sample.HeapBytes)
result.PeakGoroutines = max(result.PeakGoroutines, sample.Goroutines)