|
| 1 | +# Django Observability Environment Variables |
| 2 | +# Copy this file to .env and customize for your environment |
| 3 | + |
| 4 | +# ============================================================================== |
| 5 | +# SERVICE IDENTIFICATION |
| 6 | +# ============================================================================== |
| 7 | + |
| 8 | +# Service name (appears in traces, logs, metrics) |
| 9 | +OTEL_SERVICE_NAME=my-django-app |
| 10 | + |
| 11 | +# ============================================================================== |
| 12 | +# OPENTELEMETRY CONFIGURATION |
| 13 | +# ============================================================================== |
| 14 | + |
| 15 | +# OTLP Exporter Endpoint (traces, logs, metrics) |
| 16 | +# Development: http://localhost:4317 (local Grafana Alloy/Collector) |
| 17 | +# Production: Your OTLP endpoint URL |
| 18 | +OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 |
| 19 | + |
| 20 | +# Trace Sampling Rate (0.0 to 1.0) |
| 21 | +# 1.0 = 100% sampling (development) |
| 22 | +# 0.1 = 10% sampling (production low traffic) |
| 23 | +# 0.01 = 1% sampling (production high traffic) |
| 24 | +OTEL_TRACES_SAMPLER_ARG=1.0 |
| 25 | + |
| 26 | +# Enable OTLP log export (optional, useful for log aggregation) |
| 27 | +OTEL_LOGS_ENABLED=true |
| 28 | + |
| 29 | +# ============================================================================== |
| 30 | +# LOGGING CONFIGURATION |
| 31 | +# ============================================================================== |
| 32 | + |
| 33 | +# Log Level (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
| 34 | +DJANGO_LOG_LEVEL=INFO |
| 35 | + |
| 36 | +# Request logging level (can be more verbose than general logs) |
| 37 | +DJANGO_REQUEST_LOG_LEVEL=INFO |
| 38 | + |
| 39 | +# Database query logging level (set to CRITICAL to disable in production) |
| 40 | +DJANGO_DATABASE_LOG_LEVEL=WARNING |
| 41 | + |
| 42 | +# Celery task logging level |
| 43 | +DJANGO_CELERY_LOG_LEVEL=INFO |
| 44 | + |
| 45 | +# Log Format: 'console' for development, 'json' for production |
| 46 | +# console = colorized, human-readable |
| 47 | +# json = structured, machine-parseable |
| 48 | +DJANGO_LOG_FORMAT=console |
| 49 | + |
| 50 | +# Colorize logs (true for development, false for production) |
| 51 | +DJANGO_LOG_COLORIZED=true |
| 52 | + |
| 53 | +# Rich exception formatting (true for development, false for production) |
| 54 | +DJANGO_LOG_RICH_EXCEPTIONS=true |
| 55 | + |
| 56 | +# ============================================================================== |
| 57 | +# PROFILING (OPTIONAL) |
| 58 | +# ============================================================================== |
| 59 | + |
| 60 | +# Enable continuous profiling with Pyroscope |
| 61 | +# Recommended: true in development, false in production (or selective in prod) |
| 62 | +PYROSCOPE_ENABLED=false |
| 63 | + |
| 64 | +# Pyroscope server address |
| 65 | +PYROSCOPE_SERVER_ADDRESS=http://localhost:4040 |
| 66 | + |
| 67 | +# ============================================================================== |
| 68 | +# CELERY CONFIGURATION (IF USING CELERY) |
| 69 | +# ============================================================================== |
| 70 | + |
| 71 | +# Celery broker URL (Redis recommended) |
| 72 | +CELERY_BROKER_URL=redis://localhost:6379/0 |
| 73 | + |
| 74 | +# Celery result backend |
| 75 | +CELERY_RESULT_BACKEND=redis://localhost:6379/0 |
| 76 | + |
| 77 | +# ============================================================================== |
| 78 | +# DEVELOPMENT VS PRODUCTION EXAMPLES |
| 79 | +# ============================================================================== |
| 80 | + |
| 81 | +# DEVELOPMENT SETTINGS (copy these for local .env): |
| 82 | +# OTEL_SERVICE_NAME=myapp-dev |
| 83 | +# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 |
| 84 | +# OTEL_TRACES_SAMPLER_ARG=1.0 |
| 85 | +# OTEL_LOGS_ENABLED=true |
| 86 | +# DJANGO_LOG_LEVEL=INFO |
| 87 | +# DJANGO_LOG_FORMAT=console |
| 88 | +# DJANGO_LOG_COLORIZED=true |
| 89 | +# DJANGO_LOG_RICH_EXCEPTIONS=true |
| 90 | +# DJANGO_DATABASE_LOG_LEVEL=INFO |
| 91 | +# PYROSCOPE_ENABLED=true |
| 92 | + |
| 93 | +# PRODUCTION SETTINGS (example): |
| 94 | +# OTEL_SERVICE_NAME=myapp-prod |
| 95 | +# OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.mycompany.com:4317 |
| 96 | +# OTEL_TRACES_SAMPLER_ARG=0.01 |
| 97 | +# OTEL_LOGS_ENABLED=true |
| 98 | +# DJANGO_LOG_LEVEL=WARNING |
| 99 | +# DJANGO_LOG_FORMAT=json |
| 100 | +# DJANGO_LOG_COLORIZED=false |
| 101 | +# DJANGO_LOG_RICH_EXCEPTIONS=false |
| 102 | +# DJANGO_DATABASE_LOG_LEVEL=CRITICAL |
| 103 | +# PYROSCOPE_ENABLED=false |
| 104 | + |
| 105 | +# ============================================================================== |
| 106 | +# NOTES |
| 107 | +# ============================================================================== |
| 108 | + |
| 109 | +# 1. All these variables are OPTIONAL - django-observability has sensible defaults |
| 110 | +# 2. You can also configure these via DJANGO_OBSERVABILITY dict in settings.py |
| 111 | +# 3. Environment variables take precedence over settings.py configuration |
| 112 | +# 4. See README.md for full configuration options |
| 113 | +# 5. Run `python manage.py observability_check` to verify your setup |
0 commit comments