Add OpenTelemetry instrumentation with middleware-only approach
This commit is contained in:
92
scripts/test-opentelemetry.sh
Executable file
92
scripts/test-opentelemetry.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
# DanceLessonsCoach OpenTelemetry Test Script
|
||||
# This script tests OpenTelemetry integration with Jaeger
|
||||
|
||||
set -e
|
||||
|
||||
echo -e "\033[1;34m=== DanceLessonsCoach OpenTelemetry Test ===\033[0m"
|
||||
echo ""
|
||||
|
||||
# Configuration
|
||||
PROJECT_DIR="/Users/gabrielradureau/Work/Vibe/DanceLessonsCoach"
|
||||
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="DanceLessonsCoach" $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 'DanceLessonsCoach' 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
|
||||
Reference in New Issue
Block a user