From 69032cb6e75af9e32a5a49af2019c4aa1df2a7eb Mon Sep 17 00:00:00 2001 From: StefanMoCoAt Date: Thu, 20 Nov 2025 22:03:37 +0100 Subject: [PATCH] refactoring: Env-Dateien und Docker-Dateien --- .dockerignore | 2 +- .env | 52 ++ .env.template | 53 ++ .gitignore | 4 +- {horses => _backup_chaos}/README.md | 0 .../Schlachtplan.md | 0 .../build-args/clients.env | 0 .../build-args/global.env | 0 .../build-args/infrastructure.env | 0 .../build-args/services.env | 0 _backup_chaos/config/env/.env | 81 -- {events => _backup_chaos/events}/README.md | 0 .../masterdata}/README.md | 0 {members => _backup_chaos/members}/README.md | 0 {docker => _backup_chaos}/secrets/README.md | 0 .../secrets/grafana_admin_password.txt | 0 .../secrets/grafana_admin_user.txt | 0 .../secrets/jwt_secret.txt | 0 .../secrets/keycloak_admin_password.txt | 0 .../secrets/keycloak_auth_client_secret.txt | 0 .../secrets/keycloak_client_secret.txt | 0 .../secrets/metrics_auth_password.txt | 0 .../secrets/metrics_auth_username.txt | 0 .../secrets/postgres_password.txt | 0 .../secrets/postgres_user.txt | 0 .../secrets/redis_password.txt | 0 .../secrets/setup-secrets.sh | 0 .../secrets/vnc_password.txt | 0 {docker => _backup_chaos}/versions.toml.bak | 0 compose.hardcoded.yaml | 153 ++++ compose.yaml | 177 ++-- {_backup_chaos/config => config}/.env.dev | 0 {_backup_chaos/config => config}/.env.prod | 0 {_backup_chaos/config => config}/.env.staging | 0 .../config => config}/.env.template | 0 {_backup_chaos/config => config}/.env.test | 0 {_backup_chaos/config => config}/README.md | 0 .../config => config}/application.yml | 0 {_backup_chaos/config => config}/central.toml | 0 .../config => config}/env/clients/web-app.env | 0 .../env/infrastructure/api-gateway.env | 0 .../env/services/events-service.env | 0 .../env/services/horses-service.env | 0 .../env/services/masterdata-service.env | 0 .../env/services/members-service.env | 0 .../env/services/ping-service.env | 0 .../kafka/secrets/kafka_jaas.conf | 0 .../kafka/secrets/zookeeper_jaas.conf | 0 .../monitoring/alertmanager/alertmanager.yml | 0 .../monitoring/elk/elasticsearch.yml | 0 .../monitoring/elk/logstash.conf | 0 .../application-overview-dashboard.json | 0 .../dashboards/infrastructure-dashboard.json | 0 .../grafana/dashboards/jvm-dashboard.json | 0 .../provisioning/dashboards/dashboard.yml | 0 .../provisioning/datasources/datasource.yml | 0 .../monitoring/prometheus.dev.yml | 0 .../monitoring/prometheus.prod.yml | 0 .../monitoring/prometheus.yml | 0 .../monitoring/prometheus/rules/alerts.yml | 0 .../config => config}/nginx/nginx.prod.conf | 0 .../postgres/postgresql.conf | 0 .../config => config}/redis/redis.conf | 0 .../config => config}/ssl/README-de.md | 0 infrastructure/README.md | 1 - logs/gateway.log | 810 +----------------- 66 files changed, 409 insertions(+), 924 deletions(-) create mode 100644 .env create mode 100644 .env.template rename {horses => _backup_chaos}/README.md (100%) rename Schlachtplan.md => _backup_chaos/Schlachtplan.md (100%) rename {docker => _backup_chaos}/build-args/clients.env (100%) rename {docker => _backup_chaos}/build-args/global.env (100%) rename {docker => _backup_chaos}/build-args/infrastructure.env (100%) rename {docker => _backup_chaos}/build-args/services.env (100%) delete mode 100644 _backup_chaos/config/env/.env rename {events => _backup_chaos/events}/README.md (100%) rename {masterdata => _backup_chaos/masterdata}/README.md (100%) rename {members => _backup_chaos/members}/README.md (100%) rename {docker => _backup_chaos}/secrets/README.md (100%) rename {docker => _backup_chaos}/secrets/grafana_admin_password.txt (100%) rename {docker => _backup_chaos}/secrets/grafana_admin_user.txt (100%) rename {docker => _backup_chaos}/secrets/jwt_secret.txt (100%) rename {docker => _backup_chaos}/secrets/keycloak_admin_password.txt (100%) rename {docker => _backup_chaos}/secrets/keycloak_auth_client_secret.txt (100%) rename {docker => _backup_chaos}/secrets/keycloak_client_secret.txt (100%) rename {docker => _backup_chaos}/secrets/metrics_auth_password.txt (100%) rename {docker => _backup_chaos}/secrets/metrics_auth_username.txt (100%) rename {docker => _backup_chaos}/secrets/postgres_password.txt (100%) rename {docker => _backup_chaos}/secrets/postgres_user.txt (100%) rename {docker => _backup_chaos}/secrets/redis_password.txt (100%) rename {docker => _backup_chaos}/secrets/setup-secrets.sh (100%) rename {docker => _backup_chaos}/secrets/vnc_password.txt (100%) rename {docker => _backup_chaos}/versions.toml.bak (100%) create mode 100644 compose.hardcoded.yaml rename {_backup_chaos/config => config}/.env.dev (100%) rename {_backup_chaos/config => config}/.env.prod (100%) rename {_backup_chaos/config => config}/.env.staging (100%) rename {_backup_chaos/config => config}/.env.template (100%) rename {_backup_chaos/config => config}/.env.test (100%) rename {_backup_chaos/config => config}/README.md (100%) rename {_backup_chaos/config => config}/application.yml (100%) rename {_backup_chaos/config => config}/central.toml (100%) rename {_backup_chaos/config => config}/env/clients/web-app.env (100%) rename {_backup_chaos/config => config}/env/infrastructure/api-gateway.env (100%) rename {_backup_chaos/config => config}/env/services/events-service.env (100%) rename {_backup_chaos/config => config}/env/services/horses-service.env (100%) rename {_backup_chaos/config => config}/env/services/masterdata-service.env (100%) rename {_backup_chaos/config => config}/env/services/members-service.env (100%) rename {_backup_chaos/config => config}/env/services/ping-service.env (100%) rename {_backup_chaos/config => config}/kafka/secrets/kafka_jaas.conf (100%) rename {_backup_chaos/config => config}/kafka/secrets/zookeeper_jaas.conf (100%) rename {_backup_chaos/config => config}/monitoring/alertmanager/alertmanager.yml (100%) rename {_backup_chaos/config => config}/monitoring/elk/elasticsearch.yml (100%) rename {_backup_chaos/config => config}/monitoring/elk/logstash.conf (100%) rename {_backup_chaos/config => config}/monitoring/grafana/dashboards/application-overview-dashboard.json (100%) rename {_backup_chaos/config => config}/monitoring/grafana/dashboards/infrastructure-dashboard.json (100%) rename {_backup_chaos/config => config}/monitoring/grafana/dashboards/jvm-dashboard.json (100%) rename {_backup_chaos/config => config}/monitoring/grafana/provisioning/dashboards/dashboard.yml (100%) rename {_backup_chaos/config => config}/monitoring/grafana/provisioning/datasources/datasource.yml (100%) rename {_backup_chaos/config => config}/monitoring/prometheus.dev.yml (100%) rename {_backup_chaos/config => config}/monitoring/prometheus.prod.yml (100%) rename {_backup_chaos/config => config}/monitoring/prometheus.yml (100%) rename {_backup_chaos/config => config}/monitoring/prometheus/rules/alerts.yml (100%) rename {_backup_chaos/config => config}/nginx/nginx.prod.conf (100%) rename {_backup_chaos/config => config}/postgres/postgresql.conf (100%) rename {_backup_chaos/config => config}/redis/redis.conf (100%) rename {_backup_chaos/config => config}/ssl/README-de.md (100%) delete mode 100644 infrastructure/README.md diff --git a/.dockerignore b/.dockerignore index f2b1295a..f973e99e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -171,7 +171,7 @@ backup.sh # =================================================================== # Security and certificates (never include in builds) # =================================================================== -_backup_chaos/config/ssl/ +config/ssl/ **/*.key **/*.pem **/*.p12 diff --git a/.env b/.env new file mode 100644 index 00000000..22a23974 --- /dev/null +++ b/.env @@ -0,0 +1,52 @@ +# ========================================== +# Meldestelle - Environment Configuration +# ========================================== +# Profil: DEVELOPMENT (Lokal) + +# --- PROJEKT EINSTELLUNGEN --- +COMPOSE_PROJECT_NAME=meldestelle +# Restart Policy: 'no' für Dev (Fehler sehen), 'always' für Prod +# RESTART_POLICY=no + +# --- POSTGRESQL (Datenbank) --- +POSTGRES_USER=pg-user +POSTGRES_PASSWORD=pg-password +POSTGRES_DB=meldestelle +# Port Mapping: Host:Container. +# Prod: 127.0.0.1:5432 (nur localhost) oder leer lassen +POSTGRES_PORT=5432:5432 + +# --- REDIS (Cache) --- +# Prod: 127.0.0.1:6379 oder leer lassen +REDIS_PORT=6379:6379 + +# --- KEYCLOAK (Identity Provider) --- +# Admin Login für die Konsole +KC_ADMIN_USER=kc-admin +KC_ADMIN_PASSWORD=kc-password +# Hostname (Wichtig für Redirects) +KC_HOSTNAME=localhost +# Port Mapping +KC_PORT=8180:8080 + +# --- PGADMIN (DB GUI) --- +PGADMIN_EMAIL=user@domain.com +PGADMIN_PASSWORD=strong-password +PGADMIN_PORT=8888:80 + +# --- GRAFANA (Monitoring GUI) --- +GF_ADMIN_USER=gf-admin +GF_ADMIN_PASSWORD=gf-password +GF_PORT=3000:3000 + +# --- PROMETHEUS (Metriken) --- +PROMETHEUS_PORT=9090:9090 + +# --- SERVICE DISCOVERY (Consul) --- +CONSUL_PORT=8500:8500 + +# --- API GATEWAY --- +# Der Port, der nach außen für Clients (Web App) offen ist +GATEWAY_PORT=8081 +# Debug Port für IntelliJ (Remote JVM Debug) +GATEWAY_DEBUG_PORT=5005 diff --git a/.env.template b/.env.template new file mode 100644 index 00000000..3ef34841 --- /dev/null +++ b/.env.template @@ -0,0 +1,53 @@ +# ==================================================== +# Meldestelle - Environment - Template Configuration +# ==================================================== +# Profil: DEVELOPMENT (Development) + +# --- PROJEKT EINSTELLUNGEN --- +# .env.template - Vorlage für Server/Kollegen +COMPOSE_PROJECT_NAME=meldestelle +# Restart Policy: 'no' für Dev (Fehler sehen), 'always' für Prod +RESTART_POLICY=always + +# --- POSTGRESQL (Datenbank) --- +POSTGRES_USER=pg-user +POSTGRES_PASSWORD= +POSTGRES_DB=meldestelle +# Port Mapping: Host:Container. +# Prod: 127.0.0.1:5432 (nur localhost) oder leer lassen +POSTGRES_PORT=5432:5432 + +# --- REDIS (Cache) --- +# Prod: 127.0.0.1:6379 oder leer lassen +REDIS_PORT=6379:6379 + +# --- KEYCLOAK (Identity Provider) --- +# Admin Login für die Konsole +KC_ADMIN_USER=kc-admin +KC_ADMIN_PASSWORD= +# Hostname (Wichtig für Redirects) +KC_HOSTNAME=localhost +# Port Mapping +KC_PORT=8180:8080 + +# --- PGADMIN (DB GUI) --- +PGADMIN_EMAIL=user@domain.com +PGADMIN_PASSWORD= +PGADMIN_PORT=8888:80 + +# --- GRAFANA (Monitoring GUI) --- +GF_ADMIN_USER=gf-admin +GF_ADMIN_PASSWORD= +GF_PORT=3000:3000 + +# --- PROMETHEUS (Metriken) --- +PROMETHEUS_PORT=9090:9090 + +# --- SERVICE DISCOVERY (Consul) --- +CONSUL_PORT=8500:8500 + +# --- API GATEWAY --- +# Der Port, der nach außen für Clients (Web App) offen ist +GATEWAY_PORT=8081 +# Debug Port für IntelliJ (Remote JVM Debug) +GATEWAY_DEBUG_PORT=5005 diff --git a/.gitignore b/.gitignore index 716b0ca3..5eaa1d53 100644 --- a/.gitignore +++ b/.gitignore @@ -23,11 +23,13 @@ logs/ # Kotlin/Java *.class +.env + # Generated diagrams build/diagrams/ # Local runtime secrets/overrides -_backup_chaos/config/env/.env.local +config/env/.env.local # Python virtual environment .venv/ diff --git a/horses/README.md b/_backup_chaos/README.md similarity index 100% rename from horses/README.md rename to _backup_chaos/README.md diff --git a/Schlachtplan.md b/_backup_chaos/Schlachtplan.md similarity index 100% rename from Schlachtplan.md rename to _backup_chaos/Schlachtplan.md diff --git a/docker/build-args/clients.env b/_backup_chaos/build-args/clients.env similarity index 100% rename from docker/build-args/clients.env rename to _backup_chaos/build-args/clients.env diff --git a/docker/build-args/global.env b/_backup_chaos/build-args/global.env similarity index 100% rename from docker/build-args/global.env rename to _backup_chaos/build-args/global.env diff --git a/docker/build-args/infrastructure.env b/_backup_chaos/build-args/infrastructure.env similarity index 100% rename from docker/build-args/infrastructure.env rename to _backup_chaos/build-args/infrastructure.env diff --git a/docker/build-args/services.env b/_backup_chaos/build-args/services.env similarity index 100% rename from docker/build-args/services.env rename to _backup_chaos/build-args/services.env diff --git a/_backup_chaos/config/env/.env b/_backup_chaos/config/env/.env deleted file mode 100644 index ccae2ccf..00000000 --- a/_backup_chaos/config/env/.env +++ /dev/null @@ -1,81 +0,0 @@ -# =================================================================== -# Global Runtime Environment - Single Source of Truth (Runtime) -# Location: config/env/.env -# Note: Do NOT put image versions or build-only values here. -# Secrets belong in config/env/.env.local (gitignored) or Docker/K8s secrets later. -# =================================================================== - -# ------------------------------------------------------------------- -# Runtime Profiles -# ------------------------------------------------------------------- -SPRING_PROFILES_ACTIVE=docker,keycloak - -# ------------------------------------------------------------------- -# Infrastructure Services - Port/Host Configuration -# ------------------------------------------------------------------- -POSTGRES_DB=meldestelle - -REDIS_PORT=6379 - -KEYCLOAK_PORT=8180 -KEYCLOAK_LOG_LEVEL=INFO - -CONSUL_HOST=consul -CONSUL_PORT=8500 -CONSUL_ENABLED=true - -ZOOKEEPER_CLIENT_PORT=2181 -KAFKA_PORT=9092 -KAFKA_BROKER_ID=1 -KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 - -PROMETHEUS_PORT=9090 -GRAFANA_PORT=3000 - -# ------------------------------------------------------------------- -# Application Services - Port/Host Configuration -# ------------------------------------------------------------------- -GATEWAY_HOST=api-gateway -GATEWAY_PORT=8081 - -PING_SERVICE_PORT=8082 -MEMBERS_SERVICE_PORT=8083 -HORSES_SERVICE_PORT=8084 -EVENTS_SERVICE_PORT=8085 -MASTERDATA_SERVICE_PORT=8086 -AUTH_SERVICE_PORT=8087 -MONITORING_SERVER_PORT=8088 - -# ------------------------------------------------------------------- -# Client Applications -# ------------------------------------------------------------------- -WEB_APP_PORT=4000 -WEB_APP_DOMAIN=localhost -NODE_ENV=production - -NGINX_WORKER_PROCESSES=auto -NGINX_WORKER_CONNECTIONS=1024 - -DESKTOP_VNC_WEB_PORT=6080 -DESKTOP_VNC_PORT=5901 -DESKTOP_APP_DOMAIN=localhost - -# ------------------------------------------------------------------- -# Security (non-secret runtime values) -# ------------------------------------------------------------------- -JWT_ISSUER=meldestelle-auth-server -JWT_AUDIENCE=meldestelle-services - -KEYCLOAK_REALM=meldestelle -KEYCLOAK_CLIENT_ID=api-gateway - -# ------------------------------------------------------------------- -# Data Storage -# ------------------------------------------------------------------- -DATA_PATH=./data - -# ------------------------------------------------------------------- -# Development & Features -# ------------------------------------------------------------------- -DEBUG=false -ENABLE_WASM=false diff --git a/events/README.md b/_backup_chaos/events/README.md similarity index 100% rename from events/README.md rename to _backup_chaos/events/README.md diff --git a/masterdata/README.md b/_backup_chaos/masterdata/README.md similarity index 100% rename from masterdata/README.md rename to _backup_chaos/masterdata/README.md diff --git a/members/README.md b/_backup_chaos/members/README.md similarity index 100% rename from members/README.md rename to _backup_chaos/members/README.md diff --git a/docker/secrets/README.md b/_backup_chaos/secrets/README.md similarity index 100% rename from docker/secrets/README.md rename to _backup_chaos/secrets/README.md diff --git a/docker/secrets/grafana_admin_password.txt b/_backup_chaos/secrets/grafana_admin_password.txt similarity index 100% rename from docker/secrets/grafana_admin_password.txt rename to _backup_chaos/secrets/grafana_admin_password.txt diff --git a/docker/secrets/grafana_admin_user.txt b/_backup_chaos/secrets/grafana_admin_user.txt similarity index 100% rename from docker/secrets/grafana_admin_user.txt rename to _backup_chaos/secrets/grafana_admin_user.txt diff --git a/docker/secrets/jwt_secret.txt b/_backup_chaos/secrets/jwt_secret.txt similarity index 100% rename from docker/secrets/jwt_secret.txt rename to _backup_chaos/secrets/jwt_secret.txt diff --git a/docker/secrets/keycloak_admin_password.txt b/_backup_chaos/secrets/keycloak_admin_password.txt similarity index 100% rename from docker/secrets/keycloak_admin_password.txt rename to _backup_chaos/secrets/keycloak_admin_password.txt diff --git a/docker/secrets/keycloak_auth_client_secret.txt b/_backup_chaos/secrets/keycloak_auth_client_secret.txt similarity index 100% rename from docker/secrets/keycloak_auth_client_secret.txt rename to _backup_chaos/secrets/keycloak_auth_client_secret.txt diff --git a/docker/secrets/keycloak_client_secret.txt b/_backup_chaos/secrets/keycloak_client_secret.txt similarity index 100% rename from docker/secrets/keycloak_client_secret.txt rename to _backup_chaos/secrets/keycloak_client_secret.txt diff --git a/docker/secrets/metrics_auth_password.txt b/_backup_chaos/secrets/metrics_auth_password.txt similarity index 100% rename from docker/secrets/metrics_auth_password.txt rename to _backup_chaos/secrets/metrics_auth_password.txt diff --git a/docker/secrets/metrics_auth_username.txt b/_backup_chaos/secrets/metrics_auth_username.txt similarity index 100% rename from docker/secrets/metrics_auth_username.txt rename to _backup_chaos/secrets/metrics_auth_username.txt diff --git a/docker/secrets/postgres_password.txt b/_backup_chaos/secrets/postgres_password.txt similarity index 100% rename from docker/secrets/postgres_password.txt rename to _backup_chaos/secrets/postgres_password.txt diff --git a/docker/secrets/postgres_user.txt b/_backup_chaos/secrets/postgres_user.txt similarity index 100% rename from docker/secrets/postgres_user.txt rename to _backup_chaos/secrets/postgres_user.txt diff --git a/docker/secrets/redis_password.txt b/_backup_chaos/secrets/redis_password.txt similarity index 100% rename from docker/secrets/redis_password.txt rename to _backup_chaos/secrets/redis_password.txt diff --git a/docker/secrets/setup-secrets.sh b/_backup_chaos/secrets/setup-secrets.sh similarity index 100% rename from docker/secrets/setup-secrets.sh rename to _backup_chaos/secrets/setup-secrets.sh diff --git a/docker/secrets/vnc_password.txt b/_backup_chaos/secrets/vnc_password.txt similarity index 100% rename from docker/secrets/vnc_password.txt rename to _backup_chaos/secrets/vnc_password.txt diff --git a/docker/versions.toml.bak b/_backup_chaos/versions.toml.bak similarity index 100% rename from docker/versions.toml.bak rename to _backup_chaos/versions.toml.bak diff --git a/compose.hardcoded.yaml b/compose.hardcoded.yaml new file mode 100644 index 00000000..edf08806 --- /dev/null +++ b/compose.hardcoded.yaml @@ -0,0 +1,153 @@ +name: meldestelle-hardcoded + +services: + # --- DATENBANK --- + postgres: + image: postgres:16-alpine + container_name: meldestelle-postgres + restart: unless-stopped + ports: + - "5432:5432" + environment: + POSTGRES_USER: pg-user + POSTGRES_PASSWORD: pg-password + POSTGRES_DB: meldestelle + volumes: + - postgres-data:/var/lib/postgresql/data + # Falls du Init-Scripte hast, lassen wir die erstmal weg, + # um Fehlerquellen zu reduzieren, oder lassen den Pfad, falls er existiert: + - ./docker/core/postgres:/docker-entrypoint-initdb.d:Z + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U pg-user -d meldestelle" ] + interval: 1s + timeout: 5s + retries: 3 + start_period: 30s + networks: + - meldestelle-network + + # --- DATENBANK-MANAGEMENT-TOOL --- + pgadmin: + image: dpage/pgadmin4:8 + container_name: pgadmin4_container + restart: unless-stopped + ports: + - "8888:80" + environment: + PGADMIN_DEFAULT_EMAIL: user@domain.com + PGADMIN_DEFAULT_PASSWORD: strong-password + volumes: + - pgadmin-data:/var/lib/pgadmin + healthcheck: + test: [ "CMD-SHELL", "wget --spider -q http://localhost:80/ || exit 1" ] + interval: 1s + timeout: 5s + retries: 3 + start_period: 30s + networks: + - meldestelle-network + + # --- CACHE --- + redis: + image: redis:7-alpine + container_name: meldestelle-redis + restart: unless-stopped + ports: + - "6379:6379" + volumes: + - redis-data:/data + command: redis-server --appendonly yes + healthcheck: + test: [ "CMD", "redis-cli" ] + interval: 1s + timeout: 5s + retries: 3 + networks: + - meldestelle-network + + # --- IDENTITY PROVIDER (Wartet auf Postgres) --- + keycloak: + image: quay.io/keycloak/keycloak:26.4 + container_name: meldestelle-keycloak + restart: unless-stopped + environment: + KC_HEALTH_ENABLED: true + KC_METRICS_ENABLED: true + KC_BOOTSTRAP_ADMIN_USERNAME: kc-admin + KC_BOOTSTRAP_ADMIN_PASSWORD: kc-password + KC_DB: postgres + KC_DB_URL: jdbc:postgresql://postgres:5432/meldestelle + KC_DB_USERNAME: pg-user + KC_DB_PASSWORD: pg-password + KC_HOSTNAME: localhost + ports: + - "8180:8080" + depends_on: + postgres: + condition: service_healthy + volumes: + - ./docker/core/keycloak:/opt/keycloak/data/import:Z + command: start-dev --import-realm + healthcheck: + test: [ "CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000" ] + interval: 20s + timeout: 10s + retries: 5 + start_period: 60s + networks: + - meldestelle-network + + # --- MONITORING --- + prometheus: + image: prom/prometheus:v2.54.1 + container_name: meldestelle-prometheus + restart: unless-stopped + ports: + - "9090:9090" + volumes: + - prometheus-data:/prometheus + - ./docker/monitoring/prometheus:/etc/prometheus:Z + command: + - --config.file=/etc/prometheus/prometheus.yml + - --storage.tsdb.retention.time=15d + healthcheck: + test: [ "CMD", "wget", "--spider", "-q", "http://localhost:9090/-/healthy" ] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + networks: + - meldestelle-network + + grafana: + image: grafana/grafana:11.3.0 + container_name: meldestelle-grafana + environment: + GF_SECURITY_ADMIN_USER: gf-admin + GF_SECURITY_ADMIN_PASSWORD: gf-password + ports: + - "3000:3000" + volumes: + - grafana-data:/var/lib/grafana + - ./docker/monitoring/grafana:/etc/grafana/provisioning:Z + depends_on: + - prometheus + healthcheck: + test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/health" ] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + networks: + - meldestelle-network + +volumes: + postgres-data: + pgadmin-data: + redis-data: + prometheus-data: + grafana-data: + +networks: + meldestelle-network: + driver: bridge diff --git a/compose.yaml b/compose.yaml index edf08806..ce75184d 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,87 +1,69 @@ -name: meldestelle-hardcoded +name: ${COMPOSE_PROJECT_NAME:-meldestelle} services: - # --- DATENBANK --- + # ========================================== + # CORE INFRASTRUCTURE + # ========================================== postgres: image: postgres:16-alpine - container_name: meldestelle-postgres + container_name: ${COMPOSE_PROJECT_NAME}-postgres restart: unless-stopped ports: - - "5432:5432" + - "${POSTGRES_PORT}" environment: - POSTGRES_USER: pg-user - POSTGRES_PASSWORD: pg-password - POSTGRES_DB: meldestelle + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} volumes: - postgres-data:/var/lib/postgresql/data - # Falls du Init-Scripte hast, lassen wir die erstmal weg, - # um Fehlerquellen zu reduzieren, oder lassen den Pfad, falls er existiert: - ./docker/core/postgres:/docker-entrypoint-initdb.d:Z healthcheck: - test: [ "CMD-SHELL", "pg_isready -U pg-user -d meldestelle" ] - interval: 1s + test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ] + interval: 5s timeout: 5s - retries: 3 - start_period: 30s + retries: 5 + start_period: 10s networks: - meldestelle-network - # --- DATENBANK-MANAGEMENT-TOOL --- - pgadmin: - image: dpage/pgadmin4:8 - container_name: pgadmin4_container - restart: unless-stopped - ports: - - "8888:80" - environment: - PGADMIN_DEFAULT_EMAIL: user@domain.com - PGADMIN_DEFAULT_PASSWORD: strong-password - volumes: - - pgadmin-data:/var/lib/pgadmin - healthcheck: - test: [ "CMD-SHELL", "wget --spider -q http://localhost:80/ || exit 1" ] - interval: 1s - timeout: 5s - retries: 3 - start_period: 30s - networks: - - meldestelle-network - - # --- CACHE --- redis: image: redis:7-alpine - container_name: meldestelle-redis + container_name: ${COMPOSE_PROJECT_NAME}-redis restart: unless-stopped ports: - - "6379:6379" + - "${REDIS_PORT}" volumes: - redis-data:/data command: redis-server --appendonly yes healthcheck: test: [ "CMD", "redis-cli" ] - interval: 1s + interval: 5s timeout: 5s retries: 3 networks: - meldestelle-network - # --- IDENTITY PROVIDER (Wartet auf Postgres) --- + # ========================================== + # SECURITY + # ========================================== keycloak: image: quay.io/keycloak/keycloak:26.4 - container_name: meldestelle-keycloak + container_name: ${COMPOSE_PROJECT_NAME}-keycloak restart: unless-stopped environment: KC_HEALTH_ENABLED: true KC_METRICS_ENABLED: true - KC_BOOTSTRAP_ADMIN_USERNAME: kc-admin - KC_BOOTSTRAP_ADMIN_PASSWORD: kc-password + # Admin Credentials aus .env + KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_ADMIN_USER} + KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_ADMIN_PASSWORD} + # DB Verbindung (Nutzt interne Docker-Namen, daher fest 'postgres') KC_DB: postgres - KC_DB_URL: jdbc:postgresql://postgres:5432/meldestelle - KC_DB_USERNAME: pg-user - KC_DB_PASSWORD: pg-password - KC_HOSTNAME: localhost + KC_DB_URL: jdbc:postgresql://postgres:5432/${POSTGRES_DB} + KC_DB_USERNAME: ${POSTGRES_USER} + KC_DB_PASSWORD: ${POSTGRES_PASSWORD} + KC_HOSTNAME: ${KC_HOSTNAME} ports: - - "8180:8080" + - "${KC_PORT}" depends_on: postgres: condition: service_healthy @@ -90,20 +72,36 @@ services: command: start-dev --import-realm healthcheck: test: [ "CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000" ] - interval: 20s - timeout: 10s + interval: 10s + timeout: 5s retries: 5 start_period: 60s networks: - meldestelle-network - # --- MONITORING --- - prometheus: - image: prom/prometheus:v2.54.1 - container_name: meldestelle-prometheus + # ========================================== + # MONITORING & TOOLS + # ========================================== + pgadmin: + image: dpage/pgadmin4:8 + container_name: ${COMPOSE_PROJECT_NAME}-pgadmin restart: unless-stopped ports: - - "9090:9090" + - "${PGADMIN_PORT:-8888:80}" + environment: + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD} + volumes: + - pgadmin-data:/var/lib/pgadmin + networks: + - meldestelle-network + + prometheus: + image: prom/prometheus:v2.54.1 + container_name: ${COMPOSE_PROJECT_NAME}-prometheus + restart: unless-stopped + ports: + - "${PROMETHEUS_PORT}" volumes: - prometheus-data:/prometheus - ./docker/monitoring/prometheus:/etc/prometheus:Z @@ -121,12 +119,13 @@ services: grafana: image: grafana/grafana:11.3.0 - container_name: meldestelle-grafana + container_name: ${COMPOSE_PROJECT_NAME}-grafana + restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER: gf-admin - GF_SECURITY_ADMIN_PASSWORD: gf-password + GF_SECURITY_ADMIN_USER: ${GF_ADMIN_USER} + GF_SECURITY_ADMIN_PASSWORD: ${GF_ADMIN_PASSWORD} ports: - - "3000:3000" + - "${GF_PORT}" volumes: - grafana-data:/var/lib/grafana - ./docker/monitoring/grafana:/etc/grafana/provisioning:Z @@ -141,6 +140,68 @@ services: networks: - meldestelle-network + # ========================================== + # APPLICATION GATEWAY + # ========================================== + + consul: + image: hashicorp/consul:1.15 + container_name: ${COMPOSE_PROJECT_NAME}-consul + restart: unless-stopped + ports: + - "${CONSUL_PORT}" + command: agent -server -bind=0.0.0.0 -client=0.0.0.0 -bootstrap-expect=1 -ui + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8500/v1/status/leader" ] + interval: 10s + timeout: 5s + retries: 3 + networks: + - meldestelle-network + + api-gateway: + build: + context: . + dockerfile: dockerfiles/infrastructure/gateway/Dockerfile + args: + # Build-Args aus deinen .env Dateien (werden hier statisch benötigt für den Build) + GRADLE_VERSION: 9.1.0 + JAVA_VERSION: 21 + VERSION: 1.0.0 + BUILD_DATE: "2025-11-20" + container_name: ${COMPOSE_PROJECT_NAME}-gateway + restart: no + ports: + - "${GATEWAY_PORT}" + - "${GATEWAY_DEBUG_PORT}" # Für Remote Debugging + environment: + SPRING_PROFILES_ACTIVE: docker + DEBUG: "true" + # --- VERBINDUNGEN --- + # Keycloak URL (INTERN im Docker Netzwerk!) + # Beachte: http://container-name:8080 (nicht localhost, nicht 8180) + SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI: http://${COMPOSE_PROJECT_NAME}-keycloak:8080/realms/meldestelle + SPRING_CLOUD_CONSUL_HOST: consul + SPRING_CLOUD_CONSUL_PORT: 8500 + # WICHTIG: Das Gateway muss wissen, wie es von anderen Containern erreicht wird (nicht localhost!) + SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME: api-gateway + # Postgres Verbindung (für Routes/Session, falls nötig) + SPRING_DATASOURCE_URL: jdbc:postgresql://${COMPOSE_PROJECT_NAME}-postgres:5432/${POSTGRES_DB} + SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER} + SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD} + # Logging + LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_CLOUD_GATEWAY: DEBUG + LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY: DEBUG + depends_on: + consul: + condition: service_healthy + postgres: + condition: service_healthy + keycloak: + condition: service_healthy + networks: + - meldestelle-network + volumes: postgres-data: pgadmin-data: diff --git a/_backup_chaos/config/.env.dev b/config/.env.dev similarity index 100% rename from _backup_chaos/config/.env.dev rename to config/.env.dev diff --git a/_backup_chaos/config/.env.prod b/config/.env.prod similarity index 100% rename from _backup_chaos/config/.env.prod rename to config/.env.prod diff --git a/_backup_chaos/config/.env.staging b/config/.env.staging similarity index 100% rename from _backup_chaos/config/.env.staging rename to config/.env.staging diff --git a/_backup_chaos/config/.env.template b/config/.env.template similarity index 100% rename from _backup_chaos/config/.env.template rename to config/.env.template diff --git a/_backup_chaos/config/.env.test b/config/.env.test similarity index 100% rename from _backup_chaos/config/.env.test rename to config/.env.test diff --git a/_backup_chaos/config/README.md b/config/README.md similarity index 100% rename from _backup_chaos/config/README.md rename to config/README.md diff --git a/_backup_chaos/config/application.yml b/config/application.yml similarity index 100% rename from _backup_chaos/config/application.yml rename to config/application.yml diff --git a/_backup_chaos/config/central.toml b/config/central.toml similarity index 100% rename from _backup_chaos/config/central.toml rename to config/central.toml diff --git a/_backup_chaos/config/env/clients/web-app.env b/config/env/clients/web-app.env similarity index 100% rename from _backup_chaos/config/env/clients/web-app.env rename to config/env/clients/web-app.env diff --git a/_backup_chaos/config/env/infrastructure/api-gateway.env b/config/env/infrastructure/api-gateway.env similarity index 100% rename from _backup_chaos/config/env/infrastructure/api-gateway.env rename to config/env/infrastructure/api-gateway.env diff --git a/_backup_chaos/config/env/services/events-service.env b/config/env/services/events-service.env similarity index 100% rename from _backup_chaos/config/env/services/events-service.env rename to config/env/services/events-service.env diff --git a/_backup_chaos/config/env/services/horses-service.env b/config/env/services/horses-service.env similarity index 100% rename from _backup_chaos/config/env/services/horses-service.env rename to config/env/services/horses-service.env diff --git a/_backup_chaos/config/env/services/masterdata-service.env b/config/env/services/masterdata-service.env similarity index 100% rename from _backup_chaos/config/env/services/masterdata-service.env rename to config/env/services/masterdata-service.env diff --git a/_backup_chaos/config/env/services/members-service.env b/config/env/services/members-service.env similarity index 100% rename from _backup_chaos/config/env/services/members-service.env rename to config/env/services/members-service.env diff --git a/_backup_chaos/config/env/services/ping-service.env b/config/env/services/ping-service.env similarity index 100% rename from _backup_chaos/config/env/services/ping-service.env rename to config/env/services/ping-service.env diff --git a/_backup_chaos/config/kafka/secrets/kafka_jaas.conf b/config/kafka/secrets/kafka_jaas.conf similarity index 100% rename from _backup_chaos/config/kafka/secrets/kafka_jaas.conf rename to config/kafka/secrets/kafka_jaas.conf diff --git a/_backup_chaos/config/kafka/secrets/zookeeper_jaas.conf b/config/kafka/secrets/zookeeper_jaas.conf similarity index 100% rename from _backup_chaos/config/kafka/secrets/zookeeper_jaas.conf rename to config/kafka/secrets/zookeeper_jaas.conf diff --git a/_backup_chaos/config/monitoring/alertmanager/alertmanager.yml b/config/monitoring/alertmanager/alertmanager.yml similarity index 100% rename from _backup_chaos/config/monitoring/alertmanager/alertmanager.yml rename to config/monitoring/alertmanager/alertmanager.yml diff --git a/_backup_chaos/config/monitoring/elk/elasticsearch.yml b/config/monitoring/elk/elasticsearch.yml similarity index 100% rename from _backup_chaos/config/monitoring/elk/elasticsearch.yml rename to config/monitoring/elk/elasticsearch.yml diff --git a/_backup_chaos/config/monitoring/elk/logstash.conf b/config/monitoring/elk/logstash.conf similarity index 100% rename from _backup_chaos/config/monitoring/elk/logstash.conf rename to config/monitoring/elk/logstash.conf diff --git a/_backup_chaos/config/monitoring/grafana/dashboards/application-overview-dashboard.json b/config/monitoring/grafana/dashboards/application-overview-dashboard.json similarity index 100% rename from _backup_chaos/config/monitoring/grafana/dashboards/application-overview-dashboard.json rename to config/monitoring/grafana/dashboards/application-overview-dashboard.json diff --git a/_backup_chaos/config/monitoring/grafana/dashboards/infrastructure-dashboard.json b/config/monitoring/grafana/dashboards/infrastructure-dashboard.json similarity index 100% rename from _backup_chaos/config/monitoring/grafana/dashboards/infrastructure-dashboard.json rename to config/monitoring/grafana/dashboards/infrastructure-dashboard.json diff --git a/_backup_chaos/config/monitoring/grafana/dashboards/jvm-dashboard.json b/config/monitoring/grafana/dashboards/jvm-dashboard.json similarity index 100% rename from _backup_chaos/config/monitoring/grafana/dashboards/jvm-dashboard.json rename to config/monitoring/grafana/dashboards/jvm-dashboard.json diff --git a/_backup_chaos/config/monitoring/grafana/provisioning/dashboards/dashboard.yml b/config/monitoring/grafana/provisioning/dashboards/dashboard.yml similarity index 100% rename from _backup_chaos/config/monitoring/grafana/provisioning/dashboards/dashboard.yml rename to config/monitoring/grafana/provisioning/dashboards/dashboard.yml diff --git a/_backup_chaos/config/monitoring/grafana/provisioning/datasources/datasource.yml b/config/monitoring/grafana/provisioning/datasources/datasource.yml similarity index 100% rename from _backup_chaos/config/monitoring/grafana/provisioning/datasources/datasource.yml rename to config/monitoring/grafana/provisioning/datasources/datasource.yml diff --git a/_backup_chaos/config/monitoring/prometheus.dev.yml b/config/monitoring/prometheus.dev.yml similarity index 100% rename from _backup_chaos/config/monitoring/prometheus.dev.yml rename to config/monitoring/prometheus.dev.yml diff --git a/_backup_chaos/config/monitoring/prometheus.prod.yml b/config/monitoring/prometheus.prod.yml similarity index 100% rename from _backup_chaos/config/monitoring/prometheus.prod.yml rename to config/monitoring/prometheus.prod.yml diff --git a/_backup_chaos/config/monitoring/prometheus.yml b/config/monitoring/prometheus.yml similarity index 100% rename from _backup_chaos/config/monitoring/prometheus.yml rename to config/monitoring/prometheus.yml diff --git a/_backup_chaos/config/monitoring/prometheus/rules/alerts.yml b/config/monitoring/prometheus/rules/alerts.yml similarity index 100% rename from _backup_chaos/config/monitoring/prometheus/rules/alerts.yml rename to config/monitoring/prometheus/rules/alerts.yml diff --git a/_backup_chaos/config/nginx/nginx.prod.conf b/config/nginx/nginx.prod.conf similarity index 100% rename from _backup_chaos/config/nginx/nginx.prod.conf rename to config/nginx/nginx.prod.conf diff --git a/_backup_chaos/config/postgres/postgresql.conf b/config/postgres/postgresql.conf similarity index 100% rename from _backup_chaos/config/postgres/postgresql.conf rename to config/postgres/postgresql.conf diff --git a/_backup_chaos/config/redis/redis.conf b/config/redis/redis.conf similarity index 100% rename from _backup_chaos/config/redis/redis.conf rename to config/redis/redis.conf diff --git a/_backup_chaos/config/ssl/README-de.md b/config/ssl/README-de.md similarity index 100% rename from _backup_chaos/config/ssl/README-de.md rename to config/ssl/README-de.md diff --git a/infrastructure/README.md b/infrastructure/README.md deleted file mode 100644 index c6b3cae5..00000000 --- a/infrastructure/README.md +++ /dev/null @@ -1 +0,0 @@ -# Infrastructure\n\nMinimal placeholder README. For infrastructure details, start at docs/index.md and docs/overview/system-overview.md diff --git a/logs/gateway.log b/logs/gateway.log index 8fd7538d..a661a680 100644 --- a/logs/gateway.log +++ b/logs/gateway.log @@ -1,217 +1,25 @@ -2025-11-06 10:46:06.716 [background-preinit] INFO [] o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final -2025-11-06 10:46:06.759 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Starting GatewayApplicationKt using Java 21.0.8 with PID 15079 (/home/stefan/WsMeldestelle/Meldestelle/infrastructure/gateway/build/classes/kotlin/main started by stefan in /home/stefan/WsMeldestelle/Meldestelle) -2025-11-06 10:46:06.759 [main] DEBUG [] a.m.i.gateway.GatewayApplicationKt - Running with Spring Boot v3.5.6, Spring v6.2.11 -2025-11-06 10:46:06.760 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - The following 1 profile is active: "dev" -2025-11-06 10:46:08.287 [main] INFO [] o.s.cloud.context.scope.GenericScope - BeanFactory id=4eb90187-1826-32ce-9dc7-fa80cb000915 -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight] -2025-11-06 10:46:10.119 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService] -2025-11-06 10:46:10.778 [main] INFO [] o.s.b.a.e.web.EndpointLinksResolver - Exposing 6 endpoints beneath base path '/actuator' -2025-11-06 10:46:11.345 [main] WARN [] o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath. -2025-11-06 10:46:11.425 [catalogWatchTaskScheduler-1] ERROR [] o.s.c.c.discovery.ConsulCatalogWatch - Error watching Consul CatalogServices -com.ecwid.consul.transport.TransportException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Verbindungsaufbau abgelehnt - at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:83) - at com.ecwid.consul.transport.AbstractHttpTransport.makeGetRequest(AbstractHttpTransport.java:36) - at com.ecwid.consul.v1.ConsulRawClient.makeGetRequest(ConsulRawClient.java:139) - at com.ecwid.consul.v1.catalog.CatalogConsulClient.getCatalogServices(CatalogConsulClient.java:143) - at com.ecwid.consul.v1.ConsulClient.getCatalogServices(ConsulClient.java:400) - at org.springframework.cloud.consul.discovery.ConsulCatalogWatch.catalogServicesWatch(ConsulCatalogWatch.java:131) - at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) - at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) - at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358) - at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) - at java.base/java.lang.Thread.run(Thread.java:1583) -Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Verbindungsaufbau abgelehnt - at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) - at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376) - at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) - at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) - at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) - at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) - at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) - at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:221) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:165) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:140) - at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:70) - ... 12 common frames omitted -Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt - at java.base/sun.nio.ch.Net.pollConnect(Native Method) - at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) - at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) - at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) - at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) - at java.base/java.net.Socket.connect(Socket.java:751) - at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) - at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) - ... 24 common frames omitted -2025-11-06 10:46:11.441 [main] INFO [] o.s.b.w.e.netty.NettyWebServer - Netty started on port 8080 (http) -2025-11-06 10:46:11.444 [main] INFO [] o.s.c.c.s.ConsulServiceRegistry - Registering service with consul: NewService{id='meldestelle-8080-5e7cc71f-5a59-423a-b812-15401589451e', name='meldestelle', tags=[], address='fedora', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://fedora:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} -2025-11-06 10:46:11.452 [main] ERROR [] o.s.c.c.s.ConsulServiceRegistry - Error registering service with consul: NewService{id='meldestelle-8080-5e7cc71f-5a59-423a-b812-15401589451e', name='meldestelle', tags=[], address='fedora', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://fedora:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} -com.ecwid.consul.transport.TransportException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Verbindungsaufbau abgelehnt - at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:83) - at com.ecwid.consul.transport.AbstractHttpTransport.makePutRequest(AbstractHttpTransport.java:49) - at com.ecwid.consul.v1.ConsulRawClient.makePutRequest(ConsulRawClient.java:163) - at com.ecwid.consul.v1.agent.AgentConsulClient.agentServiceRegister(AgentConsulClient.java:273) - at com.ecwid.consul.v1.ConsulClient.agentServiceRegister(ConsulClient.java:310) - at org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry.register(ConsulServiceRegistry.java:67) - at org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry.register(ConsulServiceRegistry.java:43) - at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:264) - at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration.register(ConsulAutoServiceRegistration.java:80) - at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:156) - at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration.start(ConsulAutoServiceRegistration.java:70) - at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationListener.onApplicationEvent(ConsulAutoServiceRegistrationListener.java:60) - at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) - at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) - at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454) - at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387) - at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:57) - at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:41) - at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) - at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:394) - at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:586) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:364) - at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:310) - at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1006) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:630) - at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) - at at.mocode.infrastructure.gateway.GatewayApplicationKt.main(GatewayApplication.kt:13) -Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Verbindungsaufbau abgelehnt - at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) - at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376) - at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) - at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) - at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) - at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) - at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) - at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:221) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:165) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:140) - at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:70) - ... 33 common frames omitted -Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt - at java.base/sun.nio.ch.Net.pollConnect(Native Method) - at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) - at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) - at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) - at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) - at java.base/java.net.Socket.connect(Socket.java:751) - at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) - at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) - ... 45 common frames omitted -2025-11-06 10:46:13.466 [main] WARN [] o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop' -2025-11-06 10:46:13.486 [main] INFO [] o.s.b.a.l.ConditionEvaluationReportLogger - - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-11-06 10:46:13.499 [main] ERROR [] o.s.boot.SpringApplication - Application run failed -org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop' - at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:408) - at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:394) - at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:586) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:364) - at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:310) - at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1006) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:630) - at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) - at at.mocode.infrastructure.gateway.GatewayApplicationKt.main(GatewayApplication.kt:13) -Caused by: com.ecwid.consul.transport.TransportException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Verbindungsaufbau abgelehnt - at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:83) - at com.ecwid.consul.transport.AbstractHttpTransport.makePutRequest(AbstractHttpTransport.java:49) - at com.ecwid.consul.v1.ConsulRawClient.makePutRequest(ConsulRawClient.java:163) - at com.ecwid.consul.v1.agent.AgentConsulClient.agentServiceRegister(AgentConsulClient.java:273) - at com.ecwid.consul.v1.ConsulClient.agentServiceRegister(ConsulClient.java:310) - at org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry.register(ConsulServiceRegistry.java:67) - at org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry.register(ConsulServiceRegistry.java:43) - at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:264) - at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration.register(ConsulAutoServiceRegistration.java:80) - at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:156) - at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration.start(ConsulAutoServiceRegistration.java:70) - at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationListener.onApplicationEvent(ConsulAutoServiceRegistrationListener.java:60) - at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) - at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) - at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454) - at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387) - at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:57) - at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:41) - at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) - ... 14 common frames omitted -Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Verbindungsaufbau abgelehnt - at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) - at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376) - at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) - at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) - at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) - at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) - at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) - at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:221) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:165) - at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:140) - at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:70) - ... 33 common frames omitted -Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt - at java.base/sun.nio.ch.Net.pollConnect(Native Method) - at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) - at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) - at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) - at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) - at java.base/java.net.Socket.connect(Socket.java:751) - at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) - at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) - ... 45 common frames omitted -2025-11-11 17:24:21.517 [background-preinit] INFO [] o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final -2025-11-11 17:24:21.541 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Starting GatewayApplicationKt using Java 21.0.9 with PID 60081 (/home/stefan-mo/WsMeldestelle/Meldestelle/infrastructure/gateway/build/classes/kotlin/main started by stefan-mo in /home/stefan-mo/WsMeldestelle/Meldestelle) -2025-11-11 17:24:21.542 [main] DEBUG [] a.m.i.gateway.GatewayApplicationKt - Running with Spring Boot v3.5.6, Spring v6.2.11 -2025-11-11 17:24:21.542 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - The following 1 profile is active: "dev" -2025-11-11 17:24:22.681 [main] INFO [] o.s.cloud.context.scope.GenericScope - BeanFactory id=4eb90187-1826-32ce-9dc7-fa80cb000915 -2025-11-11 17:24:24.774 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After] -2025-11-11 17:24:24.774 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before] -2025-11-11 17:24:24.774 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight] -2025-11-11 17:24:24.775 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService] -2025-11-11 17:24:25.480 [main] INFO [] o.s.b.a.e.web.EndpointLinksResolver - Exposing 6 endpoints beneath base path '/actuator' -2025-11-11 17:24:26.114 [main] WARN [] o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath. -2025-11-11 17:24:26.202 [catalogWatchTaskScheduler-1] ERROR [] o.s.c.c.discovery.ConsulCatalogWatch - Error watching Consul CatalogServices +2025-11-20 20:23:01.705 [background-preinit] INFO [] o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final +2025-11-20 20:23:01.758 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Starting GatewayApplicationKt using Java 21.0.9 with PID 144150 (/home/stefan-mo/WsMeldestelle/Meldestelle/infrastructure/gateway/build/classes/kotlin/main started by stefan-mo in /home/stefan-mo/WsMeldestelle/Meldestelle) +2025-11-20 20:23:01.758 [main] DEBUG [] a.m.i.gateway.GatewayApplicationKt - Running with Spring Boot v3.5.6, Spring v6.2.11 +2025-11-20 20:23:01.759 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - The following 1 profile is active: "dev" +2025-11-20 20:23:03.314 [main] INFO [] o.s.cloud.context.scope.GenericScope - BeanFactory id=4eb90187-1826-32ce-9dc7-fa80cb000915 +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr] +2025-11-20 20:23:05.564 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight] +2025-11-20 20:23:05.565 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService] +2025-11-20 20:23:06.235 [main] INFO [] o.s.b.a.e.web.EndpointLinksResolver - Exposing 6 endpoints beneath base path '/actuator' +2025-11-20 20:23:06.836 [main] WARN [] o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath. +2025-11-20 20:23:06.927 [catalogWatchTaskScheduler-1] ERROR [] o.s.c.c.discovery.ConsulCatalogWatch - Error watching Consul CatalogServices com.ecwid.consul.transport.TransportException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1] failed: Verbindungsaufbau abgelehnt at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:83) at com.ecwid.consul.transport.AbstractHttpTransport.makeGetRequest(AbstractHttpTransport.java:36) @@ -251,9 +59,9 @@ Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ... 24 common frames omitted -2025-11-11 17:24:26.221 [main] INFO [] o.s.b.w.e.netty.NettyWebServer - Netty started on port 8080 (http) -2025-11-11 17:24:26.224 [main] INFO [] o.s.c.c.s.ConsulServiceRegistry - Registering service with consul: NewService{id='meldestelle-8080-3272ca20-9767-47d5-907c-f731f4d8125e', name='meldestelle', tags=[], address='10.0.0.18', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} -2025-11-11 17:24:26.233 [main] ERROR [] o.s.c.c.s.ConsulServiceRegistry - Error registering service with consul: NewService{id='meldestelle-8080-3272ca20-9767-47d5-907c-f731f4d8125e', name='meldestelle', tags=[], address='10.0.0.18', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} +2025-11-20 20:23:06.950 [main] INFO [] o.s.b.w.e.netty.NettyWebServer - Netty started on port 8081 (http) +2025-11-20 20:23:06.954 [main] INFO [] o.s.c.c.s.ConsulServiceRegistry - Registering service with consul: NewService{id='api-gateway-8081-1d97a298-8905-4f90-9f0e-f615710dea85', name='api-gateway', tags=[], address='10.0.0.18', meta={secure=false}, port=8081, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8081/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} +2025-11-20 20:23:06.963 [main] ERROR [] o.s.c.c.s.ConsulServiceRegistry - Error registering service with consul: NewService{id='api-gateway-8081-1d97a298-8905-4f90-9f0e-f615710dea85', name='api-gateway', tags=[], address='10.0.0.18', meta={secure=false}, port=8081, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8081/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} com.ecwid.consul.transport.TransportException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1] failed: Verbindungsaufbau abgelehnt at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:83) at com.ecwid.consul.transport.AbstractHttpTransport.makePutRequest(AbstractHttpTransport.java:49) @@ -314,11 +122,11 @@ Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ... 45 common frames omitted -2025-11-11 17:24:28.246 [main] WARN [] o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop' -2025-11-11 17:24:28.270 [main] INFO [] o.s.b.a.l.ConditionEvaluationReportLogger - +2025-11-20 20:23:08.981 [main] WARN [] o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop' +2025-11-20 20:23:09.011 [main] INFO [] o.s.b.a.l.ConditionEvaluationReportLogger - Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-11-11 17:24:28.284 [main] ERROR [] o.s.boot.SpringApplication - Application run failed +2025-11-20 20:23:09.031 [main] ERROR [] o.s.boot.SpringApplication - Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop' at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:408) at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:394) @@ -382,565 +190,3 @@ Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ... 45 common frames omitted -2025-11-11 17:41:20.785 [background-preinit] INFO [] o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final -2025-11-11 17:41:20.807 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Starting GatewayApplicationKt using Java 21.0.9 with PID 66761 (/home/stefan-mo/WsMeldestelle/Meldestelle/infrastructure/gateway/build/classes/kotlin/main started by stefan-mo in /home/stefan-mo/WsMeldestelle/Meldestelle) -2025-11-11 17:41:20.807 [main] DEBUG [] a.m.i.gateway.GatewayApplicationKt - Running with Spring Boot v3.5.6, Spring v6.2.11 -2025-11-11 17:41:20.807 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - The following 1 profile is active: "dev" -2025-11-11 17:41:21.890 [main] INFO [] o.s.cloud.context.scope.GenericScope - BeanFactory id=4eb90187-1826-32ce-9dc7-fa80cb000915 -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr] -2025-11-11 17:41:23.800 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight] -2025-11-11 17:41:23.801 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService] -2025-11-11 17:41:24.395 [main] INFO [] o.s.b.a.e.web.EndpointLinksResolver - Exposing 6 endpoints beneath base path '/actuator' -2025-11-11 17:41:25.036 [main] WARN [] o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath. -2025-11-11 17:41:25.145 [main] INFO [] o.s.b.w.e.netty.NettyWebServer - Netty started on port 8080 (http) -2025-11-11 17:41:25.148 [main] INFO [] o.s.c.c.s.ConsulServiceRegistry - Registering service with consul: NewService{id='meldestelle-8080-4eca3f58-3081-422e-8d6f-88fd29eca82b', name='meldestelle', tags=[], address='10.0.0.18', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} -2025-11-11 17:41:25.293 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Started GatewayApplicationKt in 4.771 seconds (process running for 5.315) -2025-11-11 17:44:40.693 [parallel-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /[0:0:0:0:0:0:0:1]:60764 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.775 [parallel-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49250 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.781 [parallel-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49256 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.786 [parallel-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49272 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.790 [parallel-16] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49284 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.795 [parallel-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49300 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.800 [parallel-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49312 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.804 [parallel-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49316 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.809 [parallel-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49328 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.814 [parallel-15] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49336 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.818 [parallel-2] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49340 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.822 [parallel-5] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49342 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.827 [parallel-8] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49352 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.832 [parallel-11] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49366 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.835 [parallel-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49368 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.839 [parallel-1] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49370 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.843 [parallel-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49372 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.848 [parallel-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49382 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.851 [parallel-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49390 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.854 [parallel-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49404 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.857 [parallel-16] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49408 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.861 [parallel-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49412 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.865 [parallel-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49414 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.868 [parallel-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49424 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.871 [parallel-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49434 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.874 [parallel-15] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49448 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.891 [reactor-http-epoll-16] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 503 SERVICE_UNAVAILABLE -ResponseTime: 17ms -2025-11-11 17:44:40.894 [reactor-http-epoll-16] WARN [] i.m.p.PrometheusMeterRegistry - The meter (MeterId{name='gateway_errors_total', tags=[tag(application=meldestelle),tag(component=infrastructure),tag(environment=dev),tag(error_type=server_error),tag(gateway=api-gateway),tag(instance=meldestelle-8080-7c278a17-e0ca-4d8a-ac26-1dbd531a9168),tag(method=GET),tag(path=/),tag(service=gateway),tag(status=503),tag(status_series=5xx)]}) registration has failed: Prometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter named 'gateway_errors' containing tag keys [application, component, environment, gateway, instance, service]. The meter you are attempting to register has keys [application, component, environment, error_type, gateway, instance, method, path, service, status, status_series]. Note that subsequent logs will be logged at debug level. -2025-11-11 17:44:40.950 [parallel-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49464 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:40.952 [reactor-http-epoll-2] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 503 SERVICE_UNAVAILABLE -ResponseTime: 2ms -2025-11-11 17:44:41.058 [parallel-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49478 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.060 [reactor-http-epoll-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 503 SERVICE_UNAVAILABLE -ResponseTime: 3ms -2025-11-11 17:44:41.265 [parallel-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:38924 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.267 [reactor-http-epoll-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 503 SERVICE_UNAVAILABLE -ResponseTime: 2ms -2025-11-11 17:44:41.275 [reactor-http-epoll-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 407ms -2025-11-11 17:44:41.275 [reactor-http-epoll-15] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 404ms -2025-11-11 17:44:41.276 [reactor-http-epoll-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 411ms -2025-11-11 17:44:41.277 [reactor-http-epoll-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 416ms -2025-11-11 17:44:41.278 [reactor-http-epoll-11] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 421ms -2025-11-11 17:44:41.279 [reactor-http-epoll-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 425ms -2025-11-11 17:44:41.280 [reactor-http-epoll-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 429ms -2025-11-11 17:44:41.282 [reactor-http-epoll-8] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 434ms -2025-11-11 17:44:41.283 [reactor-http-epoll-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 440ms -2025-11-11 17:44:41.284 [reactor-http-epoll-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 445ms -2025-11-11 17:44:41.285 [reactor-http-epoll-5] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 450ms -2025-11-11 17:44:41.287 [reactor-http-epoll-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 455ms -2025-11-11 17:44:41.288 [reactor-http-epoll-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 461ms -2025-11-11 17:44:41.289 [reactor-http-epoll-2] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 467ms -2025-11-11 17:44:41.291 [reactor-http-epoll-1] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 473ms -2025-11-11 17:44:41.292 [reactor-http-epoll-16] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 478ms -2025-11-11 17:44:41.294 [reactor-http-epoll-15] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 485ms -2025-11-11 17:44:41.295 [reactor-http-epoll-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 491ms -2025-11-11 17:44:41.297 [reactor-http-epoll-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 497ms -2025-11-11 17:44:41.298 [reactor-http-epoll-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 503ms -2025-11-11 17:44:41.300 [reactor-http-epoll-11] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 510ms -2025-11-11 17:44:41.303 [reactor-http-epoll-10] WARN [] r.n.http.client.HttpClientConnect - [0533bbdd-1, L:/127.0.0.1:49284 - R:localhost/127.0.0.1:8080] The connection observed an error -io.netty.handler.codec.http.TooLongHttpHeaderException: HTTP header is larger than 8192 bytes. - at io.netty.handler.codec.http.HttpObjectDecoder$HeaderParser.newException(HttpObjectDecoder.java:1224) - at io.netty.handler.codec.http.HttpObjectDecoder$HeaderParser.parse(HttpObjectDecoder.java:1188) - at io.netty.handler.codec.http.HttpObjectDecoder.readHeaders(HttpObjectDecoder.java:768) - at io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:382) - at io.netty.handler.codec.http.HttpClientCodec$Decoder.decode(HttpClientCodec.java:320) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799) - at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:425) - at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) - at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) - at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) - at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-11-11 17:44:41.306 [reactor-http-epoll-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 503 SERVICE_UNAVAILABLE -ResponseTime: 521ms -2025-11-11 17:44:41.361 [parallel-8] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:38924 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.363 [parallel-11] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49434 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.366 [parallel-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49424 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.368 [parallel-1] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49414 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.370 [parallel-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49412 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.372 [parallel-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49408 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.375 [parallel-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49404 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.378 [parallel-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49390 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.380 [parallel-16] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49382 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.382 [parallel-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49372 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.386 [parallel-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49370 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.388 [parallel-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49368 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.391 [parallel-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49366 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.394 [parallel-15] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49352 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.396 [parallel-2] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49342 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.399 [parallel-5] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49340 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.401 [parallel-8] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49336 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.404 [parallel-11] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49328 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.405 [parallel-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49316 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.408 [parallel-1] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49312 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.410 [parallel-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:49300 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.413 [parallel-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:38930 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.416 [parallel-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:38936 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.416 [parallel-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 429 TOO_MANY_REQUESTS -ResponseTime: 0ms -2025-11-11 17:44:41.419 [reactor-http-epoll-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 6ms -2025-11-11 17:44:41.419 [reactor-http-epoll-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 9ms -2025-11-11 17:44:41.420 [reactor-http-epoll-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 12ms -2025-11-11 17:44:41.421 [reactor-http-epoll-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 16ms -2025-11-11 17:44:41.422 [reactor-http-epoll-15] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 18ms -2025-11-11 17:44:41.424 [reactor-http-epoll-16] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 23ms -2025-11-11 17:44:41.425 [reactor-http-epoll-1] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 26ms -2025-11-11 17:44:41.426 [reactor-http-epoll-2] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 30ms -2025-11-11 17:44:41.427 [reactor-http-epoll-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 33ms -2025-11-11 17:44:41.428 [reactor-http-epoll-4] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 37ms -2025-11-11 17:44:41.429 [reactor-http-epoll-5] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 41ms -2025-11-11 17:44:41.430 [reactor-http-epoll-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 44ms -2025-11-11 17:44:41.432 [reactor-http-epoll-7] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 50ms -2025-11-11 17:44:41.433 [reactor-http-epoll-8] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 53ms -2025-11-11 17:44:41.434 [reactor-http-epoll-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 56ms -2025-11-11 17:44:41.435 [reactor-http-epoll-10] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 60ms -2025-11-11 17:44:41.436 [reactor-http-epoll-11] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 64ms -2025-11-11 17:44:41.438 [reactor-http-epoll-12] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 67ms -2025-11-11 17:44:41.439 [reactor-http-epoll-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 71ms -2025-11-11 17:44:41.441 [reactor-http-epoll-14] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 75ms -2025-11-11 17:44:41.441 [reactor-http-epoll-13] WARN [] r.n.http.client.HttpClientConnect - [5e3549f4-2, L:/127.0.0.1:49424 - R:localhost/127.0.0.1:8080] The connection observed an error -io.netty.handler.codec.http.TooLongHttpHeaderException: HTTP header is larger than 8192 bytes. - at io.netty.handler.codec.http.HttpObjectDecoder$HeaderParser.newException(HttpObjectDecoder.java:1224) - at io.netty.handler.codec.http.HttpObjectDecoder$HeaderParser.parse(HttpObjectDecoder.java:1188) - at io.netty.handler.codec.http.HttpObjectDecoder.readHeaders(HttpObjectDecoder.java:768) - at io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:382) - at io.netty.handler.codec.http.HttpClientCodec$Decoder.decode(HttpClientCodec.java:320) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799) - at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:425) - at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) - at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) - at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) - at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-11-11 17:44:41.443 [reactor-http-epoll-13] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 503 SERVICE_UNAVAILABLE -ResponseTime: 80ms -2025-11-11 17:44:41.497 [parallel-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [REQUEST] [f8c25936-6e27-4bee-9288-a72992217a64] -Method: GET -URI: http://localhost:8080/ -RemoteAddress: /127.0.0.1:38936 -UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 -2025-11-11 17:44:41.497 [parallel-3] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 429 TOO_MANY_REQUESTS -ResponseTime: 0ms -2025-11-11 17:44:41.500 [reactor-http-epoll-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 139ms -2025-11-11 17:44:41.501 [reactor-http-epoll-9] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 720ms -2025-11-11 17:44:41.502 [reactor-http-epoll-8] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 727ms -2025-11-11 17:44:41.502 [reactor-http-epoll-6] INFO [] a.m.i.g.config.EnhancedLoggingFilter - [RESPONSE] [f8c25936-6e27-4bee-9288-a72992217a64] -Status: 200 OK -ResponseTime: 809ms -2025-11-11 17:54:36.819 [SpringApplicationShutdownHook] INFO [] o.s.b.w.e.netty.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete -2025-11-11 17:54:36.821 [netty-shutdown] INFO [] o.s.b.w.e.netty.GracefulShutdown - Graceful shutdown complete -2025-11-11 17:54:38.831 [SpringApplicationShutdownHook] INFO [] o.s.c.c.s.ConsulServiceRegistry - Deregistering service with consul: meldestelle-8080-4eca3f58-3081-422e-8d6f-88fd29eca82b -2025-11-11 17:56:49.328 [background-preinit] INFO [] o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final -2025-11-11 17:56:49.354 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Starting GatewayApplicationKt using Java 21.0.9 with PID 77080 (/home/stefan-mo/WsMeldestelle/Meldestelle/infrastructure/gateway/build/classes/kotlin/main started by stefan-mo in /home/stefan-mo/WsMeldestelle/Meldestelle) -2025-11-11 17:56:49.355 [main] DEBUG [] a.m.i.gateway.GatewayApplicationKt - Running with Spring Boot v3.5.6, Spring v6.2.11 -2025-11-11 17:56:49.355 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - The following 1 profile is active: "dev" -2025-11-11 17:56:50.482 [main] INFO [] o.s.cloud.context.scope.GenericScope - BeanFactory id=4eb90187-1826-32ce-9dc7-fa80cb000915 -2025-11-11 17:56:52.459 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight] -2025-11-11 17:56:52.460 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService] -2025-11-11 17:56:53.117 [main] INFO [] o.s.b.a.e.web.EndpointLinksResolver - Exposing 6 endpoints beneath base path '/actuator' -2025-11-11 17:56:53.677 [main] WARN [] o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath. -2025-11-11 17:56:53.786 [main] INFO [] o.s.b.w.e.netty.NettyWebServer - Netty started on port 8080 (http) -2025-11-11 17:56:53.788 [main] INFO [] o.s.c.c.s.ConsulServiceRegistry - Registering service with consul: NewService{id='meldestelle-8080-53c3b7cb-cff4-4c60-a423-ee7f507acd3b', name='meldestelle', tags=[], address='10.0.0.18', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} -2025-11-11 17:56:53.925 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Started GatewayApplicationKt in 4.9 seconds (process running for 5.483) -2025-11-11 17:57:12.800 [SpringApplicationShutdownHook] INFO [] o.s.b.w.e.netty.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete -2025-11-11 17:57:12.802 [netty-shutdown] INFO [] o.s.b.w.e.netty.GracefulShutdown - Graceful shutdown complete -2025-11-11 17:57:14.812 [SpringApplicationShutdownHook] INFO [] o.s.c.c.s.ConsulServiceRegistry - Deregistering service with consul: meldestelle-8080-53c3b7cb-cff4-4c60-a423-ee7f507acd3b -2025-11-11 18:13:55.110 [background-preinit] INFO [] o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final -2025-11-11 18:13:55.137 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Starting GatewayApplicationKt using Java 21.0.9 with PID 91093 (/home/stefan-mo/WsMeldestelle/Meldestelle/infrastructure/gateway/build/classes/kotlin/main started by stefan-mo in /home/stefan-mo/WsMeldestelle/Meldestelle) -2025-11-11 18:13:55.138 [main] DEBUG [] a.m.i.gateway.GatewayApplicationKt - Running with Spring Boot v3.5.6, Spring v6.2.11 -2025-11-11 18:13:55.138 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - The following 1 profile is active: "dev" -2025-11-11 18:13:56.308 [main] INFO [] o.s.cloud.context.scope.GenericScope - BeanFactory id=4eb90187-1826-32ce-9dc7-fa80cb000915 -2025-11-11 18:13:58.251 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After] -2025-11-11 18:13:58.251 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before] -2025-11-11 18:13:58.251 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight] -2025-11-11 18:13:58.252 [main] INFO [] o.s.c.g.r.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService] -2025-11-11 18:13:58.898 [main] INFO [] o.s.b.a.e.web.EndpointLinksResolver - Exposing 6 endpoints beneath base path '/actuator' -2025-11-11 18:13:59.469 [main] WARN [] o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath. -2025-11-11 18:13:59.562 [main] INFO [] o.s.b.w.e.netty.NettyWebServer - Netty started on port 8080 (http) -2025-11-11 18:13:59.564 [main] INFO [] o.s.c.c.s.ConsulServiceRegistry - Registering service with consul: NewService{id='meldestelle-8080-d4055d7b-f605-4fde-a992-8b4f3adb8a86', name='meldestelle', tags=[], address='10.0.0.18', meta={secure=false}, port=8080, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://10.0.0.18:8080/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null} -2025-11-11 18:13:59.707 [main] INFO [] a.m.i.gateway.GatewayApplicationKt - Started GatewayApplicationKt in 4.898 seconds (process running for 5.441) -2025-11-11 18:14:46.705 [SpringApplicationShutdownHook] INFO [] o.s.b.w.e.netty.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete -2025-11-11 18:14:46.706 [netty-shutdown] INFO [] o.s.b.w.e.netty.GracefulShutdown - Graceful shutdown complete -2025-11-11 18:14:48.719 [SpringApplicationShutdownHook] INFO [] o.s.c.c.s.ConsulServiceRegistry - Deregistering service with consul: meldestelle-8080-d4055d7b-f605-4fde-a992-8b4f3adb8a86