The demo application instrumented by OpenTelemetry framework.
deployments
directory contains specific deployments templates filesapplications
directory contains sources of the applicationaws-lambdas
- contains sources of the CheckSweets and Sweets AWS lambda functionsdotnet-core-calculator-svc
- contains sources of thecalculator-svc
applicationjs-the-coffee-bar-ui-clicker
- contains sources of the puppeteer which clicks on the frontend applicationpython-the-coffee-bar-apps
- contains sources ofthe-coffee-lover, the-coffee-bar, the-coffee-machine
andthe-cashdesk
applicationsruby-the-coffee-bar-apps
- contains sources ofmachine-svc, coffee-svc and water-svc
applicationsthe-coffee-bar-frontend
- contains sources of the web UI application
scripts
- directory contains build scripts
- Installed docker
- Installed docker-compose
Execute the build script build_local_all.sh
from scripts
directory. The script is going to build all of the
applications in the docker images. To run the application execute docker-compose up
command in the dockerization
directory.
The Coffee Bar is an application designed to test instrumentation possibilities using the OpenTelemetry framework. The application consists of several small services written in various languages, including Python, Ruby and ASP .NET Core.
Like in the real italian coffee bar there is espresso and his fans. The coffee enthusiast role goes to the-coffee-bar-frontend
web application or the-coffee-lover
app (traffic simulator). the-coffee-bar
is a small italian bar where the-coffee-machine
and the-cashdesk
are located. the-coffee-machine
with her parts: machine-svc
responsible for coffee preparation, coffee-svc
responsible for
providing coffee beans and water-svc
responsible for water provision. The espresso coffee is not for free.
Payment is handled by the-cashdesk
. To be sure that the sum to be paid is correct, calculator-svc
is present.
the-coffee-bar-frontend
- The Coffee Bar user interfacethe-coffee-lover
is asking for espresso coffee by HTTP POST request with specific JSON tothe-coffee-bar
service.the-coffee-bar
is sending the HTTP POST request tothe-coffee-machine
which sends a request tomachine-svc
.machine-svc
callscoffee-svc
andwater-svc
for ingredients and then prepares coffee.- When coffee is done
the-coffee-bar
is sending the payment request tothe-cashdesk
. the-cashdesk
application is queryingpostgres
to get a coffee price and then sends a request tocalculator-svc
calculator-svc
is doing some simple mathematical operations.
the-coffee-bar-frontend
- NodeJSthe-coffee-lover
- Pythonthe-coffee-bar
- Pythonlambdas
- Pythonthe-coffee-machine
- Pythonmachine-svc
- Rubycoffee-svc
- Rubymachine-svc
- Ruby
the-cashdesk
- Pythoncalculator-svc
- ASP .NET Corepostgres
In case of any issues please contact Mateusz 'mat' Rumian @ [email protected]