Troubleshooting
Diagnose and resolve common issues with your Drasi deployment
4 minute read
This guide helps you diagnose and resolve common issues with Drasi deployments. For each issue, we provide symptoms, possible causes, and resolution steps.
General Diagnostics
Checking Component Status
Start by checking the status of all Drasi components:
# List all Drasi resources (Sources, Continuous Queries, Reactions)
kubectl get sources,continuousqueries,reactions -n drasi-system
# Check pod status
kubectl get pods -n drasi-system
# View recent events
kubectl get events -n drasi-system --sort-by='.lastTimestamp'
Viewing Logs
Access logs for troubleshooting:
# Source connector logs
kubectl logs -n drasi-system -l drasi.io/component=source
# Query container logs
kubectl logs -n drasi-system -l drasi.io/component=query-container
# Reaction logs
kubectl logs -n drasi-system -l drasi.io/component=reaction
# Follow logs in real-time
kubectl logs -n drasi-system -l drasi.io/component=source -f
Source Source A connection to an external system that Drasi monitors for data changes. Learn more Issues
Source Not Connecting
Symptoms:
- Source shows
Disconnectedstatus - No changes being received
- Connection timeout errors in logs
Possible Causes:
- Incorrect connection credentials
- Network connectivity issues
- Database firewall blocking connections
- SSL/TLS configuration mismatch
Resolution:
- Verify credentials:
kubectl get secret <source-secret> -n drasi-system -o yaml
- Test network connectivity:
kubectl run -it --rm debug --image=alpine -n drasi-system -- nc -vz <db-host> <port>
- Check source configuration:
kubectl describe source <source-name> -n drasi-system
- Review database logs for connection attempts
High Replication Lag
Symptoms:
- Changes arriving late
- Monitoring shows increasing lag
drasi_source_replication_lag_msmetric high
Possible Causes:
- Source database under heavy load
- Network latency
- Large transactions
- Insufficient source connector resources
Resolution:
- Check database replication status:
-- PostgreSQL
SELECT * FROM pg_stat_replication;
- Review source connector resources:
kubectl top pod -n drasi-system -l drasi.io/component=source
- Consider scaling source connector resources
Continuous Query Continuous Query A query that runs continuously, maintaining an always-current result set as data changes. Learn more Issues
Query Not Producing Results
Symptoms:
- Query shows
Runningbut no results - Expected changes not triggering reactions
Possible Causes:
- Query syntax error
- No matching data in source
- Query filters too restrictive
- Source not receiving changes
Resolution:
- Verify query syntax in logs:
kubectl logs -n drasi-system deploy/drasi-query-<name> | grep -i error
- Test query logic with debug reaction:
apiVersion: v1
kind: Reaction
metadata:
name: debug-test
spec:
kind: Debug
queries:
- <your-query-name>
- Check source is receiving changes:
kubectl logs -n drasi-system deploy/drasi-source-<name> | grep "change received"
Query Evaluation Errors
Symptoms:
drasi_query_errors_totalincreasing- Error messages in query container logs
- Intermittent result delivery
Possible Causes:
- Data type mismatches
- Null value handling issues
- Invalid property references
- Resource exhaustion
Resolution:
- Review error details:
kubectl logs -n drasi-system deploy/drasi-query-<name> | grep -i error
- Check for data issues in source:
-- Look for unexpected nulls or types
SELECT * FROM <table> WHERE <column> IS NULL;
- Update query to handle edge cases
High Query Latency
Symptoms:
drasi_query_evaluation_duration_mshigh- Results arriving late
- CPU utilization high on query containers
Possible Causes:
- Complex query logic
- Large result sets
- Insufficient resources
- Too many concurrent queries
Resolution:
- Review query complexity and optimize
- Add more selective filters
- Scale query container resources
- Distribute queries across containers
Reaction Reaction A component that receives query result changes and takes action on them. Learn more Issues
Reaction Not Executing
Symptoms:
- Query producing results but reaction not triggering
- No logs in reaction container
Possible Causes:
- Reaction not connected to query
- Reaction configuration error
- Reaction crashed or unhealthy
Resolution:
- Verify reaction configuration:
kubectl describe reaction <reaction-name> -n drasi-system
- Check reaction pod status:
kubectl get pods -n drasi-system -l drasi.io/reaction=<name>
- Review reaction logs for startup errors
Reaction Failures
Symptoms:
drasi_reaction_errors_totalincreasing- Error messages in reaction logs
- Partial execution of actions
Possible Causes:
- Target endpoint unavailable
- Authentication failures
- Rate limiting
- Invalid payload format
Resolution:
- Check target endpoint accessibility:
kubectl run -it --rm debug --image=alpine -n drasi-system -- nc -vz <endpoint-host> <port>
- Verify credentials:
kubectl get secret <reaction-secret> -n drasi-system -o yaml
- Review reaction logs for specific errors:
kubectl logs -n drasi-system deploy/drasi-reaction-<name> | grep -i error
Resource Issues
Out of Memory (OOM)
Symptoms:
- Pods being killed and restarted
- OOMKilled in pod events
- Memory usage at limits
Resolution:
- Check memory usage:
kubectl top pods -n drasi-system
- Increase memory limits:
resources:
limits:
memory: "2Gi"
- Review query result set sizes
CPU Throttling
Symptoms:
- High latency
- CPU throttling events
- Slow response times
Resolution:
- Check CPU usage:
kubectl top pods -n drasi-system
- Increase CPU limits:
resources:
limits:
cpu: "2"
- Scale horizontally if single-pod scaling isn’t sufficient
Installation Issues
Installation Fails
Symptoms:
drasi initreturns errors- Components fail to deploy
Resolution:
- Check cluster connectivity:
kubectl cluster-info
- Verify RBAC permissions:
kubectl auth can-i create deployments -n drasi-system
-
Review installation logs carefully for specific errors
-
Try with verbose output:
drasi init --verbose
Getting Help
If you can’t resolve an issue:
- Gather diagnostic information:
# Export logs
kubectl logs -n drasi-system --all-containers=true > drasi-logs.txt
# Export resource state
kubectl get all -n drasi-system -o yaml > drasi-resources.yaml
-
Check Known Issues in the reference documentation
-
Ask in the Discord community
-
Open an issue on GitHub
Feedback
Was this page helpful?
Glad to hear it! Please tell us what you found helpful.
Sorry to hear that. Please tell us how we can improve.