#!/bin/bash # dance-lessons-coach OpenTelemetry Test Script # This script tests OpenTelemetry integration with Jaeger set -e echo -e "\033[1;34m=== dance-lessons-coach OpenTelemetry Test ===\033[0m" echo "" # Configuration PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/dance-lessons-coach" SERVER_CMD="./scripts/start-server.sh" LOG_FILE="server.log" PID_FILE="server.pid" cd "$PROJECT_DIR" # Clean up any existing server echo "Cleaning up any existing server..." if [ -f "$PID_FILE" ]; then echo "Found existing PID file, stopping previous server..." $SERVER_CMD stop > /dev/null 2>&1 || true rm -f "$PID_FILE" "$LOG_FILE" fi # Kill any processes on port 8080 pkill -9 -f "go run" > /dev/null 2>&1 || true lsof -ti :8080 | xargs -I {} kill -9 {} > /dev/null 2>&1 || true lsof -ti :4317 | xargs -I {} kill -9 {} > /dev/null 2>&1 || true sleep 1 echo "Starting Jaeger in Docker..." # Start Jaeger container if not running if ! docker ps | grep -q "jaegertracing/all-in-one"; then docker run -d --name jaeger \ -e COLLECTOR_OTLP_ENABLED=true \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ jaegertracing/all-in-one:latest echo "Jaeger container started" sleep 5 else echo "Jaeger container already running" fi echo "Starting server with OpenTelemetry enabled..." DLC_TELEMETRY_ENABLED=true DLC_TELEMETRY_OTLP_ENDPOINT="localhost:4317" DLC_TELEMETRY_INSECURE=true \ DLC_TELEMETRY_SERVICE_NAME="dance-lessons-coach" $SERVER_CMD start sleep 3 echo "Testing API endpoints..." # Test health endpoint echo "Testing /api/health:" HEALTH_RESPONSE=$(curl -s http://localhost:8080/api/health) echo "Response: $HEALTH_RESPONSE" # Test greet endpoint echo "Testing /api/v1/greet/:" GREET_RESPONSE=$(curl -s http://localhost:8080/api/v1/greet/) echo "Response: $GREET_RESPONSE" # Test greet with name echo "Testing /api/v1/greet/TestUser:" GREET_NAME_RESPONSE=$(curl -s http://localhost:8080/api/v1/greet/TestUser) echo "Response: $GREET_NAME_RESPONSE" echo "" echo "Stopping server..." $SERVER_CMD stop sleep 2 echo "" echo -e "\033[0;32m✅ OpenTelemetry Test Complete!\033[0m" echo "" echo "To view traces in Jaeger:" echo "1. Open http://localhost:16686 in your browser" echo "2. Select 'dance-lessons-coach' service" echo "3. Click 'Find Traces' button" echo "" echo "You should see traces for:" echo "- /api/health requests" echo "- /api/v1/greet/ requests" echo "- /api/v1/greet/TestUser requests" echo "" # Clean up rm -f "$PID_FILE" "$LOG_FILE" exit 0