Gleam.br Wiki

GBR: ADR-0009 Coleta Nível-SO (OS Metrics) com Isolamento C-Native (`os_mon`) | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

GBR: ADR-0009 Coleta Nível-SO (OS Metrics) com Isolamento C-Native (os_mon)

  • *Status:* Proposto / Em Exploração
  • *Data:* 2026-05-01

*Contexto:*

A telemetria do falcon_agent é um Híbrido Cérebro/Músculo, operando adequadamente com Erlang Ports conversando com Java para a camada de banco de dados (JDBC). Porém, invocar processos de S.O. como /bin/bash repetidamente ou implementar parsers Regex no Gleam apenas para monitorar consumos genéricos de memória/CPU (/proc/stat em Linux, WMI em Windows) destrói o propósito de eficiência elétrica e baixa pegada (footprint) arquitetado no monorepo.

*Decisão:*

  1. **Aplicação Erlang os_mon Pura:** Para a telemetria do hospedeiro, o Agente Gleam deve importar a aplicação nativa de OTP os_mon. Ela roda em um thread secundária (C-Level) hiper-otimizada da VM, que fornece estatísticas de uso de processador, discos e memória com carga computacional virtualmente nula.
  2. *Coletor de Sistema Independente:* A infraestrutura deverá instanciar um novo Ator Gleam (ex: os_worker.gleam), rodando sob a mesma Árvore de Supervisão do db_worker, mas operando num Tick independente e convertendo as tuplas do os_mon para o padrão JSON estrito do protocolo /horus/telemetry.

*Consequências:*

  • *Positivas:* Redução monumental do consumo energético em coleta; abstração total da complexidade da plataforma subjacente (o os_mon expõe uma interface unificada independentemente do hospedeiro operar Linux ou Windows Kernel).
  • *Negativas/Riscos:* Se o cliente possuir políticas de hipervisor de segurança (ex: eBPF Cgroups bloqueados/Docker unprivileged), a aplicação nativa de os_mon poderá requerer permissões estendidas do hospedeiro (como montar os dados de /proc explicitamente) para acesso real às cifras físicas.