Before we talk about instrumentation, let's review the chat application. It was adopted from a demo (https://github.com/saada/tracing-kafka) presented at the inaugural Distributed Tracing NYC meetup [1] by Mahmoud (Moody) Saada, a site reliability engineer at machine learning company Agolo.
Once the application is running, we will be able to access its web frontend at http://localhost:8080/. Each visitor is given a random screen name, such as Guest-1324, which can be changed using the Edit button. The chat functionality is exceedingly basic: the new messages appear at the bottom, with the name of the sender and a relative timestamp. One can enter a message in the form of /giphy <topic>, which causes the application to make a call to the giphy.com REST API and display a random image on the specified topic.
The application consists of several frontend and backend components, depicted in...