Skip to content

rungalileo/galileoctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

galileoctl

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.

Features

  • 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

Installation

Homebrew (macOS / Linux)

brew tap rungalileo/galileoctl
brew install galileoctl

Manual

Download the latest binary from GitHub Releases and place it in your PATH.

Supported platforms:

OS Architecture
Linux amd64
macOS arm64
Windows amd64

Build from Source

Prerequisites:

  • Go 1.25+
  • Valid kubeconfig (~/.kube/config or KUBECONFIG env var)
  • Chrome/Chromium — only required for debug grafana screenshot capture
git clone https://github.com/rungalileo/galileoctl.git
cd galileoctl
./build.sh

The 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.exe

Usage

galileoctl [command]

Available Commands:
  debug       Debugging and troubleshooting commands
  version     Print version, commit hash, and build date
  completion  Generate shell autocompletion script

debug

galileoctl debug [command] -n <namespace>

All debug subcommands accept -n / --namespace to target a specific Kubernetes namespace. When omitted, the namespace defaults to galileo.


debug logs

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

debug events

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

debug connections

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

debug metrics

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

debug grafana

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

debug database

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 1h

debug all

Run 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

version

galileoctl version

Prints the version number, git commit hash, and build date.


completion

Generate shell autocompletion:

galileoctl completion bash  >> ~/.bashrc
galileoctl completion zsh   >> ~/.zshrc
galileoctl completion fish  >> ~/.config/fish/completions/galileoctl.fish

Output Structure

All 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

License

See LICENSE for details.

About

A CLI for managing and troubleshooting Galileo Stacks

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors