Worker Logging Guide
This guide covers everything about logging in the Rhesis worker system, from configuration to analysis and troubleshooting.
Overview
The worker system generates logs from multiple sources:
- Celery Worker: Task execution, queue processing, worker lifecycle
- Health Server: HTTP health checks, debugging endpoints
- Startup Script: Container initialization, environment validation
- Application Code: Task-specific logging from your business logic
Log Configuration
Environment Variables
Control logging behavior with these environment variables:
Available Log Levels:
DEBUG: Detailed debugging informationINFO: General operational messages (recommended)WARNING: Warning messages for potential issuesERROR: Error conditions that don’t stop executionCRITICAL: Serious errors that may stop execution
Celery Logging Configuration
In the worker startup, Celery is configured with:
Log Sources and Formats
1. Startup Script Logs
Location: Container stdout during initialization Format: Structured with emoji indicators and timestamps
2. Health Server Logs
Location: Container stdout from health server process Format: HTTP access logs with endpoint information
3. Celery Worker Logs
Location: Container stdout from Celery process Format: Celery’s standard logging format with task information
4. Application Task Logs
Location: Container stdout from your task code Format: Python logging format as configured in your tasks
Accessing Logs
Local Development
GKE Deployment
Basic Log Access
Real-Time Monitoring
Historical Logs
Log Analysis Techniques
1. Finding Your Pods
2. Filtering Logs
Search for Errors
Search for Task Activity
Search for Health Check Activity
3. Advanced Log Analysis
Export Logs for Analysis
Multi-Pod Log Aggregation
Log Patterns and What They Mean
Healthy Worker Startup
Common Warning Patterns
Error Patterns to Investigate
Connection Errors
Action: Check Redis connectivity, network policies, firewall rules
Import Errors
Action: Check Docker image build, PYTHONPATH configuration
Task Errors
Action: Check task code, input parameters, database connectivity
Health Check Errors
Action: Check Celery worker status, Redis connectivity
Log Monitoring and Alerting
Key Metrics to Monitor
- Error Rate: Frequency of ERROR/CRITICAL log entries
- Health Check Failures: HTTP 500 responses on
/health - Connection Timeouts: Redis/broker connectivity issues
- Task Failure Rate: Ratio of failed to successful tasks
- Worker Restarts: Container restart frequency
Sample Monitoring Queries
Using kubectl and basic tools
Debugging with Logs
Correlate logs with the worker’s health endpoints when diagnosing a problem: /debug shows system
status including recent errors, and /debug/redis shows Redis connectivity details.
For pod-level debugging scenarios (won’t start, health checks failing, tasks not processing), see GKE Troubleshooting and Troubleshooting.