COSC 3P95 – Assignment 2
FILE_TRANSFER_PROJECT/
client/
client.py
client_files/
server/
server.py
server_files/
telemetry/
otel_setup.py
sd/
analyze_sd.py
sd_data.csv
docker-compose.yml
otel-collector-config.yaml
requirements.txt
README.md
- Python 3.10+
- Pip
- Docker Desktop
Install dependencies:
pip install -r requirements.txt
docker-compose up -d
Jaeger UI: http://localhost:16686
cd server
uvicorn server:app --reload --host 127.0.0.1 --port 8000
cd client
python -m client
Open http://localhost:16686 and select:
- file-transfer-client
- file-transfer-server
Set in server.py:
SERVER_SAMPLING = "always_on"
SERVER_SAMPLING = "0.2"
Metrics appear in terminal.
Client:
- client_file_transfer_latency_ms
- client_files_sent_total
Server:
- server_file_write_latency_ms
- server_files_processed_total
Enable bug:
BUG_ENABLED = True
Run multiple clients:
python -m client
docker-compose down
- File transfer pipeline
- Compression, encryption, chunking
- OTEL instrumentation
- Custom spans/events
- Sampling modes
- SD bug isolation
Complete instructions to run and test the system.