# Diccionario de Datos Este documento resume los archivos principales que consume y genera Cloud Conversion. Los formatos no se cambian desde la documentacion; se describen para que otros arquitectos puedan preparar inventarios y leer resultados. ## Inventarios de entrada Formatos soportados: - CSV - XLS - XLSX Ubicaciones: | Ruta | Uso | | --- | --- | | `input/` | Inventarios disponibles para CLI y GUI. | | `input/gui_uploads/` | Inventarios subidos desde Streamlit. | | `input/done/` | Inventarios archivados manualmente en GUI o automaticamente por CLI. | Columnas locales esperadas cuando existen: | Campo normalizado | Columna local | Descripcion | | --- | --- | --- | | `quantity` | `Cantidad` | Cantidad de servidores o instancias equivalentes. | | `cpu` | `vCPU` | vCPU por servidor. | | `memory_gb` | `Memoria` | Memoria por servidor en GB. | | `storage_gb` | `Block Storage` | Storage por servidor en GB. | | `os` | `Nombre` | Sistema operativo o plataforma. | | `environment` | `Ambiente` | Ambiente: PRD, QA, DEV, UAT, DR, etc. | | `notes` | `Tipo` | Tipo, rol, workload o descripcion. | El proyecto tambien tiene fallback para nombres comunes como `VM`, `CPUs`, `RAM`, `storage`, `OS according to the VMware Tools`, `environment`, `hostname` y equivalentes. ## Inventario normalizado Los matchers transforman cada fila a campos comunes: | Columna | Descripcion | | --- | --- | | `server_name` | Nombre de servidor, VM o grupo. | | `quantity` | Cantidad final usada para multiplicar costos. | | `source_cpu` | CPU/vCPU por unidad. | | `source_memory_gb` | Memoria por unidad en GB. | | `source_storage_gb` | Storage por unidad en GB. | | `source_total_cpu` | CPU total para AWS. | | `source_total_vcpu` | vCPU total para OCI output. | | `source_ocpu` | OCPU calculado para OCI. | | `source_total_ocpu` | OCPU total para OCI. | | `source_total_memory_gb` | Memoria total. | | `source_total_storage_gb` | Storage total. | | `os` | OS detectado o mapeado. | | `environment` | Ambiente. | | `notes` | Notas o rol del workload. | ## Catalogo AWS Ruta: ```text data/catalog/aws/aws_ec2_catalog.csv ``` Origen: ```text data/raw/aws/index.json ``` Columnas actuales: | Columna | Descripcion | | --- | --- | | `sku` | SKU AWS Pricing. | | `regionCode` | Codigo de region AWS. | | `location` | Nombre de ubicacion. | | `instanceType` | Tipo de instancia, por ejemplo `m7a.xlarge`. | | `instanceFamily` | Familia comercial. | | `vcpu` | vCPU del shape. | | `memory` | Memoria textual del offer. | | `currentGeneration` | Si es generacion actual. | | `processorArchitecture` | Arquitectura de CPU. | | `networkPerformance` | Descripcion de red. | | `operatingSystem` | OS del precio. | | `tenancy` | Tenancy, por ejemplo `Shared`. | | `preInstalledSw` | Software preinstalado. | | `capacitystatus` | Estado de capacidad, normalmente `Used`. | | `unit` | Unidad de precio, normalmente `Hrs`. | | `price_usd` | Precio USD por hora. | | `description` | Descripcion AWS. | ## Salida AWS Match Ruta: ```text data/match/aws/MATCH-AWS-.csv ``` Columnas principales: | Columna | Descripcion | | --- | --- | | `server_name` | Servidor o grupo origen. | | `quantity` | Cantidad origen. | | `source_cpu` | CPU origen por unidad. | | `source_memory_gb` | Memoria origen por unidad. | | `source_storage_gb` | Storage origen por unidad. | | `workload_type` | Clasificacion de workload usada para ranking. | | `aws_sku` | SKU recomendado. | | `aws_region_code` | Region AWS seleccionada. | | `aws_location` | Ubicacion AWS. | | `aws_instance_type` | Shape recomendado. | | `aws_instance_family` | Familia del shape recomendado. | | `aws_vcpu` | vCPU del shape recomendado. | | `aws_memory_gb` | Memoria del shape recomendado. | | `aws_price_usd_per_hr` | Precio unitario por hora. | | `aws_total_instances` | Instancias recomendadas. | | `aws_total_price_usd_per_hr` | Costo total por hora. | | `aws_monthly_price_usd_730h` | Costo mensual usando 730 horas. | | `aws_operating_system` | OS del precio usado. | | `aws_match_status` | `MATCH`, `NO_MATCH` o status de error de datos. | | `aws_candidate_group_selected` | Grupo de candidatos usado para ranking. | | `aws_recommendation_reason` | Explicacion de seleccion. | | `aws_preferred_m_family` | Familia M preferida configurada. | | `aws_m_max_cpu_ratio` | Ratio CPU maximo configurado. | | `aws_preferred_m_rejection_reason` | Razon de rechazo si la M preferida no aplica. | ## Catalogo OCI Ruta: ```text data/catalog/oci/oci_price_list.csv ``` Origen: ```text data/raw/oci/products.json ``` Columnas: | Columna | Descripcion | | --- | --- | | `partNumber` | SKU o parte OCI. | | `displayName` | Nombre comercial. | | `serviceCategory` | Categoria de servicio. | | `metricName` | Metrica de precio. | | `currencyCode` | Moneda, normalmente USD. | | `prices_model` | Modelo de precio. | | `prices_value` | Valor del precio. | ## Salida OCI Match Ruta: ```text data/match/oci/MATCH-OCI-.csv ``` Columnas: | Columna | Descripcion | | --- | --- | | `row_type` | `DETAIL`, `BOM` o `SUMMARY`. | | `server_name` | Servidor o grupo origen. | | `quantity` | Cantidad origen. | | `source_cpu` | vCPU origen. | | `source_ocpu` | OCPU origen calculado. | | `source_memory_gb` | Memoria por unidad. | | `source_storage_gb` | Storage por unidad. | | `source_total_vcpu` | vCPU total. | | `source_total_ocpu` | OCPU total. | | `source_total_memory_gb` | Memoria total. | | `source_total_storage_gb` | Storage total. | | `os` | OS origen. | | `environment` | Ambiente origen. | | `notes` | Notas origen. | | `oci_pricing_profile` | Perfil de precio OCI, por ejemplo Linux o Windows. | | `oci_line_item` | Linea BOM o resumen. | | `oci_sku` | SKU OCI. | | `oci_display_name` | Nombre OCI. | | `oci_service_category` | Categoria OCI. | | `oci_metric_name` | Metrica OCI. | | `oci_currency_code` | Moneda. | | `oci_prices_model` | Modelo de precio. | | `oci_quantity` | Cantidad cotizada. | | `oci_unit_price_usd_per_hr` | Precio unitario por hora. | | `oci_hours_per_month` | Horas mensuales usadas. | | `oci_monthly_price_usd` | Precio mensual calculado. | | `oci_match_status` | Status de matching. | | `oci_recommendation_reason` | Explicacion de BOM. | | `oci_compute_generation` | Generacion compute seleccionada. | ## Dashboard La GUI lee los ultimos `MATCH-AWS-*.csv` y `MATCH-OCI-*.csv` por fecha de modificacion. Metricas: | Metrica | Calculo | | --- | --- | | AWS mensual | Suma de `aws_monthly_price_usd_730h` para filas `aws_match_status == MATCH`. | | OCI mensual | Fila `SUMMARY` de grand total, o suma de filas `BOM`. | | Ahorro | `(AWS - OCI) / AWS * 100`. | | Cobertura | Filas AWS con `MATCH` sobre total de filas AWS. | ## Logs Ruta: ```text logs/log_cloud_conversion_YYYYMMDD.txt ``` Cada linea incluye timestamp, prefijo de script y mensaje. Prefijos comunes: | Prefijo | Origen | | --- | --- | | `>> AWS_fetch_offer>>` | Descarga AWS. | | `>> AWS_eda>>` | EDA AWS. | | `>> AWS_match>>` | Matching AWS. | | `>> OCI_fetch_offer>>` | Descarga OCI. | | `>> OCI_match>>` | Matching OCI. | | `>> cloud_chat>>` | Cloud Chat CLI. | | `>> cloud_chat_runtime>>` | Runtime WhatsApp/Cloud Chat. | | `>> whatsapp_chatbot>>` | Webhook WhatsApp. | Los logs estan ignorados por Git y no deben compartirse sin revision.