mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			128 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| version: "2"
 | |
| 
 | |
| networks:
 | |
|   loadtest_net:
 | |
| 
 | |
| services:
 | |
|   db:
 | |
|     image: postgres
 | |
|     restart: always
 | |
|     environment:
 | |
|       POSTGRES_USER: postgres
 | |
|       POSTGRES_PASSWORD: postgres
 | |
|       POSTGRES_DB: loadtest_router
 | |
|     networks:
 | |
|       - loadtest_net
 | |
|     healthcheck:
 | |
|       test: [ "CMD-SHELL", "pg_isready -U postgres" ]
 | |
|       interval: 5s
 | |
|       timeout: 5s
 | |
|       retries: 5
 | |
| 
 | |
|   stripe-mock:
 | |
|     image: heyrutvik/stripe-mock:latest
 | |
|     networks:
 | |
|       - loadtest_net
 | |
| 
 | |
|   redis-queue:
 | |
|     image: redis:7
 | |
|     networks:
 | |
|       - loadtest_net
 | |
| 
 | |
|   router-server:
 | |
|     build:
 | |
|       context: ..
 | |
|       dockerfile: ./loadtest/Dockerfile
 | |
|     cpuset: "0"
 | |
|     volumes:
 | |
|       - ./config:/config
 | |
|       - ./logs.tmp:/app/logs
 | |
|     command:
 | |
|       - /bin/bash
 | |
|       - -c
 | |
|       - |
 | |
|         ./diesel migration run
 | |
|         ./router -f /config/development.toml
 | |
|     ports:
 | |
|       - "8080"
 | |
|     environment:
 | |
|       DATABASE_URL: postgres://postgres:postgres@db/loadtest_router
 | |
|       RUST_LOG: INFO
 | |
|       RUN_ENV: development
 | |
|       OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4317
 | |
|     networks:
 | |
|       - loadtest_net
 | |
|     healthcheck:
 | |
|       test: curl --fail http://router-server:8080/health || exit 1
 | |
|       interval: 5s
 | |
|       timeout: 5s
 | |
|       retries: 5
 | |
|     depends_on:
 | |
|       db:
 | |
|         condition: service_healthy
 | |
|       stripe-mock:
 | |
|         condition: service_started
 | |
|       redis-queue:
 | |
|         condition: service_started
 | |
|       influxdb:
 | |
|         condition: service_started
 | |
|       otel-collector:
 | |
|         condition: service_started
 | |
|       tempo:
 | |
|         condition: service_started
 | |
|       grafana:
 | |
|         condition: service_started
 | |
| 
 | |
|   k6:
 | |
|     image: loadimpact/k6:latest
 | |
|     volumes:
 | |
|       - ./k6:/scripts
 | |
|     command: run /scripts/${LOADTEST_K6_SCRIPT}
 | |
|     networks:
 | |
|       - loadtest_net
 | |
|     environment:
 | |
|       - LOADTEST_RUN_NAME=${LOADTEST_RUN_NAME}
 | |
|       - K6_OUT=influxdb=http://influxdb:8086/scripts
 | |
|     depends_on:
 | |
|       router-server:
 | |
|         condition: service_healthy
 | |
| 
 | |
|   influxdb:
 | |
|     image: influxdb:1.8
 | |
|     networks:
 | |
|       - loadtest_net
 | |
|     environment:
 | |
|       - INFLUXDB_DB=scripts
 | |
| 
 | |
|   otel-collector:
 | |
|     image: otel/opentelemetry-collector:latest
 | |
|     command: --config=/etc/otel-collector.yaml
 | |
|     networks:
 | |
|       - loadtest_net
 | |
|     volumes:
 | |
|       - ./config/otel-collector.yaml:/etc/otel-collector.yaml
 | |
| 
 | |
|   tempo:
 | |
|     image: grafana/tempo:latest
 | |
|     command: -config.file=/etc/tempo.yaml
 | |
|     volumes:
 | |
|       - ./config/tempo.yaml:/etc/tempo.yaml
 | |
|       - ./tempo.tmp:/tmp/tempo
 | |
|     networks:
 | |
|       - loadtest_net
 | |
| 
 | |
|   grafana:
 | |
|     image: grafana/grafana:latest
 | |
|     ports:
 | |
|       - "3002:3000"
 | |
|     networks:
 | |
|       - loadtest_net
 | |
|     environment:
 | |
|       - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
 | |
|       - GF_AUTH_ANONYMOUS_ENABLED=true
 | |
|       - GF_AUTH_BASIC_ENABLED=false
 | |
|     volumes:
 | |
|       - ./grafana/dashboards:/var/lib/grafana/dashboards
 | |
|       - ./grafana/grafana-dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml
 | |
|       - ./grafana/grafana-datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml
 | 
