galileoctl is a command-line tool for managing Galileo Platform deployments. It provides debugging utilities, diagnostic bundle collection, and troubleshooting tools for Galileo stacks running on Kubernetes.
- No kubectl dependency — uses the Kubernetes client-go API directly
- Parallel collection — fetches logs, events, and metrics concurrently across services and pods
- Complete diagnostic bundles — one command to collect everything into a timestamped archive
- Grafana integration — captures dashboards as JSON from a live Grafana instance
- Prometheus metrics — queries core Galileo metrics and saves results as JSON
- Database inspection — queries ClickHouse data and query logs via port-forward
- Preflight checks — validates cluster access and namespace configuration before running
brew tap rungalileo/galileoctl
brew install galileoctlDownload the latest binary from GitHub Releases and place it in your PATH.
Supported platforms:
| OS | Architecture |
|---|---|
| Linux | amd64 |
| macOS | arm64 |
| Windows | amd64 |
Prerequisites:
- Go 1.25+
- Valid kubeconfig (
~/.kube/configorKUBECONFIGenv var) - Chrome/Chromium — only required for
debug grafanascreenshot capture
git clone https://github.com/rungalileo/galileoctl.git
cd galileoctl
./build.shThe binary is written to ./galileoctl.
To cross-compile for a specific platform:
GOOS=linux GOARCH=amd64 go build -o galileoctl-linux-amd64
GOOS=darwin GOARCH=arm64 go build -o galileoctl-darwin-arm64
GOOS=windows GOARCH=amd64 go build -o galileoctl-windows-amd64.exegalileoctl [command]
Available Commands:
debug Debugging and troubleshooting commands
version Print version, commit hash, and build date
completion Generate shell autocompletion script
galileoctl debug [command] -n <namespace>
All debug subcommands accept -n / --namespace to target a specific Kubernetes namespace. When omitted, the namespace defaults to galileo.
Collect logs from all critical Galileo services.
galileoctl debug logs -n galileo
galileoctl debug logs -n galileo --since 2h
galileoctl debug logs -n galileo --since 30m --tail 500
galileoctl debug logs -n galileo --verbose error| Flag | Description | Default |
|---|---|---|
-n, --namespace |
Kubernetes namespace | galileo |
--since |
Return logs newer than duration (e.g. 5s, 2m, 3h) |
1h |
--tail |
Number of log lines per service | 200 |
-v, --verbose |
Filter by level: debug, info, warn, error |
info |
Collect Kubernetes events from the namespace.
galileoctl debug events -n galileo
galileoctl debug events -n galileo --since 6h --verbose warn| Flag | Description | Default |
|---|---|---|
-n, --namespace |
Kubernetes namespace | galileo |
--since |
Return events newer than duration | 24h |
-v, --verbose |
Filter by level: debug, info, warn, error |
info |
Test API connectivity between services in the namespace.
galileoctl debug connections -n galileo
galileoctl debug connections -n galileo --tail 200| Flag | Description | Default |
|---|---|---|
-n, --namespace |
Kubernetes namespace | galileo |
--tail |
Log lines to show per container | 100 |
Query Prometheus for core Galileo metrics.
galileoctl debug metrics -n galileo
galileoctl debug metrics -n galileo --since 2h| Flag | Description | Default |
|---|---|---|
-n, --namespace |
Kubernetes namespace | galileo |
--since |
Time window for metric queries | 1h |
--chrome-path |
Override path to Chrome/Chromium binary | — |
Port-forward to Grafana, list all dashboards via the Grafana API, and capture each as JSON into a timestamped directory.
galileoctl debug grafana -n galileo
galileoctl debug grafana -n galileo --grafana-username admin --grafana-password secret| Flag | Description | Default |
|---|---|---|
-n, --namespace |
Kubernetes namespace | galileo |
--grafana-username |
Grafana username (or set GRAFANA_USERNAME) |
— |
--grafana-password |
Grafana password (or set GRAFANA_PASSWORD) |
— |
--chrome-path |
Override path to Chrome/Chromium binary | — |
--chrome-remote-debugging-url |
Attach to existing Chrome remote debug endpoint | — |
Query ClickHouse via port-forward.
# Query monitor_records for a project
galileoctl debug database data <project_id> -n galileo
# Query system.query_log for slow queries
galileoctl debug database queries -n galileo 1hRun a full diagnostic: logs + events + metrics collected sequentially into a single archive.
galileoctl debug all -n galileo
galileoctl debug all -n galileo --logs-since 2h --events-since 12h --time-window 2h
galileoctl debug all -n galileo --tail 500 --verbose warn| Flag | Description | Default |
|---|---|---|
-n, --namespace |
Kubernetes namespace | galileo |
--logs-since |
Time window for logs | 1h |
--events-since |
Time window for events | 24h |
--time-window |
Time window for metrics queries | 1h |
--tail |
Log lines per service | 200 |
-v, --verbose |
Filter level: debug, info, warn, error |
info |
galileoctl versionPrints the version number, git commit hash, and build date.
Generate shell autocompletion:
galileoctl completion bash >> ~/.bashrc
galileoctl completion zsh >> ~/.zshrc
galileoctl completion fish >> ~/.config/fish/completions/galileoctl.fishAll output is written to galileoctl-debug-output/ in the current directory, organized by command and timestamp:
galileoctl-debug-output/
├── logs_<namespace>_<timestamp>/
│ ├── <service>_<pod>.log
│ └── ...
├── events_<namespace>_<timestamp>/
│ └── events.txt
├── metrics_<namespace>_<timestamp>/
│ ├── api_failures.json
│ ├── job_failures.json
│ ├── job_latency_p50.json
│ └── rabbitmq_messages.json
└── grafana_<namespace>_<timestamp>/
├── dashboards.json
├── api.png
└── ...
Each command also produces a compressed archive:
| Command | Archive |
|---|---|
debug logs |
galileoctl-logs-<date>-<customer>.tar.gz |
debug events |
galileoctl-events-<date>-<customer>.tar.gz |
debug metrics |
galileoctl-metrics-<date>-<customer>.tar.gz |
debug all |
all_<namespace>_<timestamp>.tar.gz |
See LICENSE for details.