prometeu-runtime/discussion/workflow/agendas/AGD-0021-full-migration-to-atomic-telemetry.md

2.4 KiB

AGD-0021: Full Migration to Atomic Telemetry

Contexto

Durante a implementação do isolamento do overlay de debug no Host Desktop (DEC-0007), foi introduzido o AtomicTelemetry para permitir acesso assíncrono e sem locks aos dados de performance. Por motivos de cautela inicial, os campos legados telemetry_current e telemetry_last foram mantidos no VirtualMachineRuntime para compatibilidade com processos de certificação e logs internos.

Problema

A manutenção de dois sistemas paralelos de telemetria gera redundância de código, aumenta a superfície de erro e consome ciclos de CPU desnecessários para atualizar dados que já estão disponíveis de forma mais eficiente via atômicos. A "compatibilidade" pretendida não justifica o débito técnico de manter estruturas duplicadas.

Pontos Críticos

  • Fato: AtomicTelemetry já provê todos os dados necessários (ciclos, memória, logs).
  • Risco: Remoção de telemetry_last pode quebrar ferramentas que dependem de snapshots estáticos por frame se não houver um substituto claro de snapshot via atômicos.
  • Tradeoff: A migração exige refatorar o VirtualMachineRuntime e possivelmente o LogService para convergirem em uma única fonte de verdade.
  • Hipótese: Um snapshot derivado do AtomicTelemetry ao final de cada frame é suficiente para substituir o telemetry_last legado sem perda de precisão.

Opções

  • Opção A (Recomendada): Migração total e remoção dos campos legados. O AtomicTelemetry torna-se a única fonte de verdade. Onde snapshots estáveis são necessários, eles são extraídos via AtomicTelemetry::snapshot().
  • Opção B: Manter redundância (Descartada pelo usuário).

Sugestão / Recomendação

  1. Remover telemetry_current e telemetry_last do VirtualMachineRuntime.
  2. Refatorar o loop de execução para atualizar exclusivamente o AtomicTelemetry.
  3. Garantir que o LogService e outras auditorias consumam dados do novo modelo.
  4. Atualizar as especificações para refletir o modelo único.

Perguntas em Aberto

  1. Existe algum uso específico de telemetry_last em ferramentas externas (não mapeadas) que dependem do layout de memória antigo? (Assumimos que não para este escopo).

Criterio para Encerrar

  • Remoção completa dos campos no código.
  • Compilação e execução bem-sucedida do Host Desktop com o novo modelo único.
  • Atualização da documentação normativa.