Sami Marreed
feat: docker-v1 with optimized frontend
0646b18
|
Raw
History Blame Contribute Delete
3.69 kB
# Profiling System Changelog
## 2025-09-29 - Major Reorganization
### Added
- βœ… Organized all profiling-related files into `system_tests/profiling/` directory
- βœ… YAML configuration support using Dynaconf
- βœ… Retry mechanism with exponential backoff for Langfuse data fetching
- βœ… Main entry point script: `run_experiment.sh`
- βœ… HTTP server script: `serve.sh` for viewing results
- βœ… Interactive charts and visualizations in comparison HTML
- βœ… Environment variable configuration per experiment run
- βœ… Provider comparison support (OpenAI vs Azure vs WatsonX)
- βœ… Comprehensive documentation with examples
### Interactive Visualizations
- πŸ“Š Bar charts for execution time, cost, tokens, and LLM calls
- πŸ“Š Variability chart showing Min/Avg/Max execution times with:
- Range calculation (Max - Min)
- Standard deviation for statistical analysis
- Coefficient of variation (CV%) for relative consistency
- ⚑ Stacked bar chart for time breakdown
- πŸ“ˆ Radar chart for normalized performance comparison
- 🎨 Color-coded modes with modern UI design
- πŸ“‹ Tab navigation between charts and detailed tables
### Structure
```
system_tests/profiling/
β”œβ”€β”€ run_experiment.sh # Main entry point for users
β”œβ”€β”€ bin/ # Internal scripts
β”‚ β”œβ”€β”€ profile_digital_sales_tasks.py
β”‚ β”œβ”€β”€ run_profiling.sh
β”‚ └── run_experiment.sh
β”œβ”€β”€ config/ # YAML configurations
β”‚ β”œβ”€β”€ default_experiment.yaml
β”‚ β”œβ”€β”€ fast_vs_accurate.yaml
β”‚ └── .secrets.yaml
β”œβ”€β”€ experiments/ # Experiment results
β”‚ └── comparison.html
└── reports/ # Individual profiling reports
```
### Configuration Features
- **YAML-based configuration** with Dynaconf integration
- **CLI arguments override** config file settings
- **Environment variable support** for credentials
- **Flexible experiment definitions** with multiple runs
- **Configurable retry settings** for Langfuse data fetching
### Retry Mechanism
- **Exponential backoff**: Starting at 2s, multiplying by 1.5x each attempt
- **Smart detection**: Checks for 404 errors and incomplete observations
- **Configurable**: Set `max_attempts` and `initial_delay` in YAML
- **Default**: 10 attempts over ~60 seconds total wait time
### Migration from Old Structure
Old files moved/removed:
- `profile_digital_sales_tasks.py` β†’ `system_tests/profiling/bin/`
- `run_profiling.sh` β†’ `system_tests/profiling/bin/`
- `run_experiment.sh` β†’ `system_tests/profiling/bin/` (rewritten)
- `update_html.py` β†’ removed (HTML loads JSON dynamically)
- `PROFILING_README.md` β†’ `system_tests/profiling/README.md`
- `experiments/` β†’ `system_tests/profiling/experiments/`
- `profiling_report_*.json` β†’ `system_tests/profiling/reports/`
### Usage
```bash
# Run experiment with config file
./system_tests/profiling/run_experiment.sh
# With specific config
./system_tests/profiling/run_experiment.sh --config fast_vs_accurate.yaml
# View results in browser
./system_tests/profiling/serve.sh --open
# Serve on different port
./system_tests/profiling/serve.sh --port 3000
```
### Breaking Changes
- Old scripts at project root no longer work
- Use `./system_tests/profiling/run_experiment.sh` instead
- Configuration now uses YAML instead of CLI-only
### Benefits
- πŸ“ Better organization - all profiling files in one place
- βš™οΈ Easier configuration - YAML files instead of long CLI commands
- πŸ”„ More reliable - retry mechanism for Langfuse data
- πŸ“Š Automatic HTML generation - no need to run update script
- 🎯 Clear entry point - single script for users