This is a demo app, don't run it in production
This contains a sample application for use in the Honeycomb Solution Architect Tech Challenge. The app has 4 services, replicated across 4 languages: Go, Java, Node.js, and Python.
It generates memes by combining a randomly chosen safe for work image with a randomly chosen phrase.
Hello! Welcome to the Instrumenting Meminator with OpenTelemetry challenge.
- Use the Meminator app (it's fun).
- Select the language of your choice, and instrument the app using OpenTelemetry.
- Send the instrumentation to Honeycomb.
- Use Honeycomb to observe the app instrumentation.
- Add additional instrumentation to improve the observability of the app.
To run this app, you can use GitHub Codespaces, GitPod, or your local environment. It is recommended to use GitHub Codespaces, but you are free to choose the environment you are most comfortable with.
- From this repository in GitHub, click the
<> Code
button/dropdown down menu - Select the
Codespaces
tab - Click the
Create codespace on main
button
- Go to Gitpod to open the repository in GitPod
- You may need to create a GitPod account or sign in with your GitHub account
Running this repository locally may require your development environment to be setup with proper SDKs in order to edit and test the code. You can clone the repository to your local machine by running the following command:
git clone https://github.com/honeycombio/sa-tech-challenge.git
The app is writen in 4 languages: Go, Java, Node.js, and Python. Choose the language you are most comfortable with. Go to the directory of the language you want to work with to start and stop the app. For example to use Java, run the following command:
cd java
To run the app, run the following command:
./run
This will run docker compose
in daemon mode, to build and start all app
services. It may take several minutes for the app to build and start the first
time.
If running locally, the app will be available at http://localhost:10114 GitHub Codespaces and GitPod will will be available at the URL provided in the terminal by the run script. You can also go to the Ports tab inside GitHub Codespaces or GitPod to access the app which will be running on port 10114.
After making changes to a service, you can rebuild just that service by running:
./run [ backend-for-frontend | image-picker | meminator | phrase-picker ]
./stop