This is a demo app, don't run it in production
This contains a sample application for use in Honeycomb Academy lab activities. This app has 4 services.
It generates images by combining a randomly chosen picture with a randomly chosen phrase.
Hello! Welcome to the Instrumenting with Python course lab.
- Take a look at this app. The
backend-for-frontend
service needs to be instrumented. - Before you can do that, you need to run this app.
- Then, connect this app to Honeycomb.
- See what the traces look like.
- Improve the traces.
To run this app, you can use GitPod or Codespaces.
Once you run the application, you can send traces to Honeycomb. Then you can practice improving the instrumentation for better observability.
Go to Gitpod to launch this project in Gitpod.
Confirm the workspace creation. You can work in the browser with VS Code Browser or in your local code editor. The default settings are acceptable.
Once you are in the code editor, run docker compose up
in the code editor's terminal. To stop running the application, run ctrl+c
. Then run docker compose down
to remove the container.
Open the repository on GitHub. Open the <> Code
dropdown down menu.
Select the Codespaces
tab. Create a codespace on main.
You also have the option to run this application locally.
First, clone this repository.
git clone https://github.com/honeycombio/academy-instrumentation-python.git
Install Docker: https://docs.docker.com/get-docker/
Create a .env
file from the example:
cp example.env .env
And update the .env
file with your Honeycomb API key:
HONEYCOMB_API_KEY="your-api-key"
# you could change this to your own S3 bucket of images. We accept no responsibility for the outcome.
# Note: "random-pictures" is an actual S3 bucket name supplied for this course, filled with SFW meme images
BUCKET_NAME="random-pictures"
OTEL_EXPORTER_OTLP_ENDPOINT="https://api.honeycomb.io:443/"
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=${HONEYCOMB_API_KEY}"
# You can set this to "services-implemented-version" to run the answer-guide version
SERVICE_PATH="services"
If you don't have an API key handy, here is the documentation.
./run
(This will run docker compose
in daemon mode, and build containers.)
Access the app:
After making changes to a service, you can tell it to rebuild just that one:
./run [ meminator | backend-for-frontend | image-picker | phrase-picker ]
Visit http://localhost:10114
Click the "GO" button. Then wait.