/spandex_example

This is an example project that can be used to see how to integrate Spandex into your own project

Primary LanguageElixir

Spandex Example Projects

The purpose of this repo is to demonstrate how to integrate Spandex into a variety of application scenarios you might see in real life. It also gives us a way to easily validate that the right trace and span data is getting sent to the supported back-ends.

For your convenience, we've created named branches that allow you to easily see what's needed to use Spandex to add tracing to a Plug.Router or add tracing to a Phoenix.Endpoint so that you can get started quickly with tracing your own projects.

Getting Started with This Example Repo

To get you started quickly if you want to try running the examples in this repo, we've arranged the example projects using docker-compose. We run all of the following in a self-contained environment, so all you need to have installed is Docker and Docker Compose.

  • A Cowboy- and Plug-based API gateway service (just to show distributed tracing)
  • A Phoenix-based database-backed application (to show Phoenix and Ecto integration)
  • A Postgres database
  • A Datadog agent to collect traces and forward them to Datadog APM

First, you'll need to set your API key:

cp datadog.env.example datadog.env

# Modify datadog.env to specify your API key

Then, run all the things:

docker-compose build
docker-compose up -d

You'll be able to hit the gateway service from your development machine at http://localhost:4000 and the backend service at http://localhost:4001.