From the course: DevOps Foundations: Distributed Tracing

Your lab and test app

From the course: DevOps Foundations: Distributed Tracing

Start my 1-month free trial

Your lab and test app

- [Instructor] The primary goal for this lab is to help you practice the different instrumentation techniques in a rich application environment. Let's go over the prereqs. You can use any environment to run the lab. For running the Jaeger part of the lab, we'll need a Docker daemon and Docker tool set. To build the application, the microservices applications that we're experimenting with running in Java, you need Maven. You need a Java version 7+ running on the machine. If you're interacting directly with the whole subproject on Git, obviously you need a Git client. And I'm using Eclipse for code and text editing. And there's one more dependency that you need for the embedded MariaDB, which is you need to install OpenSSL. First, a quick shout out to the Zipkin and Jaeger teams, I've borrowed their application example code heavily as I've built sort of a more complete lab. You can find both the Zipkin Brave example and the Jaeger Java example on the respective sites. The test application is included in the exercise files. There's a starter application that we'll be building like LEGO blocks throughout the chapter two and chapter three labs. Again, if you want to get the most recent version of the TraceLab application, I have it hosted on GitHub. And also, a copy of the completed lab will be included in the exercise files. Let's look at the application architecture, so we have a spring web application that is running as a frontend service and also making calls to a backend service on port 9000. The backend services also embed a couple of common dependencies, we're making calls over JMS to a Qpid embedded broker. And we're making sequel calls to a MariaDB instance that's managed by the backend service. In terms of how the instrumentation is set up, we have two parallel tracks. We have the root frontend service on port 8081, that's instrument of Zipkin, and all the backend web service calls into the api, querydp, and putmq, those are also instrumentive with Zipkin. And again, the idea here is to give you a really good feel, end to end, of instrumenting an application with Zipkin and also, instrumenting that same parallel application with Jaeger. So with Jaeger, the frontend endpoint is /j and we're calling into, respectively, the backend services running on port 9000 that are the apij, querydbj, and putmqj services.

Contents