blob: d1bc474a489ddd1f4d5d20a5998ed80667b2ae47 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# Tracing Demo Application deployment automation
# Three-tier Python application demonstrating distributed tracing
NAMESPACE := "services"
RELEASE_NAME := "tracing-demo"
CHART_PATH := "./helm-chart"
# Build all Docker images (use docker-image-Justfile for build/push to registry)
build:
just -f docker-image-Justfile build
# Push images to private registry
push:
just -f docker-image-Justfile push
# Build and push images
build-push: build push
# Install Helm chart
install:
helm install {{RELEASE_NAME}} {{CHART_PATH}} --namespace {{NAMESPACE}} --create-namespace
# Upgrade Helm chart
upgrade:
helm upgrade {{RELEASE_NAME}} {{CHART_PATH}} --namespace {{NAMESPACE}}
# Delete Helm release
delete:
helm uninstall {{RELEASE_NAME}} --namespace {{NAMESPACE}}
# Rebuild images, import, and upgrade deployment
rebuild: build import upgrade
# Check deployment status
status:
kubectl get pods -n {{NAMESPACE}} | grep tracing-demo
kubectl get svc -n {{NAMESPACE}} | grep -E '(frontend|middleware|backend)-service'
kubectl get ingress -n {{NAMESPACE}} tracing-demo-ingress
# View logs from all services
logs:
@echo "=== Frontend logs ==="
kubectl logs -n {{NAMESPACE}} -l app=tracing-demo-frontend --tail=20
@echo ""
@echo "=== Middleware logs ==="
kubectl logs -n {{NAMESPACE}} -l app=tracing-demo-middleware --tail=20
@echo ""
@echo "=== Backend logs ==="
kubectl logs -n {{NAMESPACE}} -l app=tracing-demo-backend --tail=20
# Follow logs from frontend
logs-frontend:
kubectl logs -n {{NAMESPACE}} -l app=tracing-demo-frontend -f
# Follow logs from middleware
logs-middleware:
kubectl logs -n {{NAMESPACE}} -l app=tracing-demo-middleware -f
# Follow logs from backend
logs-backend:
kubectl logs -n {{NAMESPACE}} -l app=tracing-demo-backend -f
# Test the application
test:
@echo "Testing frontend health endpoint..."
curl http://tracing-demo.f3s.buetow.org/
@echo ""
@echo "Testing API process endpoint..."
curl http://tracing-demo.f3s.buetow.org/api/process
# Load test - generate multiple traces
load-test:
@echo "Generating 50 requests with 0.5s delay..."
@for i in {1..50}; do \
curl -s http://tracing-demo.f3s.buetow.org/api/process >/dev/null && echo "Request $$i complete"; \
sleep 0.5; \
done
@echo "Load test complete!"
# Port forward to services for local testing
port-forward-frontend:
kubectl port-forward -n {{NAMESPACE}} svc/frontend-service 5000:5000
port-forward-middleware:
kubectl port-forward -n {{NAMESPACE}} svc/middleware-service 5001:5001
port-forward-backend:
kubectl port-forward -n {{NAMESPACE}} svc/backend-service 5002:5002
# Check if traces are being generated
check-traces:
@echo "Check Grafana Tempo for traces with:"
@echo " { resource.service.namespace = \"tracing-demo\" }"
|