Embora e-mails simples de alerta de orçamento 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. Aqui estão duas abordagens a serem consideradas:
Use o Cloud Monitoring para criar alertas mais sofisticados e oportunos
Use uma notificação de faturamento do Pub/Sub junto com uma função do Cloud correspondente para criar um comportamento personalizado em resposta a mudanças nos seus gastos
Embora ambas as técnicas exijam mais trabalho de sua parte, elas lhe dão o poder de controlar exatamente quais tipos de alertas você está recebendo e como responder a eles.
Esta página oferece uma visão geral de cada uma dessas abordagens.
Crie alertas mais sofisticados com o Cloud Monitoring
E-mails simples de alerta de orçamento informam quando seu faturamento geral atingiu determinados limites. No entanto, você também pode estar interessado em saber se os serviços individuais estão aumentando inesperadamente – antes que eles tenham a chance de afetar significativamente o seu orçamento. Para casos de uso mais sofisticados como este, recomendamos aprender sobre Cloud Monitoring, que é uma ferramenta do Google Cloud disponível para seu projeto Firebase.
O Cloud Monitoring é útil para vários tipos diferentes de alertas:
Se um recurso do qual seu projeto depende não estiver disponível (para serviços Firebase e Google Cloud, mas mesmo para serviços externos, como AWS)
Se serviços como o Cloud Functions estiverem demorando mais do que o esperado para responder
Se o bucket do Cloud Storage, a instância do Realtime Database ou a instância do Cloud Firestore estiver rejeitando muitas solicitações (uma indicação de que as regras de segurança do Firebase podem estar incorretas).
Se a quantidade de recursos usados por alguns dos seus produtos do Firebase tiver aumentado acima de um determinado limite
Os alertas criados por meio do Cloud Monitoring geralmente são enviados mais rapidamente do que simples e-mails de alerta de orçamento, que normalmente 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.
Usando o monitoramento em nuvem
Para começar a usar o Cloud Monitoring, recomendamos começar com o Metrics Explorer , que permite criar gráficos de métricas personalizadas dentro do seu projeto Firebase/Google Cloud e visualizar seu uso.
Especificamente, você pode analisar recursos como instâncias do Cloud Firestore, Realtime Database ou Cloud Function. Você pode visualizar informações de uso sobre esses produtos (como número de leituras de documentos, bytes enviados ou invocações de funções) que afetariam seu faturamento.
Depois que você se sentir confortável com a visualização do uso de recursos no Metrics Explorer, recomendamos a criação de uma política de alertas sobre as métricas mais importantes para você. Aqui estão alguns exemplos de políticas de alerta:
Se o número de leituras de documentos em um período de 30 minutos for maior que um valor específico
Se o uso de um recurso específico (como uma invocação de função) parece estar aumentando muito rapidamente em um determinado período
Crie 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 de gastos, considere configurar uma lógica personalizada adicional com base nas mensagens do Google Cloud Pub/Sub.
Por exemplo, você pode enviar alertas para canais do Slack ou por mensagem de texto, ou fazer alterações programáticas em seu aplicativo ou projeto dependendo dos níveis de gastos.
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 meio de canais conhecidos como tópicos do Pub/Sub. Você pode configurar serviços autorizados, como Cloud Functions, para ouvir mensagens nesses tópicos e agir de acordo com os dados de maneira adequada.
Observe que as notificações do Pub/Sub para faturamento são enviadas uma vez a cada 20 minutos, independentemente de seu uso de faturamento ter mudado ou não, e elas não têm estado (o que significa que não fornecem contexto sobre o que as precedeu). Se quiser acompanhar aumentos incomuns nos gastos ao longo do tempo ou comparar seus gastos com o ciclo anterior, você mesmo precisará gerenciar esses dados históricos usando um banco de dados como o Cloud Firestore ou o Realtime Database.
Como usar tópicos do Pub/Sub com o Cloud Functions
Você pode configurar um tópico do Pub/Sub para seus dados de faturamento visitando o orçamento associado ao seu projeto do Firebase no console do Google Cloud (em Faturamento > Orçamentos e alertas ) e clicando na caixa de seleção Conectar um tópico do Pub/Sub a este orçamento . Isso criará um tópico do Pub/Sub que você poderá ouvir mais tarde. Para etapas detalhadas, consulte a documentação completa .
Depois de criar seu tópico de faturamento do Pub/Sub, você poderá 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 seu orçamento e a data de início do seu ciclo de faturamento atual.
A documentação do Google Cloud contém detalhes completos sobre como receber esses dados usando uma Cloud Function. No entanto, se você estiver usando o Cloud Functions for Firebase para implantar suas funções, o processo geral será um pouco mais simples (confira a documentação do Firebase ). Você também pode consultar este vídeo para obter um exemplo de passo a passo do processo.
Depois de receber esses dados, há várias maneiras diferentes de responder a eles. Aqui estão algumas opções:
Envio de alertas para canais do Slack , canais do Discord ou envio de mensagens de texto quando seus gastos atingirem um determinado limite.
Analisar seus gastos em comparação com dados históricos e alertá-lo se algo parecer fora do comum
Fazer alterações no seu aplicativo por meio da Configuração remota se os níveis de faturamento ficarem muito altos
Desativar totalmente seu projeto do Firebase removendo programaticamente o serviço de faturamento da sua conta