Difficulty: Beginner
Estimated Time: 10 minutes

Real World Observability with Datadog

In this workshop, we'll apply observability principles to a partially broken eCommerce app that has started the move to microservices.

We'll first run the app, then instrument it with Datadog. Next, we'll send some example traffic to it, and try to discover the parts that are broken.

Finally, we'll discover the line numbers to fix, along with two hidden bottlenecks written into the source.

You can run through this scenario with a trial Datadog account by signing up here.

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 monolith shop uses Ruby on Rails and Spree. We've started to build out a first set of microservices, and these have been added to an initial set of containres.

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

In this workshop, we're going to spin up and instrument our application to see where things are broken, and next, find a few bottlenecks.

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=postgres  docker-compose up

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

https://[[HOST_SUBDOMAIN]]-3000-[[KATACODA_HOST]].environments.katacoda.com/

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

storedog

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