Logging config, Sentry, Prometheus, Grafana, health checks, alerts
Мониторинг и логирование для production Django приложений.
💡 Правило: Логируйте всё важное, мониторьте критичные метрики.
# settings.py
LOGGING = {
'version': 1,
'handlers': {
'console': {'class': 'logging.StreamHandler'},
'file': {'class': 'logging.FileHandler', 'filename': 'app.log'},
},
'loggers': {
'django': {'handlers': ['console', 'file'], 'level': 'INFO'},
'myapp': {'handlers': ['console', 'file'], 'level': 'DEBUG'},
},
}
# Использование
import logging
logger = logging.getLogger(__name__)
logger.info('User logged in')
logger.error('Database connection failed')# settings.py
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn=os.environ.get('SENTRY_DSN'),
integrations=[DjangoIntegration()],
traces_sample_rate=0.1,
)# settings.py
INSTALLED_APPS += ['django_prometheus']
MIDDLEWARE = [
'django_prometheus.middleware.PrometheusBeforeMiddleware',
# ...
'django_prometheus.middleware.PrometheusAfterMiddleware',
]
# URLs
urlpatterns = [
path('', include('django_prometheus.urls')),
]# views.py
def health_check(request):
try:
# Проверка БД
from django.db import connection
connection.ensure_connection()
# Проверка кэша
from django.core.cache import cache
cache.set('health', 'ok', 1)
return JsonResponse({'status': 'ok'}, status=200)
except Exception as e:
return JsonResponse({'status': 'error', 'error': str(e)}, status=503)Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.