154 lines
4.3 KiB
Markdown
154 lines
4.3 KiB
Markdown
# Guia de la Interfaz Grafica
|
|
|
|
La interfaz grafica de Cloud Conversion es una aplicacion Streamlit multipagina. Es la ruta recomendada para arquitectos porque permite operar el pipeline completo desde una consola local.
|
|
|
|
## Iniciar
|
|
|
|
Desde la raiz del proyecto:
|
|
|
|
```bash
|
|
source .venv/bin/activate
|
|
streamlit run cloud_conversion_ui/Home.py
|
|
```
|
|
|
|
Entrada principal:
|
|
|
|
```text
|
|
cloud_conversion_ui/Home.py
|
|
```
|
|
|
|
Paginas:
|
|
|
|
```text
|
|
cloud_conversion_ui/pages/01_Inventario.py
|
|
cloud_conversion_ui/pages/02_Catalogos.py
|
|
cloud_conversion_ui/pages/03_Ejecucion.py
|
|
cloud_conversion_ui/pages/04_Dashboard.py
|
|
cloud_conversion_ui/pages/05_Logs_Artefactos.py
|
|
```
|
|
|
|
## Home
|
|
|
|
Muestra resumen de los ultimos artefactos disponibles:
|
|
|
|
- Total mensual AWS.
|
|
- Total mensual OCI.
|
|
- Porcentaje de ahorro.
|
|
- Cobertura de matching.
|
|
- Accesos a artefactos recientes.
|
|
|
|
Si no existen salidas recientes, los indicadores pueden aparecer en cero.
|
|
|
|
## Inventario
|
|
|
|
Permite dos formas de seleccionar inventario:
|
|
|
|
- Subir archivo CSV, XLS o XLSX.
|
|
- Elegir un archivo existente en `input/`.
|
|
|
|
Los uploads se guardan en:
|
|
|
|
```text
|
|
input/gui_uploads/
|
|
```
|
|
|
|
El nombre se normaliza y recibe timestamp, por ejemplo:
|
|
|
|
```text
|
|
input/gui_uploads/20260602_002922_inventario-sbc1.xlsx
|
|
```
|
|
|
|
El inventario activo queda en `st.session_state["selected_inventory_path"]`. Si quieres archivarlo despues de usarlo, usa `Archivar en input/done`.
|
|
|
|
## Catalogos
|
|
|
|
Muestra estado de catalogos y permite actualizar precios:
|
|
|
|
| Boton | Resultado |
|
|
| --- | --- |
|
|
| `AWS Fetch` | Descarga el offer AWS EC2 en `data/raw/aws/index.json`. |
|
|
| `AWS EDA` | Genera `data/catalog/aws/aws_ec2_catalog.csv` y reporte Markdown en `data/eda/aws/`. |
|
|
| `OCI Fetch` | Descarga productos OCI y genera `data/catalog/oci/oci_price_list.csv`. |
|
|
|
|
Requiere acceso de red para descargar precios.
|
|
|
|
## Ejecucion
|
|
|
|
Ejecuta los pipelines sobre el inventario activo.
|
|
|
|
### Parametros AWS
|
|
|
|
- Region AWS, default `us-east-1`.
|
|
- Sistema operativo global opcional.
|
|
- Tenancy, default `Shared`.
|
|
- Unidad, default `Hrs`.
|
|
- Modelo LLM, default `llama3.1:8b`.
|
|
- `Skip LLM` para evitar Ollama.
|
|
- `Force LLM` para forzar mapeo por LLM.
|
|
- Incluir generaciones anteriores.
|
|
- Incluir capacidad no usada.
|
|
- Prioridad de familia y familia M preferida.
|
|
- Max CPU ratio para familia M.
|
|
|
|
### Parametros OCI
|
|
|
|
- Modelo LLM, default `llama3.1:8b`.
|
|
- `Skip LLM` para evitar Ollama.
|
|
- `Force LLM` para forzar mapeo por LLM.
|
|
- Compute series, default `E`.
|
|
- Compute generation fija opcional.
|
|
- Horas por mes, default `730`.
|
|
|
|
### Diferencia importante contra CLI
|
|
|
|
La GUI llama `aws_match.run(...)` y `oci_match.run(...)` con:
|
|
|
|
```python
|
|
move_to_done=False
|
|
```
|
|
|
|
Esto evita mover el inventario despues de AWS Match y permite ejecutar OCI Match sobre el mismo archivo. En CLI, los scripts pueden mover inventarios exitosos a `input/done/` por default.
|
|
|
|
## Dashboard
|
|
|
|
Lee los ultimos CSVs `MATCH-AWS-*.csv` y `MATCH-OCI-*.csv` para mostrar:
|
|
|
|
- Costo mensual AWS.
|
|
- Costo mensual OCI.
|
|
- Ahorro porcentual.
|
|
- Cobertura de filas AWS con status `MATCH`.
|
|
- Tabla de recomendaciones AWS.
|
|
- Resumen BOM OCI.
|
|
|
|
El dashboard toma los ultimos artefactos por fecha de modificacion. Si necesitas comparar un inventario especifico, genera primero ambos `MATCH-*` desde la pagina `Ejecucion`.
|
|
|
|
## Logs y Artefactos
|
|
|
|
Muestra:
|
|
|
|
- Ultimas lineas del log diario `logs/log_cloud_conversion_YYYYMMDD.txt`.
|
|
- CSVs AWS Match.
|
|
- CSVs OCI Match.
|
|
- Reportes AWS EDA.
|
|
- Logs descargables.
|
|
|
|
Los botones `Descargar` entregan el archivo generado desde disco local.
|
|
|
|
## Servicios internos de la GUI
|
|
|
|
| Modulo | Responsabilidad |
|
|
| --- | --- |
|
|
| `cloud_conversion_ui/services/inventory_files.py` | Listar, subir y archivar inventarios. |
|
|
| `cloud_conversion_ui/services/pipeline_runner.py` | Ejecutar pasos AWS/OCI y capturar stdout/stderr. |
|
|
| `cloud_conversion_ui/services/dashboard_data.py` | Leer CSVs y calcular metricas comparativas. |
|
|
| `cloud_conversion_ui/services/artifacts.py` | Encontrar artefactos recientes y logs. |
|
|
|
|
## Recomendaciones de uso
|
|
|
|
- Ejecuta AWS Match y OCI Match sobre el mismo inventario antes de revisar el dashboard.
|
|
- Usa `Skip LLM` si no tienes Ollama instalado.
|
|
- Actualiza catalogos solo cuando necesites precios recientes; AWS raw puede ser grande.
|
|
- Descarga los artefactos desde `Logs y Artefactos` para compartir resultados.
|
|
- No expongas Streamlit publicamente sin controles de red o autenticacion externa.
|
|
|