services: postgres: build: context: . dockerfile: Dockerfile entrypoint: /usr/local/bin/postgres-mock deploy: replicas: 1 ports: - "5431:5432" cplane: build: context: . dockerfile: Dockerfile entrypoint: /usr/local/bin/cplane-mock deploy: replicas: 1 environment: PROXY_COMPUTE_ADDR: "postgres:5432" ports: - "3010:3010" load: build: context: . dockerfile: Dockerfile entrypoint: /usr/local/bin/postgres-bench deploy: replicas: 4 environment: PG_HOST: "neon" PG_ADDR: "haproxy:5432" PG_CONNECTION_RATE: "${PG_CONNECTION_RATE:-50}" PG_CONNECTING_MAX: "${PG_CONNECTING_MAX:-150}" PG_CONNECTION_MAX: "${PG_CONNECTION_MAX:-250}" depends_on: - haproxy http-load: build: context: . dockerfile: Dockerfile entrypoint: /usr/local/bin/http-bench deploy: replicas: 1 environment: PG_HOST: "neon" PG_ADDR: "haproxy:5432" PG_CONNECTION_RATE: "${HTTP_CONNECTION_RATE:-50}" PG_CONNECTION_MAX: "${HTTP_CONNECTION_MAX:-5}" depends_on: - haproxy haproxy: image: haproxy:2.9 scale: 2 depends_on: - proxy volumes: - type: bind source: config/haproxy.cfg target: /usr/local/etc/haproxy/haproxy.cfg proxy: image: "ghcr.io/neondatabase/neon:latest" command: - proxy - --auth-backend - cplane-v1 - --auth-endpoint - "http://cplane:3010/proxy/api/v1" - -c - proxy.crt - -k - proxy.key - --proxy - "0.0.0.0:5432" - --http - "0.0.0.0:8080" - --wss - "0.0.0.0:443" - --project-info-cache - "size=100000,ttl=60m,max_roles=10,gc_interval=60m" - --wake-compute-cache - "size=100000,ttl=60m" - --proxy-protocol-v2=required environment: OTEL_EXPORTER_OTLP_ENDPOINT: "http://jaeger:4318" RUST_LOG: "info" volumes: - type: bind source: target/proxy.crt target: /data/proxy.crt - type: bind source: target/proxy.key target: /data/proxy.key depends_on: - cplane - postgres ports: - "5432:5432" - "4443:443" # jaeger: # image: jaegertracing/all-in-one:latest # ports: # - "16686:16686" prometheus: image: prom/prometheus user: root container_name: prometheus command: - "--config.file=/etc/prometheus/prometheus.yml" ports: - 9090:9090 restart: unless-stopped volumes: - type: bind source: config/prometheus.yml target: /etc/prometheus/prometheus.yml - prom_data:/prometheus grafana: image: grafana/grafana container_name: grafana ports: - 3000:3000 restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=grafana volumes: - type: bind source: config/grafana.yml target: /etc/grafana/provisioning/datasources/datasource.yml volumes: prom_data: