Add dartboard summarize subcommand#157
Conversation
There was a problem hiding this comment.
Pull request overview
This PR implements a new dartboard summarize CLI subcommand that gathers metrics, profiles, and resource counts from deployed clusters. The implementation includes three standalone Go tools (collect-profile, export-metrics, and resource-counts) that are built and executed by the summarize command. The PR also adds functionality to update the monitoring project annotation during deployment.
Changes:
- Added
dartboard summarizesubcommand to collect diagnostics from clusters - Implemented three new diagnostic tools in Go with corresponding build scripts
- Updated deployment process to annotate cattle-monitoring-system namespace with project ID
- Added unused GetProject function to kubectl package
Reviewed changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 24 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/dartboard/main.go | Registers the new summarize subcommand |
| cmd/dartboard/subcommands/summarize.go | Implements summarize logic: builds and runs diagnostic tools |
| cmd/dartboard/subcommands/deploy.go | Adds updateMonitoringProject function to annotate monitoring namespace |
| internal/kubectl/kubectl.go | Adds GetProject helper function (unused) |
| summarize-tools/collect-profile/* | Go tool and build script for collecting heap/CPU profiles |
| summarize-tools/export-metrics/* | Go tool, build script, and pod manifest for exporting Prometheus metrics |
| summarize-tools/resource-counts/* | Go tool, build script, and legacy bash script for counting Kubernetes resources |
| .gitignore | Adds patterns to ignore generated binaries and result directories |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
git-ival
left a comment
There was a problem hiding this comment.
Hey @MSpencer87 👋
We should probably not have the different parts of summarize offload to separate module binaries. Can we refactor the collect-profile, export-metrics, and resource-counts modules into internal packages instead? Additionally, it would be good to have flags to optionally disable one or more of these when running dartboard summarize.
We can have separate module binaries for each of them, but the code providing the actual functionality should be contained within internal packages so that summarize and any other modules that need it can call the functions directly without relying on a separate binary.
|
We don't need to include all of these in this PR (we can iterate later), but I have some more notes after looking at this again:
|
4770704 to
e49c287
Compare
|
Following up this PR with Updates and improvements for summarize feature |
|
@MSpencer87 Is this ready for a re-review? |
Implements the
dartboard summarizeCLI subcommand used to gather:PR for #116
Please review carefully. Copilot and Gemini were used to assist with bash script conversions