- Install dependencies:
make
- Be aware that composer is configured to ignore file system changes. You must run
make
each time you create, move, rename or delete files insrc
. - Start the containers:
docker-compose up -d
- Watch the client using the app:
docker-compose logs -f client
- Open Grafana http://localhost:3000 (credentials = admin/admin)
- add data source (Configuration -> Data Sources -> Add Data Source): URL = http://influxdb:8086, db =
metrics
- add dashboard (New Dashboard -> Import Dashboard -> Upload .json file) from
docker/grafana/dashboards
- Scale client application to 10, 20, 40 instances and watch the changes on the dashboard:
make scale-up clients=10
(make scale-down
for downgrading the load back to 1 client again) - watch all the containers live with
ctop
:
docker run -it --name ctop --rm -v /var/run/docker.sock:/var/run/docker.sock wrfly/ctop:latest
See test/support/todo.http
.
- Registration
- Login
- Get all lists
- Get one list
- Create list
- Delete list
- Get tasks
- Create task
- Mark task as done
- Mark task as not done
- Delete task
- HTTP response status metrics
- Response time metrics
- Business metrics (total/minute):
- registrations
- logins
- created lists
- created tasks
- done tasks
- Decrease/increase number of clients.
- Decrease/increase wait time between client actions.
- Decrease/increase number of php-fpm workers.
- Decrease/increase size of nginx connection pool.
- Drop/add mysql index.
- Flush redis.
- Decrease curl connection timeout on client.
- Decrease curl operation timeout on client.
- Add sleep in server index.php.