This guide covers common issues and their solutions when working with GoVisual.
You can't access the GoVisual dashboard at the expected URL path.
-
Wrong Dashboard Path
- Confirm the dashboard path in your configuration
- Default is
/__viz, but you may have changed it withWithDashboardPath - Example:
http://localhost:8080/__viz
-
Application Not Running
- Verify your application is running
- Check for any startup errors in logs
-
Path Conflict
- Your application might have a route that conflicts with the dashboard path
- Change the dashboard path to avoid conflicts:
handler := govisual.Wrap(mux, govisual.WithDashboardPath("/__govisual"))
-
Middleware Not Applied
- Make sure the GoVisual middleware is correctly applied
- The handler returned by
govisual.Wrap()must be the one used by your server
The dashboard is accessible, but no requests are displayed.
-
Ignored Paths
- Check if the paths you're accessing are in the ignored list
- Default ignored path is the dashboard path itself
-
Wrong Handler Chain
- Ensure that requests are passing through the GoVisual middleware
- Common mistake: wrapping a handler that isn't used by your server
-
Storage Issues
- If using a custom storage backend, check for connectivity issues
- Verify that the storage is properly configured
Application becomes slow after integrating GoVisual.
-
Request Body Logging
- Disable request body logging for large payloads:
govisual.WithRequestBodyLogging(false)
- Disable request body logging for large payloads:
-
Response Body Logging
- Disable response body logging for large responses:
govisual.WithResponseBodyLogging(false)
- Disable response body logging for large responses:
-
High Request Volume
- Reduce the number of stored requests:
govisual.WithMaxRequests(50) // Default is 100
- Reduce the number of stored requests:
-
Memory Storage Limits
- Consider using Redis or PostgreSQL for high-volume applications
-
Connection Failed
- Check connection string
- Verify the database exists and is accessible
- Ensure user has appropriate permissions
-
Table Not Created
- GoVisual should create the table automatically
- If it fails, create the table manually:
CREATE TABLE IF NOT EXISTS govisual_requests ( id TEXT PRIMARY KEY, timestamp TIMESTAMP WITH TIME ZONE, method TEXT, path TEXT, query TEXT, request_headers JSONB, response_headers JSONB, status_code INTEGER, duration BIGINT, request_body TEXT, response_body TEXT, error TEXT, middleware_trace JSONB, route_trace JSONB, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() )
-
Connection Failed
- Check Redis connection string format
- Verify Redis server is running
- Test connection with Redis CLI
-
Memory Issues
- Adjust TTL to clean up older entries faster
- Example:
govisual.WithRedisStorage("redis://localhost:6379/0", 3600) // 1 hour TTL
-
Failed to Initialize OpenTelemetry
- Check logs for initialization errors
- Verify the OTLP endpoint is correctly specified
- Ensure the OpenTelemetry collector is running
-
No Spans in Collector
- Verify collector configuration accepts OTLP format
- For Jaeger, ensure the OTLP receiver is enabled
- Try changing the endpoint format or port
-
Missing Middleware in Trace
- Some third-party middleware may not be properly detected
- Ensure middleware follows standard Go patterns
-
Incorrect Timing
- High system load can affect timing accuracy
- Consider testing under normal load conditions
If the above solutions don't resolve your issue:
- Check the GoVisual GitHub repository for open issues
- Create a new issue with:
- Detailed description of the problem
- Error messages and logs
- Configuration code
- Steps to reproduce
- Version information (Go, GoVisual, OS)
- Configuration Options - Review available configuration options
- Storage Backends - Storage backend configuration details
- Frequently Asked Questions - Common questions and answers