Common Issues
This guide covers the most frequently encountered issues when using Gonzo and their solutions. For AI-specific or format-specific issues, see the dedicated troubleshooting pages.
Installation Problems
Command Not Found After Installation
Symptom: Running gonzo returns "command not found" error.
Causes & Solutions:
Go installation - PATH not configured
# Check if GOPATH/bin is in PATH echo $PATH | grep -q "$(go env GOPATH)/bin" && echo "Found" || echo "Missing" # Fix: Add to your shell profile echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc source ~/.bashrc # Or for zsh echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc source ~/.zshrcBinary installation - not in PATH
# Move to standard location sudo mv gonzo /usr/local/bin/ # Or add current directory to PATH export PATH=$PATH:$(pwd)Verify installation
which gonzo gonzo --version
Permission Denied When Running Binary
Symptom: permission denied when trying to execute gonzo.
Solution:
# Make executable
chmod +x gonzo
# If in system directory
sudo chmod +x /usr/local/bin/gonzo
# Verify permissions
ls -l $(which gonzo)
# Should show: -rwxr-xr-xBuild Failures
Symptom: go install or make build fails.
Common causes:
Go version too old
# Check version (need 1.21+) go version # Update via Homebrew brew upgrade go # Or download from https://golang.org/dl/Missing dependencies
# Clean and retry go clean -modcache go mod download go install github.com/control-theory/gonzo/cmd/gonzo@latestNetwork issues
# Use proxy if behind firewall export GOPROXY=https://proxy.golang.org,direct go install github.com/control-theory/gonzo/cmd/gonzo@latest
Display Issues
Garbled or Broken Interface
Symptom: Strange characters, broken borders, or corrupted display.
Solutions:
Check terminal compatibility
✅ Works well: iTerm2, Alacritty, Windows Terminal, GNOME Terminal, Kitty
⚠️ May have issues: Very old terminals, basic xterm
Enable UTF-8 encoding
# Add to shell profile export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 # Verify localeCheck TERM variable
# Should show 256 color support echo $TERM # Should be: xterm-256color, screen-256color, etc. # Set if incorrect export TERM=xterm-256colorUse appropriate font
Install a font with good Unicode support
Recommended: JetBrains Mono, Fira Code, Cascadia Code, Hack
No Colors Displayed
Symptom: All text appears in same color, no syntax highlighting.
Solutions:
Check color support
# Test color capability tput colors # Should show 256Force color mode
export TERM=xterm-256color gonzo -f logs.logCheck NO_COLOR variable
# Unset if present unset NO_COLOR # Verify it's gone env | grep NO_COLORTry different skin
# Some terminals work better with specific skins gonzo --skin=github-light -f logs.log
Terminal Too Small
Symptom: Interface is cramped or panels overlap.
Solution:
Gonzo requires minimum terminal size of 80x24 characters.
# Check current size
tput cols # Width
tput lines # Height
# Resize terminal to at least 80x24
# Or use fullscreen mode: Cmd/Ctrl + Enter (terminal dependent)Recommended: 120x40 or larger for best experience.
Mouse Not Working
Symptom: Clicking doesn't select items or switch panels.
Solutions:
Verify terminal supports mouse
Most modern terminals do
Check terminal settings/preferences
Use keyboard navigation instead
Tab - Switch panels ↑↓ or k/j - Navigate items Enter - Select/openKnown limitations:
SSH sessions may not pass mouse events
Tmux/Screen require special configuration
Some older terminals lack mouse support
Log Processing Issues
No Logs Appearing
Symptom: Gonzo starts but dashboard remains empty.
Diagnosis & Solutions:
Verify input source exists
# For files ls -la application.log file application.log # Check file has content wc -l application.log head application.logCheck file permissions
# Ensure readable chmod +r application.log # Verify cat application.log | headTest with simple input
# Create test file echo '{"level":"info","message":"test"}' | gonzo # If this works, issue is with your log fileCheck for active filters
Press
ESCto clear any filtersLook for filter indicator in status bar
Verify stdin is producing output
# Test the source directly kubectl logs deployment/app | head # If empty, source is the problem
Logs Appear Truncated
Symptom: Long log lines are cut off or abbreviated.
Solutions:
Use horizontal scrolling
← → or h l - Scroll left/rightOpen detail view
Enter - View full log entryIncrease terminal width
Make terminal wider
Use full screen mode
Mixed Format Logs Not Parsing
Symptom: Some logs parse correctly, others show as plain text.
Explanation: Gonzo detects format per line. Mixed format files will show inconsistent parsing.
Solutions:
Pre-filter by format
# Extract only JSON lines grep '^{' mixed.log | gonzo # Or use jq cat mixed.log | jq -c 'select(type == "object")' | gonzoUse custom format
gonzo --format=my-custom-format -f logs.txtAccept mixed display
Structured logs: parsed as JSON/logfmt
Unstructured logs: shown as plain text
Both viewable, just different presentation
Logs Not Following in Real-Time
Symptom: Using --follow but new logs don't appear.
Diagnosis:
Verify file is being written
# In another terminal tail -f /var/log/app.log # Or watch file size watch -n 1 'ls -lh /var/log/app.log'Check auto-scroll status
Press
Endto jump to latest and resume auto-scrollLook for
FOLLOWINGindicator in status bar
Verify Gonzo isn't paused
Press
Spaceto unpause if showing⏸ PAUSED
Test follow with known-working source
# In terminal 1 gonzo -f /tmp/test.log --follow # In terminal 2 while true; do echo "test $(date)" >> /tmp/test.log; sleep 1; done
Log Rotation Issues
Symptom: Logs stop appearing after log rotation.
Explanation: When files are rotated (moved/renamed), Gonzo may lose the file handle.
Solutions:
Restart Gonzo after rotation
# Simple approach gonzo -f /var/log/app.log --followUse stdin with tail
# tail -F follows through rotation tail -F /var/log/app.log | gonzoFor production: Use OTLP or log shipping
# More reliable for long-running monitoring gonzo --otlp-enabled
Performance Issues
High CPU Usage
Symptom: Gonzo consumes excessive CPU.
Causes & Solutions:
Very high log volume
# Reduce update frequency gonzo -f logs.log --update-interval=5s # Default is 1s; try 2s, 5s, or 10sLarge buffer processing
# Reduce buffer sizes gonzo -f logs.log --log-buffer=500 --memory-size=5000Complex regex filters
Simplify regex patterns
Use simpler string matches when possible
AI analysis running
AI queries can be CPU intensive
Wait for analysis to complete
Use lighter models (gpt-3.5-turbo vs gpt-4)
High Memory Usage
Symptom: Gonzo consumes too much RAM.
Solutions:
Reduce log buffer
# Default: 1000 entries gonzo -f logs.log --log-buffer=500Reduce frequency tracking
# Default: 10000 words gonzo -f logs.log --memory-size=5000Process logs in chunks
# Instead of entire file tail -n 10000 large.log | gonzo # Or specific time range grep "2024-01-15" large.log | gonzoUse config file for persistent settings
# ~/.config/gonzo/config.yml log-buffer: 500 memory-size: 5000
Slow Performance with Large Files
Symptom: Gonzo is sluggish when loading large log files.
Solutions:
Pre-filter before Gonzo
# Filter by severity grep -E "(ERROR|WARN)" large.log | gonzo # Filter by time range awk '/10:00/,/11:00/' large.log | gonzo # Last N lines tail -n 5000 large.log | gonzoUse streaming instead of file
# Stream rather than load entire file cat large.log | gonzoIncrease update interval
gonzo -f large.log --update-interval=3sSplit large files
# Split into smaller files split -l 10000 large.log chunk_ # Analyze chunks individually gonzo -f chunk_aa
Dashboard Not Updating
Symptom: Interface appears frozen, no updates.
Diagnosis:
Check if paused
Look for
⏸ PAUSEDin status barPress
Spaceto unpause
Verify input is flowing
# Check source directly tail -f /var/log/app.logCheck update interval
# May be set very high # Press 'u' to cycle to faster updateTry reset
# Press 'r' to reset dashboardRestart Gonzo
Sometimes a clean restart resolves issues
qto quit, then restart
File Input Issues
Glob Pattern Not Working
Symptom: gonzo -f "/var/log/*.log" doesn't find expected files.
Solutions:
Always quote glob patterns
# ✅ Correct - Gonzo handles expansion gonzo -f "/var/log/*.log" # ❌ Wrong - Shell expands before Gonzo sees it gonzo -f /var/log/*.logVerify files exist
ls /var/log/*.logCheck permissions
# Ensure files are readable ls -la /var/log/*.logUse absolute paths
# More reliable than relative gonzo -f "/var/log/*.log" # ✅ gonzo -f "../logs/*.log" # May have issues
Multiple File Sources Not Merging
Symptom: Only seeing logs from one file when multiple specified.
Solution:
# Specify each file/pattern separately
gonzo -f file1.log -f file2.log -f file3.log
# Multiple patterns work too
gonzo -f "/var/log/app/*.log" -f "/var/log/nginx/*.log"Logs will be merged in the order received (by timestamp if available).
Cannot Read File - Permission Denied
Symptom: Error message about insufficient permissions.
Solutions:
Check file permissions
ls -la /var/log/app.logAdd read permission
chmod +r /var/log/app.logRun with appropriate user
# If log requires special permissions sudo gonzo -f /var/log/secureCopy to accessible location
# Last resort cp /var/log/app.log ~/app.log gonzo -f ~/app.log
Configuration Issues
Config File Not Loading
Symptom: Settings in config file are ignored.
Diagnosis:
Check config location
# Default location ls -la ~/.config/gonzo/config.yml # Should exist and be readableVerify YAML syntax
# Use yamllint if available yamllint ~/.config/gonzo/config.yml # Or check with cat cat ~/.config/gonzo/config.ymlCommon YAML mistakes
# ❌ Wrong - underscores not supported log_buffer: 2000 update_interval: 2s # ✅ Correct - use hyphens log-buffer: 2000 update-interval: 2sSpecify config explicitly
gonzo --config ~/.config/gonzo/config.yml -f logs.log
Environment Variables Not Working
Symptom: Environment variables like GONZO_FILES are ignored.
Solutions:
Verify export
# Check if set env | grep GONZO # Set if missing export GONZO_FILES="/var/log/app.log"Add to shell profile
# For persistent settings echo 'export GONZO_FILES="/var/log/app.log"' >> ~/.bashrc source ~/.bashrcCommand line flags override env vars
# Flag takes precedence GONZO_FILES="file1.log" gonzo -f file2.log # Will use file2.log, not file1.log
Getting Additional Help
Enable Verbose Logging
For detailed troubleshooting:
# Run with verbose flag
gonzo -v -f application.log 2> gonzo-debug.log
# Check debug output
cat gonzo-debug.logGather System Information
When reporting issues, collect:
# System info
uname -a
echo $TERM
echo $SHELL
# Gonzo version
gonzo --version
# Go version (if relevant)
go version
# Terminal info
echo $COLUMNS x $LINESTest with Minimal Example
Create a minimal reproduction:
# Simple test case
echo '{"level":"info","message":"test log"}' > test.log
gonzo -f test.log
# If this works, issue is with your specific logsRelated Resources
AI-Specific Issues - Troubleshooting AI integration
Log Format Issues - Problems with log parsing
GitHub Issues - Report bugs or request features
Last updated