Difficulty: Beginner
Estimated Time: 10 minutes

Real world Observability

In this workshop, we'll inspect a non-functioning E-Commerce app and add Datadog to grab metrics, traces, and logs from the applications within.

Adding Observability with Distributed Tracing

As we've seen, distributed tracing is just one of many tools to help increase your visibility into the complex systems you deploy and manage every day.

It's one facet of a many faceted approach, to being able to reliable diagnose production systems and problems before your customers notice.

I hope this lesson gives you some ideas for how you can add custom traces to your company's systems, and start building observability systems that fit your particular business and legacy software problems.

It's an exciting time to be in software development. Let's build systems we can all be proud of.

Ecommerce Observability

Step 1 of 6

Step 1

Spinning Up Our Legacy E-Commerce Shop

Our legacy shop uses Ruby on Rails and Spree.

We use docker-compose to bring it up and running. There's a prebuilt Rails Docker container image, along with a few Python / Flask microservice which handle our Coupon codes and Ads which run on the store.

In this workshop, we're going to spin up and instrument our application to see where bottlenecks exist.

We'll focus on thinking through what observability might make sense in a real application, and see how setting up observability works in practice.

Our application should be cloned from Github in this scenario, and if we change into the directory, we should be able to start the code with the following:

$ cd /ecommerce-observability
$ POSTGRES_USER=postgres POSTGRES_PASSWORD=  docker-compose up

Once our images are pulled, we should be able to jump into and view the application within Katacoda:


Try browsing around, and notice the homepage takes an especially long time to load.

The first thing we'll do is see where that slow load time may be coming from.