Gerenciamento de Logs: como funciona
Um gigabyte de log ingerido no CloudWatch Logs em São Paulo custa US$ 0,90. Em contrapartida, guardar esse mesmo gigabyte por um mês inteiro custa US$ 0,0408. Isto é, a entrada sai 22 vezes mais cara que o arquivo.
Essa razão inverte a intuição de quem corta custo apagando histórico. Ou seja, encurtar a janela de 90 para 30 dias mexe em centavos por gigabyte. Já filtrar o que entra mexe em dólares. Por isso a primeira decisão de um pipeline de log é o que não coletar.
Este texto traz três medições feitas em laboratório próprio, em 3 de setembro de 2026. A primeira é o preço real da ingestão nas duas maiores nuvens. As outras duas comparam Loki e Elasticsearch sobre os mesmos 50 mil eventos, além de testar uma política de amostragem.
O que o gerenciamento de logs decide
Gerenciar logs é decidir quatro coisas: o que entra, em que formato, por quanto tempo fica e quem consegue perguntar. A parte barata é a coleta, que agente e biblioteca já resolvem. As outras três, no entanto, definem a fatura no fim do mês e o tempo de resposta durante um incidente.
Para a definição de log, os níveis de severidade e os campos obrigatórios, vale o artigo sobre logs na observabilidade. Aqui o recorte é outro: o que fazer com eles depois que já estão sendo gerados.
Essas decisões acontecem em quatro etapas. A coleta pega o evento na origem, seja por agente, por Syslog ou por instrumentação com OpenTelemetry. Em seguida, a ingestão normaliza e cobra. O armazenamento define por quanto tempo a evidência existe. A consulta determina se você acha o evento em segundos ou em uma tarde.
Nessas três últimas etapas está o preço. É nelas, portanto, que a decisão de ferramenta aparece.
Quanto custa um gigabyte de log
Duas das maiores nuvens publicam preço em API aberta, sem login e sem chave. Por isso, o bloco abaixo lê a conta do CloudWatch Logs em São Paulo e imprime as quatro linhas que importam.
Executado no dia do teste, o script devolveu isto:
Rodar a mesma leitura contra a tabela de varejo da Azure e contra a região da Virgínia completa o quadro.
| Linha da conta | CloudWatch Logs São Paulo |
CloudWatch Logs N. Virgínia |
Azure Monitor Brazil South |
|---|---|---|---|
| Ingestão, classe padrão | US$ 0,9000 | US$ 0,5000 | US$ 4,6000 |
| Ingestão, classe de acesso raro | US$ 0,4500 | US$ 0,2500 | tabela Basic, outro modelo |
| Armazenamento por mês | US$ 0,0408 | US$ 0,0300 | US$ 0,2000 |
| Consulta, por GB varrido | US$ 0,0090 | US$ 0,0050 | incluído na ingestão |
Três leituras saem dessa tabela. Primeiro, a região move a conta: São Paulo custa 80% mais que a Virgínia na AWS. Na Azure, Brazil South custa exatamente o dobro de East US. Ou seja, preço de log sem região declarada é número errado.
Segundo, a classe do log vale metade da fatura. Nesse caso, trocar a classe padrão pela de acesso raro corta a ingestão em 50% na AWS. O custo é perder consulta interativa sobre aquele grupo.
Terceiro, o armazenamento quase não pesa. Um ano inteiro guardando um gigabyte em São Paulo custa US$ 0,4896. Isso é menos, inclusive, que a única ingestão de US$ 0,90 que colocou o dado lá.
Uma ressalva de comparação: o preço de ingestão da Azure já embute 31 dias de retenção, enquanto o da AWS cobra armazenamento à parte. Comparar só a primeira linha exagera a diferença entre as duas.
Ebook: Como sobreviver à fatura cloud?
Nosso framework, Observability Maturity Index, mede a maturidade das operações em nuvem das empresas. Você encontrará: os quatro perfis de empresas, as métricas que você deveria estar medindo, um checklist de avaliação e um plano de ação para 90 dias.
Só o e-mail. Sem spam, e seus dados protegidos pela LGPD.
Loki ou Elasticsearch: onde cada um cobra
A escolha entre um motor de índice invertido e um motor de rótulos costuma ser descrita por lista de recursos. Medida, no entanto, ela vira uma troca simples entre disco e tempo de resposta.
Para medir, o laboratório carregou os mesmos 50.000 eventos em JSON, gerados por semente fixa, em três destinos. Em seguida, fez a mesma pergunta nos três: quantos eventos do payment-api responderam 500 na janela. As três respostas bateram em 328, o que valida a comparação.
| Destino | Disco | Sobre o arquivo bruto | Consulta (mediana) |
|---|---|---|---|
| Arquivo JSON, sem motor | 17,54 MiB | 1,00x | não se aplica |
| Grafana Loki 3.7.7 | 3,43 MiB | 0,20x | 30 ms |
| Elasticsearch 9.5.2, mapping padrão | 17,10 MiB | 0,97x | 4 ms |
| Elasticsearch 9.5.2, mapping declarado | 13,43 MiB | 0,77x | 3 ms |
Com mapping declarado, o Elasticsearch ocupou 3,9 vezes o disco do Loki e respondeu 10 vezes mais rápido. Cada um cobra numa moeda diferente. Portanto, a decisão depende de qual delas dói mais na sua operação.
Por dentro, a diferença é de arquitetura. O Loki guarda o corpo comprimido e indexa apenas os rótulos, logo varre no momento da pergunta. Já o Elasticsearch monta o índice invertido na entrada, paga em disco e depois responde sem varrer.
Em resumo: com poucas consultas por dia, o Loki sai barato. Em contrapartida, com investigação constante, o índice se paga.
A armadilha do mapping padrão
Deixar o Elasticsearch inferir o mapping parece conveniente, porém cobra caro em dois lugares. O índice automático ocupou 1,27 vez o disco do declarado, porque guarda cada campo de texto duas vezes: analisado e como chave exata.
Pior que o disco, contudo, é o segundo custo: ele não aparece como erro. Uma consulta por termo exato no campo analisado devolve zero em vez do número certo.
Zero não é erro de sintaxe, é uma resposta. Um alerta construído sobre essa consulta fica em silêncio para sempre. Ao mesmo tempo, o painel mostra que o serviço não tem falha. Por isso, declarar o mapping antes do primeiro documento evita as duas coisas.
A política que cortou 64% sem perder um erro
Amostrar log assusta, sobretudo porque parece jogar fora evidência de incidente. O erro, porém, está em aplicar uma taxa única sobre tudo: aí o sorteio derruba erro junto com ruído.
Na política medida, a separação é por severidade. Todo WARN e todo ERROR passam inteiros. O INFO, que é rotina, entra amostrado a 10%. Já o DEBUG não entra.
Sobre os 50.000 eventos do laboratório, a conta fechou desta forma. Os graves somaram 14.870 eventos e 29,75% dos bytes. A rotina amostrada trouxe 3.008 dos 30.128 eventos de INFO, ou 9,98%, o que confere com a taxa pedida. No total ficaram 17.878 eventos e 35,76% do volume original.
No fim, a redução foi de 64,24%, com os 5.012 ERROR e os 9.858 WARN preservados na íntegra. Os 5.002 eventos de DEBUG ficaram de fora.
Traduzindo para a fatura de São Paulo: uma operação que ingere 100 GB por dia na classe padrão paga US$ 2.700 por mês. Com essa política, o mesmo dia entrega 35,76 GB e a conta cai para US$ 965,52. A diferença é de US$ 1.734,48 por mês, sem perder um evento de erro.
Como escolher a ferramenta
Escolher ferramenta não é decidir qual plataforma é melhor. O que decide é a pergunta que você faz com mais frequência, porque o motor cobra exatamente por ela.
Se a rotina é investigar incidente com filtro por campo, o índice invertido se paga: 3,9 vezes o disco em troca de resposta 10 vezes mais rápida. Por outro lado, se a rotina é guardar muito e consultar pouco, o motor de rótulos entrega o mesmo dado por um quinto do espaço. Vale sobretudo para auditoria e conformidade.
Nos serviços gerenciados a conta muda de lugar. Ali você não paga disco, paga ingestão, logo a decisão vira classe de log e região. Vale conferir os números do Amazon CloudWatch e do Azure Monitor antes de fechar contrato. Nesse sentido, a mesma arquitetura muda de preço conforme onde ela roda.
Em qualquer dos caminhos, a política de entrada vem primeiro. Vale destacar que ela é a única decisão a reduzir custo em todas as camadas, do disco à consulta.
Logs, métricas e traces unificados para diagnóstico em profundidade.
Instrumentamos aplicações corporativas com OpenTelemetry para correlacionar eventos e acelerar a análise de causa raiz em produção.
Onde a conta fecha
O gerenciamento de logs vira problema de custo no momento em que o volume cresce sem política. As medições deste artigo apontam para o mesmo lugar: a decisão que mais economiza acontece antes do dado entrar na plataforma.
Ingerir custa 22 vezes o que custa armazenar, portanto encurtar retenção resolve pouco. A classe do log corta metade da ingestão. Além disso, a região muda a conta em 80% na AWS e em 100% na Azure. Por fim, uma política por severidade tirou 64% do volume preservando todos os erros.
Do lado do motor, a escolha é honesta nos dois sentidos: disco barato com consulta lenta, ou consulta rápida com disco caro. O que não se sustenta é adotar mapping automático e descobrir meses depois que um alerta nunca disparou porque a consulta devolvia zero.
Se a sua operação precisa desenhar essa política e ligar o resultado ao monitoramento de infraestrutura, fale com nossos especialistas.