
# ============================================
# Node.js OTEL Agent - Environment Variables
# ============================================

# ============================================
# Application Configuration
# ============================================
PORT=3000
NODE_ENV=development

# File Manager URL 
NEXT_PUBLIC_FILE_MANAGER_URL=http://localhost:8085

# ============================================
# Unified Observability Configuration (Prefix: LOGS_)
# ============================================

# Endpoint
LOGS_URL=https://loki.elvenobservability.com/loki/api/v1/push

# Tenant ID
LOGS_TENANT=elven

# Authentication Token
LOGS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJlbHZlbi1sZ3RtLWp3dCIsIm9yZ0lkIjoiZWx2ZW4tbGd0bSIsImlhdCI6MTc2OTY5NDg4MH0.XBGK8ToAtpAUC_QmDrW2bFb-CXJYyQJqCHfUTjeElAA

# Application Name (used in logs)
LOGS_APP_NAME=busca-hml

# Application Version
LOGS_APP_VERSION=1.0.0

# ============================================
# Logs Interceptor - Transport Settings
# ============================================

# Compression: 'none', 'gzip', 'brotli', 'snappy'
LOGS_COMPRESSION=snappy

# Compression Level (0-11 for brotli, 0-9 for gzip)
LOGS_COMPRESSION_LEVEL=4

# Compression Threshold (bytes)
LOGS_COMPRESSION_THRESHOLD=4096

# Use Worker Threads for processing (true/false)
LOGS_USE_WORKERS=true

# Maximum number of worker threads
LOGS_MAX_WORKERS=4

# Enable HTTP Connection Pooling (true/false)
LOGS_CONNECTION_POOLING=true

# Maximum number of concurrent sockets
LOGS_MAX_SOCKETS=100

# Request timeout in milliseconds
LOGS_TIMEOUT=10000

# Maximum retries for failed requests
LOGS_MAX_RETRIES=3

# Retry delay in milliseconds
LOGS_RETRY_DELAY=1000

# ============================================
# Logs Interceptor - Buffer Settings
# ============================================

# Maximum buffer size (logs) before auto-flush
LOGS_BUFFER_MAX_SIZE=2000

# Flush interval in milliseconds
LOGS_BUFFER_FLUSH_INTERVAL=2000

# Maximum memory usage in MB before forcing flush
LOGS_BUFFER_MAX_MEMORY_MB=512

# Maximum age of logs in buffer (milliseconds)
LOGS_BUFFER_MAX_AGE=30000

# Auto-flush enabled (true/false)
LOGS_BUFFER_AUTO_FLUSH=true

# ============================================
# Logs Interceptor - Filter Settings
# ============================================

# Log levels to capture
LOGS_FILTER_LEVELS=debug,info,warn,error,fatal

# Sampling rate (0.0 to 1.0)
LOGS_FILTER_SAMPLING_RATE=1.0

# Sanitize sensitive data (true/false)
LOGS_FILTER_SANITIZE=true

# Maximum message length in characters
LOGS_FILTER_MAX_MESSAGE_LENGTH=8192

# ============================================
# Logs Interceptor - Circuit Breaker
# ============================================

# Enable circuit breaker (true/false)
LOGS_CIRCUIT_BREAKER_ENABLED=true

# Failure threshold before opening circuit
LOGS_CIRCUIT_BREAKER_FAILURE_THRESHOLD=50

# Reset timeout in milliseconds
LOGS_CIRCUIT_BREAKER_RESET_TIMEOUT=30000

# Half-open requests to test recovery
LOGS_CIRCUIT_BREAKER_HALF_OPEN_REQUESTS=3

# ============================================
# Logs Interceptor - Dead Letter Queue
# ============================================

# Enable Dead Letter Queue (true/false)
LOGS_DLQ_ENABLED=true

# DLQ Type: 'memory' or 'file'
LOGS_DLQ_TYPE=file

# DLQ Maximum size
LOGS_DLQ_MAX_SIZE=1000

# DLQ Maximum retries
LOGS_DLQ_MAX_RETRIES=3

# DLQ Base path (for file type)
LOGS_DLQ_BASE_PATH=./.logs-dlq

# ============================================
# Logs Interceptor - Performance Settings
# ============================================

# Maximum concurrent flushes
LOGS_MAX_CONCURRENT_FLUSHES=10

# ============================================
# Logs Interceptor - General Settings
# ============================================

# Intercept console.log, console.info, etc.
LOGS_INTERCEPT_CONSOLE=true

# Preserve original console output
LOGS_PRESERVE_ORIGINAL_CONSOLE=true

# Enable metrics collection
LOGS_ENABLE_METRICS=true

# Enable health checks
LOGS_ENABLE_HEALTH_CHECK=true

# Debug mode
LOGS_DEBUG=false

# Silent errors
LOGS_SILENT_ERRORS=false

# ============================================
# Labels (optional - for filtering in Grafana)
# ============================================

# Service label
LOGS_LABEL_SERVICE=busca-hml

# Environment label
LOGS_LABEL_ENVIRONMENT=hml

# Region label (optional)
# LOGS_LABEL_REGION=us-east-1

# Cluster label (optional)
# LOGS_LABEL_CLUSTER=production


# ============================================
# OpenTelemetry Configuration
# ============================================

OTEL_SERVICE_NAME=busca-hml
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_ZERO_CODE=true
OTEL_LOG_LEVEL=false
OTEL_TRACES_EXPORTER=otlp
OTEL_METRICS_EXPORTER=otlp
OTEL_METRIC_EXPORT_INTERVAL=3000
