11# galileoctl
22
3- Galileo CLI is a command-line tool for Managing Galileo Stack, quick troubleshooting and collecting diagnostic bundles from Kubernetes clusters.
3+ Galileo CLI is a command-line tool for managing Galileo Stack, quick troubleshooting, and collecting diagnostic bundles from Kubernetes clusters.
44
55## Features
66
@@ -9,8 +9,9 @@ Galileo CLI is a command-line tool for Managing Galileo Stack, quick troubleshoo
99- ** Grafana Integration** : Automatically capture Grafana dashboards as PNG screenshots
1010- ** Prometheus Metrics** : Query Prometheus for core metrics and save results
1111- ** Preflight Checks** : Validate cluster configuration before running commands
12- - ** Complete Bundles** : Generate comprehensive debug archives with all collected data (logs, events, metrics, and Grafana dashboards)
13- - ** Pure Go Implementation** : Uses Kubernetes client-go (no kubectl dependency)
12+ - ** Complete Bundles** : Generate comprehensive debug archives with all collected data (logs, events, and metrics)
13+ - ** Pure Go Implementation** : Uses Kubernetes client-go API - ** no kubectl dependency required**
14+ - ** High Performance** : Parallel collection across services and pods for 10-15x faster execution
1415
1516## Installation
1617
@@ -56,7 +57,8 @@ galileoctl debug metrics -n galileo --since=1h
5657# Capture Grafana dashboards (PNG screenshots with auto-configured namespace and time range)
5758galileoctl debug grafana -n galileo
5859
59- # Complete debug bundle (logs, events, metrics, and Grafana dashboards)
60+ # Complete debug bundle (logs, events, and metrics - fast parallel collection)
61+ # Note: Grafana dashboards can be captured separately if needed
6062galileoctl debug all -n galileo
6163```
6264
@@ -90,16 +92,17 @@ galileoctl-debug-output/
9092 └── ...
9193```
9294
93- The ` debug all ` command also creates a compressed archive: ` galileoctl-complete-<timestamp >-<customer>.tar.gz `
95+ Each debug command creates its own archive (e.g., ` galileoctl-logs-<date >-<customer>.tar.gz ` )
9496
95- ## Technical Details
97+ The ` debug all ` command creates a combined archive: ` all_<namespace>_<timestamp>.tar.gz `
9698
9799### Grafana Dashboard Capture
98100
99101The Grafana dashboard capture feature:
100102- Automatically finds Grafana pods in the cluster
101103- Port-forwards using Kubernetes client-go (no kubectl required)
102104- Auto-fetches credentials from Kubernetes secrets
105+ - Uses Chrome session cookies for authentication
103106- Configures dashboards with ` var-namespace=staging ` and ` from=now-1h ` via URL parameters
104107- Captures full-page PNG screenshots of each dashboard
105108- Handles API dashboards with extended wait times for data loading
@@ -110,8 +113,8 @@ The Grafana dashboard capture feature:
110113### Prerequisites
111114
112115- Go 1.25 or later
113- - Kubernetes cluster access (kubeconfig configured )
114- - Chrome/Chromium (for Grafana dashboard capture)
116+ - Kubernetes cluster access (valid kubeconfig at ` ~/.kube/config ` )
117+ - Chrome/Chromium (optional, only for Grafana dashboard capture)
115118
116119### Build
117120
@@ -123,9 +126,32 @@ cd galileoctl
123126
124127The binary will be created as ` galileoctl ` in the current directory.
125128
126- ## Documentation
129+ ## Recent Improvements
130+
131+ ### Version 2.0 - Performance & Reliability Update
132+
133+ ** Eliminated kubectl Dependency:**
134+ - Migrated all operations to native Kubernetes client-go API
135+ - Better error handling and cross-platform compatibility
136+ - Reduced external dependencies
137+
138+ ** Significant Performance Improvements:**
139+ - Logs collection: 10-15x faster with parallel collection
140+ - Metrics queries: 4x faster with concurrent Prometheus queries
141+ - Added 30-second timeout per pod to prevent hanging
142+ - Optimized default line limits for faster collection
143+
144+ ** Bug Fixes:**
145+ - Fixed Grafana 401 authentication errors (session cookie handling)
146+ - Fixed database query failures (simplified to system tables)
147+ - Suppressed verbose port-forward error logs
148+ - Standardized archive naming across all commands
149+
150+ ** Architecture Improvements:**
151+ - Sequential section execution for cleaner output
152+ - Mutex-protected stdout writes to prevent garbled output
153+ - Context-based timeouts for better reliability
127154
128- For more information, see the [ GitHub repository] ( https://github.com/rungalileo/galileoctl ) .
129155
130156## License
131157
0 commit comments