- Docker Desktop
- Go 1.17+
- Kubectl
- Minikube
- Skaffold
- Opentelemetry-Go
- Jaeger
- Logrus
# Installation just for one time.
./scripts/install.sh
- This script installs all requirements for local development: Homebrew, Kubectl, Minikube, and Skaffold.
- Creates a minikube Kubernetes cluster on your local environment.
./scripts/run.sh
- This script builds and deploy your applications to the Minikube Kubernetes Cluster and for hot reloading skaffold is used. Whenever you change any code block your application will rebuild again and deploy.
- You can verify everything is working properly or not by comparing kubectl get deploy command's result with the following screenshoot.
curl http://localhost:9001/albums/1
# Go to the http://localhost:16686/ for accessing Jaeger UI.
- Service2 - /albums/:id - endpoint
- OtelGin Middleware for Context Propagation (HTTP Headers Import & Export)
- Http Client Request
- Service1 - /albums - endpoint
- OtelGin Middleware for Context Propagation (HTTP Headers Import & Export)
- Returns All Albums which is kept in-memory.
- Service1 - /albums - endpoint
- Filters Albums By Id
- Returns a specific Album.
Service1 | Service2
- You can see the trace and span ids are logged.
- You can see the trace and span ids on Jaeger.
- Skaffold
- Minikube Port Forwarding
- Opentelemetry-Go Manual Instrumentation