186 lines
5.7 KiB
YAML
186 lines
5.7 KiB
YAML
# ===================================================================
|
|
# Prometheus Development Configuration
|
|
# Enhanced monitoring for Meldestelle development environment
|
|
# ===================================================================
|
|
|
|
global:
|
|
scrape_interval: 15s # More frequent scraping for development
|
|
evaluation_interval: 15s # Faster rule evaluation
|
|
external_labels:
|
|
cluster: 'meldestelle-dev'
|
|
environment: 'development'
|
|
|
|
# Rule files for alerting (development-friendly)
|
|
rule_files:
|
|
- "/etc/prometheus/rules.yml"
|
|
|
|
# Scrape configurations for development services
|
|
scrape_configs:
|
|
# ===================================================================
|
|
# Infrastructure Services
|
|
# ===================================================================
|
|
|
|
# Prometheus self-monitoring
|
|
- job_name: 'prometheus'
|
|
static_configs:
|
|
- targets: ['localhost:9090']
|
|
scrape_interval: 15s
|
|
metrics_path: '/metrics'
|
|
|
|
# ===================================================================
|
|
# Application Services (Spring Boot)
|
|
# ===================================================================
|
|
|
|
# API Gateway
|
|
- job_name: 'api-gateway'
|
|
static_configs:
|
|
- targets: ['api-gateway:8081']
|
|
metrics_path: '/actuator/prometheus'
|
|
scrape_interval: 10s # More frequent for gateway
|
|
scrape_timeout: 5s
|
|
params:
|
|
format: ['prometheus']
|
|
|
|
# Auth Server
|
|
- job_name: 'auth-server'
|
|
static_configs:
|
|
- targets: ['auth-server:8081']
|
|
metrics_path: '/actuator/prometheus'
|
|
scrape_interval: 15s
|
|
scrape_timeout: 5s
|
|
|
|
# Monitoring Server (self-monitoring)
|
|
- job_name: 'monitoring-server'
|
|
static_configs:
|
|
- targets: ['monitoring-server:8083']
|
|
metrics_path: '/actuator/prometheus'
|
|
scrape_interval: 15s
|
|
scrape_timeout: 5s
|
|
|
|
# Ping Service
|
|
- job_name: 'ping-service'
|
|
static_configs:
|
|
- targets: ['ping-service:8082']
|
|
metrics_path: '/actuator/prometheus'
|
|
scrape_interval: 10s # Frequent for testing
|
|
scrape_timeout: 3s
|
|
|
|
# ===================================================================
|
|
# Infrastructure Monitoring
|
|
# ===================================================================
|
|
|
|
# PostgreSQL Exporter (if deployed)
|
|
- job_name: 'postgres'
|
|
static_configs:
|
|
- targets: ['postgres-exporter:9187']
|
|
scrape_interval: 30s
|
|
scrape_timeout: 10s
|
|
|
|
# Redis Exporter (if deployed)
|
|
- job_name: 'redis'
|
|
static_configs:
|
|
- targets: ['redis-exporter:9121']
|
|
scrape_interval: 30s
|
|
scrape_timeout: 10s
|
|
|
|
# ===================================================================
|
|
# Container and Host Metrics
|
|
# ===================================================================
|
|
|
|
# Docker container metrics via cAdvisor (if deployed)
|
|
- job_name: 'cadvisor'
|
|
static_configs:
|
|
- targets: ['cadvisor:8080']
|
|
scrape_interval: 30s
|
|
scrape_timeout: 10s
|
|
|
|
# Node Exporter for host metrics (if deployed)
|
|
- job_name: 'node-exporter'
|
|
static_configs:
|
|
- targets: ['node-exporter:9100']
|
|
scrape_interval: 30s
|
|
scrape_timeout: 10s
|
|
|
|
# ===================================================================
|
|
# Service Discovery (Consul Integration)
|
|
# ===================================================================
|
|
|
|
# Consul service discovery for dynamic services
|
|
- job_name: 'consul-services'
|
|
consul_sd_configs:
|
|
- server: 'consul:8500'
|
|
services: []
|
|
relabel_configs:
|
|
# Only scrape services that have prometheus.scrape=true
|
|
- source_labels: [__meta_consul_service_metadata_prometheus_scrape]
|
|
action: keep
|
|
regex: "true"
|
|
|
|
# Use service name as job name
|
|
- source_labels: [__meta_consul_service]
|
|
target_label: job
|
|
|
|
# Use custom metrics path if specified
|
|
- source_labels: [__meta_consul_service_metadata_prometheus_path]
|
|
target_label: __metrics_path__
|
|
regex: "(.+)"
|
|
|
|
# Use custom port if specified
|
|
- source_labels: [__address__, __meta_consul_service_metadata_prometheus_port]
|
|
target_label: __address__
|
|
regex: "([^:]+)(?::\d+)?;(\d+)"
|
|
replacement: $1:$2
|
|
|
|
# ===================================================================
|
|
# Development-Specific Configurations
|
|
# ===================================================================
|
|
|
|
# Health check endpoints monitoring
|
|
- job_name: 'health-checks'
|
|
static_configs:
|
|
- targets:
|
|
- 'api-gateway:8081'
|
|
- 'auth-server:8081'
|
|
- 'monitoring-server:8083'
|
|
- 'ping-service:8082'
|
|
metrics_path: '/actuator/health'
|
|
scrape_interval: 30s
|
|
scrape_timeout: 5s
|
|
|
|
# JVM metrics (additional detail for development)
|
|
- job_name: 'jvm-metrics'
|
|
static_configs:
|
|
- targets:
|
|
- 'api-gateway:8081'
|
|
- 'auth-server:8081'
|
|
- 'monitoring-server:8083'
|
|
- 'ping-service:8082'
|
|
metrics_path: '/actuator/prometheus'
|
|
scrape_interval: 30s
|
|
params:
|
|
match[]:
|
|
- 'jvm_*'
|
|
- 'process_*'
|
|
- 'system_*'
|
|
|
|
# ===================================================================
|
|
# Alerting Configuration (Development-friendly)
|
|
# ===================================================================
|
|
alerting:
|
|
alertmanagers:
|
|
- static_configs:
|
|
- targets:
|
|
# AlertManager not typically used in development
|
|
# - alertmanager:9093
|
|
|
|
# ===================================================================
|
|
# Remote Write Configuration (for development data persistence)
|
|
# ===================================================================
|
|
# Uncomment if you want to send metrics to external storage
|
|
# remote_write:
|
|
# - url: "http://prometheus-remote-write:8080/api/v1/write"
|
|
# queue_config:
|
|
# max_samples_per_send: 1000
|
|
# max_shards: 200
|
|
# capacity: 2500
|