Produto Territorial

Sentinel

Uma plataforma programável de monitoramento sintético: testes em JavaScript, alertas por mudança de estado, páginas de status públicas, em um VPS de 1 GB.

1/3Grade de status de todos os ambientes que o Sentinel vigia, filtrada por tag

Os monitores de uptime existentes ou fazem ping em URLs a partir de YAML ou crescem em dashboards pesados. O Sentinel roda funções de teste JavaScript de verdade em agenda, valida lógica de negócio e alerta por Discord, Slack ou webhooks. Ele vigia toda plataforma que opero, além da rede GNSS nacional do IBGE.

Em resumo

  • Testes são JavaScript puro com uma pequena API ctx: HTTP, FTP, S3 (SigV4 implementado à mão), secrets, asserções e avisos
  • Três resultados possíveis (pass, warn, fail), limiares de falha, cooldowns e roteamento de canais por tipo de evento
  • Páginas de status públicas por tag, métricas Prometheus, cofre de secrets criptografado e um servidor MCP completo para agentes de IA
  • Projetado para 1 GB de RAM e meia vCPU: escritas em lote, tabelas particionadas, estatísticas diárias pré-agregadas

Por que mais um monitor

Eu precisava saber que o pipeline de um cliente tinha parado de atualizar antes que o cliente soubesse. Um 200 de uma API não diz nada sobre a previsão por trás dela ter seis horas de idade, ou sobre uma camada do GeoServer ainda ter dados. Monitores por configuração não conseguiam expressar isso; ferramentas centradas em dashboard não rodavam centenas de checagens em uma máquina pequena. O Sentinel é a ferramenta que eu queria: um teste é uma função que recebe um contexto e devolve verdadeiro ou falso, e a plataforma cuida de agendamento, retentativas, alertas e histórico.

Arquitetura

Todo o desenho parte de um único alvo de implantação: um VPS de 1 GB e meia vCPU rodando cerca de 500 testes por minuto. Um único processo Fastify em Node.js agenda testes com intervalos com jitter, compila o código do usuário uma vez ao salvar, corre cada execução contra seu timeout e limita a concorrência com um pequeno pool de slots. Resultados são bufferizados e gravados no PostgreSQL em lotes, em tabelas particionadas por mês; uma tabela de agregados diários alimenta as páginas de status públicas para que nunca toquem nas execuções brutas. HTTP de saída passa pelo Undici com pool de conexões por host. Secrets são criptografados em repouso com AES-256-GCM e expostos aos testes como um objeto síncrono em memória.

As notificações são orientadas a eventos e fire-and-forget: um teste vira falha só depois de N falhas consecutivas, avisos disparam na primeira ocorrência com cooldown, recuperação é um evento próprio, e cada atribuição de canal filtra quais tipos de evento recebe. O dashboard é um app Next.js que pode ser implantado no Cloudflare Pages com apenas a API e o banco no VPS. Um servidor MCP envolve as rotas REST em processo, então um agente de IA pode criar, rodar e inspecionar testes com a mesma validação e autenticação.

Em produção: a rede RBMC

A implantação pública mais exigente monitora a RBMC, a Rede Brasileira de Monitoramento Contínuo dos Sistemas GNSS, operada pelo IBGE. A RBMC é uma rede de cerca de 150 estações GNSS permanentes espalhadas pelo Brasil que transmitem e publicam observações contínuas de satélite. É a materialização física do SIRGAS2000, o referencial geodésico nacional, e a espinha dorsal do posicionamento preciso no país: levantamentos pós-processados, correções em tempo real, georreferenciamento de imóveis rurais, monitoramento de engenharia e trabalho científico dependem de seus dados estarem disponíveis e atualizados.

A página de status da RBMC acompanha cada estação individualmente com histórico de 24 horas, para que um agrimensor confira se a estação mais próxima de um serviço está publicando antes de sair a campo. O Sentinel também vigia a plataforma da Jane's Weather com 63 testes e cada serviço por trás do Skyport e da MapPrism.

Mais projetos

Todos os projetos