global: scrape_interval: 15s evaluation_interval: 15s rule_files: - "rules/*.yml" scrape_configs: # Rustelo application metrics - job_name: 'rustelo-app' static_configs: - targets: ['app:3030'] scrape_interval: 15s metrics_path: '/metrics' scheme: http scrape_timeout: 10s # Prometheus self-monitoring - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] # Node exporter for system metrics (optional) - job_name: 'node-exporter' static_configs: - targets: ['node-exporter:9100'] scrape_interval: 15s # PostgreSQL metrics (optional) - job_name: 'postgres-exporter' static_configs: - targets: ['postgres-exporter:9187'] scrape_interval: 30s # Redis metrics (optional) - job_name: 'redis-exporter' static_configs: - targets: ['redis-exporter:9121'] scrape_interval: 30s # Nginx metrics (optional) - job_name: 'nginx-exporter' static_configs: - targets: ['nginx-exporter:9113'] scrape_interval: 30s # Custom health check endpoint - job_name: 'rustelo-health' static_configs: - targets: ['app:3030'] scrape_interval: 30s metrics_path: '/health' scheme: http scrape_timeout: 10s alerting: alertmanagers: - static_configs: - targets: - alertmanager:9093 # Storage configuration storage: tsdb: path: /prometheus retention.time: 30d retention.size: 10GB