Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release-23.2: cli: include cpu profiles into debug.zip #123243

Merged
merged 3 commits into from
May 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions pkg/base/test_server_args.go
Original file line number Diff line number Diff line change
Expand Up @@ -638,6 +638,13 @@ type TestTenantArgs struct {
// If set, this directory should be cleaned up after the test completes.
HeapProfileDirName string

// CPUProfileDirName is used to initialize the same named field on the
// SQLServer.BaseConfig field. It is the directory name for cpu profiles
// using cpuprofiler. If empty, no cpu profiles will be collected during the
// test. If set, this directory should be cleaned up after the test
// completes.
CPUProfileDirName string

// StartDiagnosticsReporting checks cluster.TelemetryOptOut(), and
// if not disabled starts the asynchronous goroutine that checks for
// CockroachDB upgrades and periodically reports diagnostics to
Expand Down
27 changes: 18 additions & 9 deletions pkg/cli/testdata/zip/partial1
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,15 @@ debug zip --concurrency=1 --cpu-profile-duration=0s /dev/null
[node 1] requesting stacks... received response... writing binary output: debug/nodes/1/stacks.txt... done
[node 1] requesting stacks with labels... received response... writing binary output: debug/nodes/1/stacks_with_labels.txt... done
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response...
[node 1] requesting heap file list: last request failed: rpc error: ...
[node 1] requesting heap file list: creating error output: debug/nodes/1/heapprof.err.txt... done
[node 1] requesting heap profile list... received response...
[node 1] requesting heap profile list: last request failed: rpc error: ...
[node 1] requesting heap profile list: creating error output: debug/nodes/1/heapprof.err.txt... done
[node 1] requesting goroutine dump list... received response...
[node 1] requesting goroutine dump list: last request failed: rpc error: ...
[node 1] requesting goroutine dump list: creating error output: debug/nodes/1/goroutines.err.txt... done
[node 1] requesting cpu profile list... received response...
[node 1] requesting cpu profile list: last request failed: rpc error: ...
[node 1] requesting cpu profile list: creating error output: debug/nodes/1/cpuprof.err.txt... done
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[node 1] requesting ranges... received response... done
Expand Down Expand Up @@ -209,12 +212,15 @@ debug zip --concurrency=1 --cpu-profile-duration=0s /dev/null
[node 2] requesting heap profile... received response...
[node 2] requesting heap profile: last request failed: rpc error: ...
[node 2] requesting heap profile: creating error output: debug/nodes/2/heap.pprof.err.txt... done
[node 2] requesting heap file list... received response...
[node 2] requesting heap file list: last request failed: rpc error: ...
[node 2] requesting heap file list: creating error output: debug/nodes/2/heapprof.err.txt... done
[node 2] requesting heap profile list... received response...
[node 2] requesting heap profile list: last request failed: rpc error: ...
[node 2] requesting heap profile list: creating error output: debug/nodes/2/heapprof.err.txt... done
[node 2] requesting goroutine dump list... received response...
[node 2] requesting goroutine dump list: last request failed: rpc error: ...
[node 2] requesting goroutine dump list: creating error output: debug/nodes/2/goroutines.err.txt... done
[node 2] requesting cpu profile list... received response...
[node 2] requesting cpu profile list: last request failed: rpc error: ...
[node 2] requesting cpu profile list: creating error output: debug/nodes/2/cpuprof.err.txt... done
[node 2] requesting log files list... received response...
[node 2] requesting log files list: last request failed: rpc error: ...
[node 2] requesting log files list: creating error output: debug/nodes/2/logs.err.txt... done
Expand Down Expand Up @@ -251,12 +257,15 @@ debug zip --concurrency=1 --cpu-profile-duration=0s /dev/null
[node 3] requesting stacks... received response... writing binary output: debug/nodes/3/stacks.txt... done
[node 3] requesting stacks with labels... received response... writing binary output: debug/nodes/3/stacks_with_labels.txt... done
[node 3] requesting heap profile... received response... writing binary output: debug/nodes/3/heap.pprof... done
[node 3] requesting heap file list... received response...
[node 3] requesting heap file list: last request failed: rpc error: ...
[node 3] requesting heap file list: creating error output: debug/nodes/3/heapprof.err.txt... done
[node 3] requesting heap profile list... received response...
[node 3] requesting heap profile list: last request failed: rpc error: ...
[node 3] requesting heap profile list: creating error output: debug/nodes/3/heapprof.err.txt... done
[node 3] requesting goroutine dump list... received response...
[node 3] requesting goroutine dump list: last request failed: rpc error: ...
[node 3] requesting goroutine dump list: creating error output: debug/nodes/3/goroutines.err.txt... done
[node 3] requesting cpu profile list... received response...
[node 3] requesting cpu profile list: last request failed: rpc error: ...
[node 3] requesting cpu profile list: creating error output: debug/nodes/3/cpuprof.err.txt... done
[node 3] requesting log files list... received response... done
[node ?] ? log files found
[node 3] requesting ranges... received response... done
Expand Down
18 changes: 12 additions & 6 deletions pkg/cli/testdata/zip/partial1_excluded
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,15 @@ debug zip /dev/null --concurrency=1 --exclude-nodes=2 --cpu-profile-duration=0
[node 1] requesting stacks... received response... writing binary output: debug/nodes/1/stacks.txt... done
[node 1] requesting stacks with labels... received response... writing binary output: debug/nodes/1/stacks_with_labels.txt... done
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response...
[node 1] requesting heap file list: last request failed: rpc error: ...
[node 1] requesting heap file list: creating error output: debug/nodes/1/heapprof.err.txt... done
[node 1] requesting heap profile list... received response...
[node 1] requesting heap profile list: last request failed: rpc error: ...
[node 1] requesting heap profile list: creating error output: debug/nodes/1/heapprof.err.txt... done
[node 1] requesting goroutine dump list... received response...
[node 1] requesting goroutine dump list: last request failed: rpc error: ...
[node 1] requesting goroutine dump list: creating error output: debug/nodes/1/goroutines.err.txt... done
[node 1] requesting cpu profile list... received response...
[node 1] requesting cpu profile list: last request failed: rpc error: ...
[node 1] requesting cpu profile list: creating error output: debug/nodes/1/cpuprof.err.txt... done
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[node 1] requesting ranges... received response... done
Expand Down Expand Up @@ -154,12 +157,15 @@ debug zip /dev/null --concurrency=1 --exclude-nodes=2 --cpu-profile-duration=0
[node 3] requesting stacks... received response... writing binary output: debug/nodes/3/stacks.txt... done
[node 3] requesting stacks with labels... received response... writing binary output: debug/nodes/3/stacks_with_labels.txt... done
[node 3] requesting heap profile... received response... writing binary output: debug/nodes/3/heap.pprof... done
[node 3] requesting heap file list... received response...
[node 3] requesting heap file list: last request failed: rpc error: ...
[node 3] requesting heap file list: creating error output: debug/nodes/3/heapprof.err.txt... done
[node 3] requesting heap profile list... received response...
[node 3] requesting heap profile list: last request failed: rpc error: ...
[node 3] requesting heap profile list: creating error output: debug/nodes/3/heapprof.err.txt... done
[node 3] requesting goroutine dump list... received response...
[node 3] requesting goroutine dump list: last request failed: rpc error: ...
[node 3] requesting goroutine dump list: creating error output: debug/nodes/3/goroutines.err.txt... done
[node 3] requesting cpu profile list... received response...
[node 3] requesting cpu profile list: last request failed: rpc error: ...
[node 3] requesting cpu profile list: creating error output: debug/nodes/3/cpuprof.err.txt... done
[node 3] requesting log files list... received response... done
[node ?] ? log files found
[node 3] requesting ranges... received response... done
Expand Down
18 changes: 12 additions & 6 deletions pkg/cli/testdata/zip/partial2
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,15 @@ debug zip --concurrency=1 --cpu-profile-duration=0 /dev/null
[node 1] requesting stacks... received response... writing binary output: debug/nodes/1/stacks.txt... done
[node 1] requesting stacks with labels... received response... writing binary output: debug/nodes/1/stacks_with_labels.txt... done
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response...
[node 1] requesting heap file list: last request failed: rpc error: ...
[node 1] requesting heap file list: creating error output: debug/nodes/1/heapprof.err.txt... done
[node 1] requesting heap profile list... received response...
[node 1] requesting heap profile list: last request failed: rpc error: ...
[node 1] requesting heap profile list: creating error output: debug/nodes/1/heapprof.err.txt... done
[node 1] requesting goroutine dump list... received response...
[node 1] requesting goroutine dump list: last request failed: rpc error: ...
[node 1] requesting goroutine dump list: creating error output: debug/nodes/1/goroutines.err.txt... done
[node 1] requesting cpu profile list... received response...
[node 1] requesting cpu profile list: last request failed: rpc error: ...
[node 1] requesting cpu profile list: creating error output: debug/nodes/1/cpuprof.err.txt... done
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[node 1] requesting ranges... received response... done
Expand Down Expand Up @@ -153,12 +156,15 @@ debug zip --concurrency=1 --cpu-profile-duration=0 /dev/null
[node 3] requesting stacks... received response... writing binary output: debug/nodes/3/stacks.txt... done
[node 3] requesting stacks with labels... received response... writing binary output: debug/nodes/3/stacks_with_labels.txt... done
[node 3] requesting heap profile... received response... writing binary output: debug/nodes/3/heap.pprof... done
[node 3] requesting heap file list... received response...
[node 3] requesting heap file list: last request failed: rpc error: ...
[node 3] requesting heap file list: creating error output: debug/nodes/3/heapprof.err.txt... done
[node 3] requesting heap profile list... received response...
[node 3] requesting heap profile list: last request failed: rpc error: ...
[node 3] requesting heap profile list: creating error output: debug/nodes/3/heapprof.err.txt... done
[node 3] requesting goroutine dump list... received response...
[node 3] requesting goroutine dump list: last request failed: rpc error: ...
[node 3] requesting goroutine dump list: creating error output: debug/nodes/3/goroutines.err.txt... done
[node 3] requesting cpu profile list... received response...
[node 3] requesting cpu profile list: last request failed: rpc error: ...
[node 3] requesting cpu profile list: creating error output: debug/nodes/3/cpuprof.err.txt... done
[node 3] requesting log files list... received response... done
[node ?] ? log files found
[node 3] requesting ranges... received response... done
Expand Down
4 changes: 3 additions & 1 deletion pkg/cli/testdata/zip/testzip
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,12 @@ debug zip --concurrency=1 --cpu-profile-duration=1s /dev/null
[node 1] requesting stacks... received response... writing binary output: debug/nodes/1/stacks.txt... done
[node 1] requesting stacks with labels... received response... writing binary output: debug/nodes/1/stacks_with_labels.txt... done
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response... done
[node 1] requesting heap profile list... received response... done
[node ?] ? heap profiles found
[node 1] requesting goroutine dump list... received response... done
[node ?] ? goroutine dumps found
[node 1] requesting cpu profile list... received response... done
[node ?] ? cpu profiles found
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[node 1] requesting ranges... received response... done
Expand Down
45 changes: 30 additions & 15 deletions pkg/cli/testdata/zip/testzip_concurrent
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,11 @@ zip
[node 1] node status...
[node 1] node status: done
[node 1] node status: writing JSON output: debug/nodes/1/status.json...
[node 1] requesting cpu profile list...
[node 1] requesting cpu profile list: creating error output: debug/nodes/1/cpuprof.err.txt...
[node 1] requesting cpu profile list: done
[node 1] requesting cpu profile list: last request failed: rpc error: ...
[node 1] requesting cpu profile list: received response...
[node 1] requesting data for debug/nodes/1/details...
[node 1] requesting data for debug/nodes/1/details: done
[node 1] requesting data for debug/nodes/1/details: received response...
Expand All @@ -274,11 +279,11 @@ zip
[node 1] requesting goroutine dump list: done
[node 1] requesting goroutine dump list: last request failed: rpc error: ...
[node 1] requesting goroutine dump list: received response...
[node 1] requesting heap file list...
[node 1] requesting heap file list: creating error output: debug/nodes/1/heapprof.err.txt...
[node 1] requesting heap file list: done
[node 1] requesting heap file list: last request failed: rpc error: ...
[node 1] requesting heap file list: received response...
[node 1] requesting heap profile list...
[node 1] requesting heap profile list: creating error output: debug/nodes/1/heapprof.err.txt...
[node 1] requesting heap profile list: done
[node 1] requesting heap profile list: last request failed: rpc error: ...
[node 1] requesting heap profile list: received response...
[node 1] requesting heap profile...
[node 1] requesting heap profile: done
[node 1] requesting heap profile: received response...
Expand Down Expand Up @@ -370,6 +375,11 @@ zip
[node 2] node status...
[node 2] node status: done
[node 2] node status: writing JSON output: debug/nodes/2/status.json...
[node 2] requesting cpu profile list...
[node 2] requesting cpu profile list: creating error output: debug/nodes/2/cpuprof.err.txt...
[node 2] requesting cpu profile list: done
[node 2] requesting cpu profile list: last request failed: rpc error: ...
[node 2] requesting cpu profile list: received response...
[node 2] requesting data for debug/nodes/2/details...
[node 2] requesting data for debug/nodes/2/details: done
[node 2] requesting data for debug/nodes/2/details: received response...
Expand All @@ -387,11 +397,11 @@ zip
[node 2] requesting goroutine dump list: done
[node 2] requesting goroutine dump list: last request failed: rpc error: ...
[node 2] requesting goroutine dump list: received response...
[node 2] requesting heap file list...
[node 2] requesting heap file list: creating error output: debug/nodes/2/heapprof.err.txt...
[node 2] requesting heap file list: done
[node 2] requesting heap file list: last request failed: rpc error: ...
[node 2] requesting heap file list: received response...
[node 2] requesting heap profile list...
[node 2] requesting heap profile list: creating error output: debug/nodes/2/heapprof.err.txt...
[node 2] requesting heap profile list: done
[node 2] requesting heap profile list: last request failed: rpc error: ...
[node 2] requesting heap profile list: received response...
[node 2] requesting heap profile...
[node 2] requesting heap profile: done
[node 2] requesting heap profile: received response...
Expand Down Expand Up @@ -483,6 +493,11 @@ zip
[node 3] node status...
[node 3] node status: done
[node 3] node status: writing JSON output: debug/nodes/3/status.json...
[node 3] requesting cpu profile list...
[node 3] requesting cpu profile list: creating error output: debug/nodes/3/cpuprof.err.txt...
[node 3] requesting cpu profile list: done
[node 3] requesting cpu profile list: last request failed: rpc error: ...
[node 3] requesting cpu profile list: received response...
[node 3] requesting data for debug/nodes/3/details...
[node 3] requesting data for debug/nodes/3/details: done
[node 3] requesting data for debug/nodes/3/details: received response...
Expand All @@ -500,11 +515,11 @@ zip
[node 3] requesting goroutine dump list: done
[node 3] requesting goroutine dump list: last request failed: rpc error: ...
[node 3] requesting goroutine dump list: received response...
[node 3] requesting heap file list...
[node 3] requesting heap file list: creating error output: debug/nodes/3/heapprof.err.txt...
[node 3] requesting heap file list: done
[node 3] requesting heap file list: last request failed: rpc error: ...
[node 3] requesting heap file list: received response...
[node 3] requesting heap profile list...
[node 3] requesting heap profile list: creating error output: debug/nodes/3/heapprof.err.txt...
[node 3] requesting heap profile list: done
[node 3] requesting heap profile list: last request failed: rpc error: ...
[node 3] requesting heap profile list: received response...
[node 3] requesting heap profile...
[node 3] requesting heap profile: done
[node 3] requesting heap profile: received response...
Expand Down
4 changes: 3 additions & 1 deletion pkg/cli/testdata/zip/testzip_exclude_goroutine_stacks
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,12 @@ debug zip --concurrency=1 --cpu-profile-duration=1s --include-goroutine-stacks=f
[node 1] requesting data for debug/nodes/1/enginestats... received response... writing JSON output: debug/nodes/1/enginestats.json... done
[node 1] Skipping fetching goroutine stacks. Enable via the --include-goroutine-stacks flag.
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response... done
[node 1] requesting heap profile list... received response... done
[node ?] ? heap profiles found
[node 1] requesting goroutine dump list... received response... done
[node ?] ? goroutine dumps found
[node 1] requesting cpu profile list... received response... done
[node ?] ? cpu profiles found
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[node 1] requesting ranges... received response... done
Expand Down
4 changes: 3 additions & 1 deletion pkg/cli/testdata/zip/testzip_exclude_range_info
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,12 @@ debug zip --concurrency=1 --cpu-profile-duration=1s --include-range-info=false /
[node 1] requesting stacks... received response... writing binary output: debug/nodes/1/stacks.txt... done
[node 1] requesting stacks with labels... received response... writing binary output: debug/nodes/1/stacks_with_labels.txt... done
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response... done
[node 1] requesting heap profile list... received response... done
[node ?] ? heap profiles found
[node 1] requesting goroutine dump list... received response... done
[node ?] ? goroutine dumps found
[node 1] requesting cpu profile list... received response... done
[node ?] ? cpu profiles found
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[cluster] pprof summary script... writing binary output: debug/pprof-summary.sh... done
4 changes: 3 additions & 1 deletion pkg/cli/testdata/zip/testzip_external_process_virtualization
Original file line number Diff line number Diff line change
Expand Up @@ -150,10 +150,12 @@ debug zip --concurrency=1 --cpu-profile-duration=1s /dev/null
[node 1] requesting stacks... received response... writing binary output: debug/nodes/1/stacks.txt... done
[node 1] requesting stacks with labels... received response... writing binary output: debug/nodes/1/stacks_with_labels.txt... done
[node 1] requesting heap profile... received response... writing binary output: debug/nodes/1/heap.pprof... done
[node 1] requesting heap file list... received response... done
[node 1] requesting heap profile list... received response... done
[node ?] ? heap profiles found
[node 1] requesting goroutine dump list... received response... done
[node ?] ? goroutine dumps found
[node 1] requesting cpu profile list... received response... done
[node ?] ? cpu profiles found
[node 1] requesting log files list... received response... done
[node ?] ? log files found
[node 1] requesting ranges... received response...
Expand Down