Phase 4 verification harness in loadtest/: - bench-pool.js: standalone dep-free model showing pool of 4 = 4x and pool of 8 = 8x throughput vs a single serialized connection. - run.js: autocannon harness for the read path (req/s + p50/p90/p99). - docker-compose.loadtest.yml + init.sql: seeded Postgres + app read-path stack (no Prosody) for local load testing. - README.md: usage and staging validation checklist. Part-of: <http://gitlab.vnc.biz/uxf/prosody-muc-rest/-/merge_requests/3>
56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
# docker-compose.loadtest.yml — local read-path stack for prosody-muc-rest.
|
|
#
|
|
# Brings up Postgres (seeded) + the app built from ./Dockerfile. No Prosody,
|
|
# so only the read endpoints (GET /groupchats, GET /groupchats/:target,
|
|
# GET /health, GET /occupants/:target) are meaningful. The telnet pool will
|
|
# fail to connect on startup (logged, non-fatal) — read paths don't use it.
|
|
#
|
|
# Usage:
|
|
# docker compose -f loadtest/docker-compose.loadtest.yml up --build
|
|
# # in another terminal:
|
|
# node loadtest/run.js http://127.0.0.1:9511 10 50
|
|
# docker compose -f loadtest/docker-compose.loadtest.yml down -v
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_DB: prosody
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
ports:
|
|
- "5433:5432"
|
|
volumes:
|
|
- ./loadtest/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d prosody"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 20
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
environment:
|
|
NODE_ENV: development
|
|
servicePort: "9511"
|
|
dbHost: postgres
|
|
dbPort: "5432"
|
|
dbName: prosody
|
|
dbUser: postgres
|
|
dbPass: postgres
|
|
disableDBtls: "true"
|
|
mucDomain: conference.demo.vnc.de
|
|
telnetHost: "127.0.0.1"
|
|
telneetPort: "5582"
|
|
telnetTimeout: "5000"
|
|
telnetPoolSize: "4"
|
|
prosodyRESTUrl: "http://localhost/rest"
|
|
prosodyRESTsecret: dummy
|
|
ports:
|
|
- "9511:9511"
|