Catch up on everthing we announced at this year's Firebase Summit. Learn more

Configure alertas de faturamento avançados e lógica

Embora simples e-mails de alerta orçamento são uma maneira relativamente fácil de receber atualizações de faturamento, pode haver momentos em que você deseja criar alertas mais sofisticados que incluem lógica mais personalizado. 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 Pub / Sub junto com um Cloud Function correspondente para criar um comportamento personalizado em resposta a mudanças em seus gastos

Embora ambas as técnicas exijam mais trabalho de sua parte, elas oferecem o poder de controlar exatamente quais tipos de alertas você está recebendo e como respondê-los.

Esta página oferece uma visão geral de cada uma dessas abordagens.

Crie alertas mais sofisticados com o Cloud Monitoring

E-mails de alerta de orçamento simples permitem que você saiba quando seu faturamento geral atingiu certos limites. No entanto, você também pode estar interessado em saber se os serviços individuais estão aumentando inesperadamente - antes de terem a chance de afetar significativamente o seu orçamento. Para casos de uso mais sofisticados como este, recomendamos aprender sobre o 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 do Firebase e do Google Cloud, mas mesmo para serviços externos, como AWS)

  • Se serviços como o Cloud Functions estão demorando mais do que o esperado para responder

  • Se seu intervalo do Cloud Storage, instância do Realtime Database ou instância do Cloud Firestore está 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 de seus produtos Firebase aumentou acima de um determinado limite

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 do canal Slack, notificações do PagerDuty, webhooks e muito mais. Essas opções permitem que você envie alertas com níveis de visibilidade mais altos e mais acionáveis.

Usando Cloud Monitoring

Para começar com o Nuvem de Monitoramento, recomendamos que comece com o Metrics Explorador , que permite criar gráficos de métricas personalizadas dentro do seu projeto Firebase / Google Cloud e visualizar seu uso.

Especificamente, você pode examinar recursos como instâncias do Cloud Firestore, Realtime Database ou Cloud Function. Você pode visualizar as 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 que você está confortável visualizando seu uso de recursos do Metrics Explorer, é recomendável criar uma política alertando sobre as métricas que mais lhe interessam. 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 determinado valor

  • Se o uso de um recurso específico (como uma chamada de função) parece estar aumentando muito rapidamente em um determinado período de tempo

Crie uma lógica de faturamento adicional

Os alertas de orçamento enviam e-mails automaticamente quando seu orçamento atinge certos limites, mas para alertas mais sofisticados ou reações programáticas a aumentos de gastos, você pode considerar a configuração de lógica personalizada adicional com base nas mensagens do Google Cloud Pub / Sub.

Por exemplo, você pode enviar alertas para canais do Slack ou via 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 passagem 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 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 cerca de uma vez a cada 20 minutos, independentemente de o uso de faturamento ter mudado ou não, e são sem estado (o que significa que não fornecem contexto sobre o que as precedeu). Se você quiser acompanhar 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.

Usando tópicos Pub / Sub com Cloud Functions

Você pode configurar um Pub / Sub tópico para seus dados de faturamento, visitando o orçamento associado ao seu projeto Firebase no Google Cloud Console (sob faturamento> Orçamentos e alertas), em seguida, clique na caixa para Connect um tópico Pub / Sub a este orçamento . Isso criará um tópico Pub / Sub que você pode ouvir mais tarde. Para obter etapas detalhadas, consulte a documentação completa .

Depois de criar seu tópico de faturamento Pub / Sub, você pode escrever uma função do Cloud para ouvir este 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 que você gastou até agora, 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 um Cloud Function. No entanto, se você estiver usando funções de nuvem para Firebase para implantar suas funções, o processo geral é um pouco mais simples (consulte a documentação Firebase ). Você também pode se referir a este vídeo para uma explicação passo a passo amostra do processo.

Depois de receber esses dados, há várias maneiras diferentes de responder a eles. Aqui estão algumas opções: