These labs run a set of Chaos Engineering experiments against a very simple web application.
A front
application is listening for incoming requests on its root path.
When it gets one, it calls the middle
service over HTTP. The middle
service
in turn calls the back
service. The response of the back
service is
forwarded back to the middle
then front
services, finally to the client.
The front
and middle
services have a timeout of 1.0 second for their
respective calls. When such timeout, or any transport error, occurs, they
still return a 200 response but with the last seen value known to them and
an error message. The client can therefore inspect the payload to determine
it receives an actual stalled/errored response.
All the applications expose a /metrics
endpoint monitored by Prometheus. In
particular they expose the number of errors seen so far.
All applications run in the default
namespace.