From 8d37113049ac56956e83c3752c6c249af9a4b986 Mon Sep 17 00:00:00 2001 From: Lucas Manning Date: Thu, 25 Jan 2024 13:30:14 -0800 Subject: [PATCH] Enable collection of go traces during benchmarks. PiperOrigin-RevId: 601548685 --- pkg/test/dockerutil/dockerutil.go | 1 + pkg/test/dockerutil/profile.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/pkg/test/dockerutil/dockerutil.go b/pkg/test/dockerutil/dockerutil.go index 33c9e1094..4e0509af3 100644 --- a/pkg/test/dockerutil/dockerutil.go +++ b/pkg/test/dockerutil/dockerutil.go @@ -56,6 +56,7 @@ var ( pprofCPU = flag.Bool("pprof-cpu", false, "enables CPU profiling with runsc debug") pprofHeap = flag.Bool("pprof-heap", false, "enables heap profiling with runsc debug") pprofMutex = flag.Bool("pprof-mutex", false, "enables mutex profiling with runsc debug") + trace = flag.Bool("go-trace", false, "enables collecting a go trace with runsc debug") // This matches the string "native.cgroupdriver=systemd" (including optional // whitespace), which can be found in a docker daemon configuration file's diff --git a/pkg/test/dockerutil/profile.go b/pkg/test/dockerutil/profile.go index 47a051d85..11a9229d9 100644 --- a/pkg/test/dockerutil/profile.go +++ b/pkg/test/dockerutil/profile.go @@ -92,6 +92,9 @@ func (p *profile) createProcess(c *Container) error { outputPath := filepath.Join(p.BasePath, fmt.Sprintf("%s.pprof", profileArg)) args = append(args, fmt.Sprintf("--profile-%s=%s", profileArg, outputPath)) } + if *trace { + args = append(args, fmt.Sprintf("--trace=%s", filepath.Join(p.BasePath, "sentry.trace"))) + } args = append(args, fmt.Sprintf("--duration=%s", p.Duration)) // Or until container exits. args = append(args, fmt.Sprintf("--delay=%s", p.Duration)) // Ditto. args = append(args, c.ID())