Embora os e-mails de alerta para orçamentos simples sejam uma maneira relativamente fácil de receber atualizações de faturamento, pode haver momentos em que você queira criar alertas mais sofisticados que incluam uma lógica mais personalizada. Veja duas abordagens a serem consideradas:
Usar Cloud Monitoring para criar alertas mais sofisticados e oportunos
Usar uma notificação de faturamento do Pub/Sub junto com uma função do Cloud correspondente para criar um comportamento personalizado em resposta a alterações nos gastos
Embora ambas as técnicas exijam mais trabalho da sua parte, elas oferecem a capacidade de controlar exatamente quais tipos de alertas você recebe e como responder a eles.
Nesta página, você encontra uma visão geral de cada uma dessas abordagens.
Criar alertas mais sofisticados com Cloud Monitoring
Com e-mails de alerta de orçamento simples, você sabe quando o faturamento geral atinge determinados limites. No entanto, você também pode ter interesse em saber se os serviços individuais estão aumentando de maneira inesperada — antes de terem chance de afetar significativamente seu orçamento. Para casos de uso mais sofisticados como este, recomendamos saber mais sobre o Cloud Monitoring, uma ferramenta Google Cloud disponível para seu projeto do Firebase.
O Cloud Monitoring é útil para vários tipos diferentes de alerta:
Se um recurso de que seu projeto depende não estiver disponível (para o Firebase e os serviços do Google Cloud, mas até para serviços externos, como o AWS)
Se serviços como o Cloud Functions estiverem demorando mais do que o esperado para responder
Se o bucket Cloud Storage, a instância Realtime Database ou Cloud Firestore rejeitar muitas solicitações, indicando que o Firebase Security Rules pode estar incorreto.
Se a quantidade de recursos usada por alguns dos seus produtos do Firebase aumentou acima de um determinado limite
Os alertas criados por meio do Cloud Monitoring geralmente são enviados mais rapidamente que os e-mails de alerta de orçamento simples, que em geral são enviados uma vez por dia. Os alertas podem assumir a forma de mensagens SMS, mensagens de canal do Slack, notificações do PagerDuty, webhooks e muito mais. Essas opções permitem enviar alertas com níveis de visibilidade mais altos e acionáveis.
Como usar o Cloud Monitoring
Para começar a usar o Cloud Monitoring, recomendamos começar com o Metrics Explorer, que permite criar gráficos de métricas personalizadas no seu projeto do Firebase/Google Cloud e visualizar o uso delas.
Especificamente, é possível procurar recursos como instâncias do Cloud Firestore, Realtime Database ou do Cloud Functions. É possível ver informações de uso sobre esses produtos (como número de leituras de documentos, bytes enviados ou invocações de função) que afetariam seu faturamento.
Depois de se familiarizar com a visualização do uso de recursos no Metrics Explorer, recomendamos que você crie uma política de alertas para as métricas mais importantes. Veja alguns exemplos de políticas de alertas:
Se o número de leituras de documentos em um período de 30 minutos for maior que um determinado valor
Se o uso de um recurso específico (como uma invocação de função) pode estar aumentando rapidamente em um determinado período
Criar uma lógica de faturamento adicional
Os alertas de orçamento enviam e-mails automaticamente quando seu orçamento atinge determinados limites, mas, para alertas mais sofisticados ou reações programáticas a aumentos nos gastos, você tem a opção de definir mais uma lógica personalizada com base nas mensagens Google Cloud Pub/Sub.
Por exemplo, é possível enviar alertas para canais do Slack ou por mensagem de texto, ou ainda fazer alterações programáticas no aplicativo ou projeto, dependendo dos níveis de gasto.
O Pub/Sub é um serviço de transmissão de mensagens que permite que outros serviços enviem mensagens, geralmente na forma de dados JSON, de maneira assíncrona por canais conhecidos como tópicos do Pub/Sub. É possível configurar serviços autorizados, como o Cloud Functions, para ouvir mensagens nesses tópicos e agir de acordo com os dados.
As notificações do Pub/Sub para faturamento são enviadas cerca de uma vez a cada 20 minutos, independentemente se o uso do faturamento tiver sido alterado ou não, e elas são sem estado, o que significa que elas não fornecem contexto sobre o que as precedeu. Se você quiser acompanhar os aumentos incomuns nos gastos ao longo do tempo ou comparar seus gastos com o ciclo anterior, precisará gerenciar esses dados históricos por conta própria usando um banco de dados como o Cloud Firestore ou o Realtime Database.
Como usar os tópicos Pub/Sub com Cloud Functions
É possível configurar um tópico Pub/Sub para seus dados de faturamento. Para isso, acesse o orçamento associado ao projeto do Firebase no console do Google Cloud (em Faturamento > Orçamentos e alertas) e clique na caixa de seleção Conectar um tópico Pub/Sub a este orçamento. Isso vai criar um tópico Pub/Sub que você pode ouvir mais tarde. Para ver as etapas detalhadas, consulte a documentação completa.
Após criar seu tópico de faturamento do Pub/Sub, é possível escrever uma função do Cloud para ouvir esse tópico e agir de acordo com os dados. Os dados são enviados como dados JSON e incluem informações úteis, como o valor gasto até o momento, o valor do orçamento e a data de início do ciclo de faturamento atual.
A documentação do Google Cloud tem detalhes completos sobre como receber esses dados usando uma função do Cloud. No entanto, se você estiver usando Cloud Functions for Firebase para implantar funções, o processo geral será um pouco mais simples (consulte a documentação do Firebase). Você também pode consultar este vídeo para ver um tutorial de exemplo do processo.
Depois de receber esses dados, há várias maneiras diferentes de responder a eles. Veja algumas opções:
Enviar alertas para canais do Slack, canais do Discord ou enviar mensagens de texto quando seus gastos atingirem um determinado limite.
Analisar seus gastos em comparação com os dados históricos e alertar se algo parecer fora do comum
Fazer alterações no app usando o Remote Config se os níveis de faturamento tiverem ficado muito altos
Desativar totalmente o projeto do Firebase removendo programaticamente o serviço de faturamento da sua conta