O Google Cloud Logging cobra US$ 0,50 por GiB de logs ingeridos, com uma cota gratuita de 50 GiB por projeto. Em geral, o valor final é baixo, mas existem situações que podem fazer esses custos dispararem. O Google costuma ser bastante flexível nesses casos e emite reembolsos, mas o ideal é manter tudo sob controle, caso essa política mude.

Por que os custos de logging disparam?
Já vimos isso acontecer várias vezes: um desenvolvedor sobe uma nova versão com verbosidade extra de debug. Ou cria um novo HTTP load balancer sem desativar a configuração padrão que faz streaming dos logs de acesso. Quando você se dá conta, o uso do Logging aumentou 100x, com os custos subindo no mesmo ritmo.
Se você acompanha os custos do projeto de perto, provavelmente vai identificar esse pico de Logging em poucos dias. Já quem não tem essa rotina pode acabar passando pelo famoso bill shock.
Como avaliar a taxa de ingestão de logs
Como quase todo serviço do Google Cloud, o Logging gera métricas valiosas que ficam disponíveis no serviço de Monitoring.
A primeira métrica que vale observar é a "Log bytes ingested".
Veja um exemplo de gráfico dessa métrica:
Log bytes ingested, segmentado pelo serviço que produz os logs — última hora
Olhando só para a última hora, nenhum padrão se revela e fica difícil detectar anomalias.
Já se ampliarmos o intervalo para um mês, dá para enxergar um padrão claro: os logs são produzidos de forma intensa nos dias úteis (de segunda a sexta):
Log bytes ingested, segmentado pelo serviço que produz os logs — último mês. Os dias úteis estão dentro dos retângulos azuis
É um padrão que dá para acompanhar e, se alguma das séries temporais sair dele, sabemos que pode haver um problema causando emissão excessiva de logs no serviço relacionado.
Como aprofundar nas métricas de log
Todos os recursos do GCP emitem a métrica "Log bytes". Então, por exemplo, se quiséssemos isolar a taxa de emissão de logs do App Engine, bastaria plotar este gráfico:
Detalhamento da emissão de logs do App Engine
Analisar é ótimo, mas e o monitoramento?
Como você deve imaginar, ninguém quer passar o dia olhando para um gráfico esperando uma anomalia aparecer. Então, como monitorar a taxa de emissão de logs de forma proativa?
Se a taxa de emissão de logs é constante ao longo do dia, basta criar uma alerting policy no Monitoring. Ela dispara sempre que uma série temporal aumenta seu valor em uma porcentagem configurada.
Por outro lado, se a emissão de logs é cíclica, o monitoramento fica um pouco mais complicado. A emissão flutua ao longo do dia, então é esperado que a série temporal suba e desça. Por isso, configurar um alerta com base nisso pode gerar muitos falsos positivos.
Para contornar essa questão, dá para suavizar a sazonalidade alterando o período de agregação.
Ignorando a sazonalidade da série temporal
Podemos suavizar os dados plotados agregando-os ao longo de um período mais longo. Por exemplo, o gráfico que tinha esta cara com período de agregação de 1 minuto:
Log bytes ingested — período de agregação definido em 1 minuto
…fica assim quando o período de agregação é definido em um dia:
Log bytes ingested — período de agregação definido em 1 dia
…e assim quando o período de agregação é definido em uma semana:
Log bytes ingested — período de agregação definido em 1 semana
O último gráfico é, sem dúvida, um caso em que dá para alertar quando qualquer uma das séries temporais aumentar (ou diminuir) em determinada porcentagem.
Infelizmente, o Google Cloud Monitoring atualmente não suporta períodos de agregação maiores que 25 horas para Alerting Policies, então não dá para criar esse tipo de alerta pelo Cloud Monitoring.
Entramos em contato com o Google sugerindo remover o limite de 25 horas, para que seja possível alertar adequadamente sobre emissão de logs quando as séries temporais forem cíclicas. Uma feature request já foi enviada — você pode favoritá-la se tiver interesse nessa funcionalidade.
Obrigado pela leitura! Para ficar por dentro, acompanhe a gente no DoiT Engineering Blog , no canal da DoiT no LinkedIn e no canal da DoiT no Twitter . Para conhecer oportunidades de carreira, acesse https://careers.doit-intl.com .