mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 15:51:12 -05:00
Add Django Celery tasks and utilities to periodically collect system metrics (error rates, response times, queue sizes) and record them into metric_time_series. Include monitoring app scaffolding, metrics collector, Celery beat schedule, middleware for live metrics, and a Supabase edge function for cross-source metrics.
55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
"""
|
|
Celery Beat schedule configuration for periodic tasks.
|
|
Import this in your Django settings.
|
|
"""
|
|
from celery.schedules import crontab
|
|
|
|
CELERY_BEAT_SCHEDULE = {
|
|
# Collect all system metrics every minute
|
|
'collect-system-metrics': {
|
|
'task': 'monitoring.collect_system_metrics',
|
|
'schedule': 60.0, # Every 60 seconds
|
|
'options': {'queue': 'monitoring'}
|
|
},
|
|
|
|
# Collect error metrics every minute
|
|
'collect-error-metrics': {
|
|
'task': 'monitoring.collect_error_metrics',
|
|
'schedule': 60.0,
|
|
'options': {'queue': 'monitoring'}
|
|
},
|
|
|
|
# Collect performance metrics every minute
|
|
'collect-performance-metrics': {
|
|
'task': 'monitoring.collect_performance_metrics',
|
|
'schedule': 60.0,
|
|
'options': {'queue': 'monitoring'}
|
|
},
|
|
|
|
# Collect queue metrics every 30 seconds
|
|
'collect-queue-metrics': {
|
|
'task': 'monitoring.collect_queue_metrics',
|
|
'schedule': 30.0,
|
|
'options': {'queue': 'monitoring'}
|
|
},
|
|
|
|
# Existing user tasks
|
|
'cleanup-expired-tokens': {
|
|
'task': 'users.cleanup_expired_tokens',
|
|
'schedule': crontab(hour='*/6', minute=0), # Every 6 hours
|
|
'options': {'queue': 'maintenance'}
|
|
},
|
|
|
|
'cleanup-inactive-users': {
|
|
'task': 'users.cleanup_inactive_users',
|
|
'schedule': crontab(hour=2, minute=0, day_of_week=1), # Weekly on Monday at 2 AM
|
|
'options': {'queue': 'maintenance'}
|
|
},
|
|
|
|
'update-user-statistics': {
|
|
'task': 'users.update_user_statistics',
|
|
'schedule': crontab(hour='*', minute=0), # Every hour
|
|
'options': {'queue': 'analytics'}
|
|
},
|
|
}
|