mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 13:11:12 -05:00
Set up auto metric collection
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.
This commit is contained in:
54
django/config/celery_beat_schedule.py
Normal file
54
django/config/celery_beat_schedule.py
Normal file
@@ -0,0 +1,54 @@
|
||||
"""
|
||||
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'}
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user