Configurar lógica y alertas de facturación avanzadas

Si bien los correos electrónicos de alerta de presupuesto simples son una forma relativamente fácil de recibir actualizaciones de facturación, puede haber ocasiones en las que desee crear alertas más sofisticadas que incluyan una lógica más personalizada. Aquí hay dos enfoques a considerar:

  • Use Cloud Monitoring para crear alertas más sofisticadas y oportunas

  • Use una notificación de Pub/Sub de facturación junto con una función de nube correspondiente para crear un comportamiento personalizado en respuesta a los cambios en sus gastos

Si bien ambas técnicas requieren más trabajo de su parte, le dan el poder de controlar exactamente qué tipo de alertas está recibiendo y cómo responder a ellas.

Esta página ofrece una descripción general de cada uno de estos enfoques.

Cree alertas más sofisticadas con Cloud Monitoring

Los correos electrónicos de alerta de presupuesto simple le permiten saber cuándo su facturación general ha alcanzado ciertos umbrales. Sin embargo, también podría estar interesado en saber si los servicios individuales están aumentando inesperadamente, antes de que tengan la oportunidad de afectar significativamente su presupuesto. Para casos de uso más sofisticados como este, recomendamos aprender sobre Cloud Monitoring, que es una herramienta de Google Cloud disponible para su proyecto de Firebase.

Cloud Monitoring es útil para varios tipos diferentes de alertas:

  • Si un recurso del que depende su proyecto no está disponible (para los servicios de Firebase y Google Cloud, pero incluso para servicios externos, como AWS)

  • Si servicios como Cloud Functions tardan más de lo esperado en responder

  • Si su depósito de Cloud Storage, instancia de Realtime Database o instancia de Cloud Firestore rechaza demasiadas solicitudes (una indicación de que sus reglas de seguridad de Firebase pueden ser incorrectas).

  • Si la cantidad de recursos utilizados por algunos de sus productos de Firebase ha aumentado por encima de un límite determinado

Las alertas creadas a través de Cloud Monitoring generalmente se envían más rápido que los simples correos electrónicos de alerta de presupuesto, que generalmente se envían una vez al día. Las alertas pueden tomar la forma de mensajes SMS, mensajes de canal de Slack, notificaciones de PagerDuty, webhooks y más. Estas opciones le permiten enviar alertas con niveles de visibilidad más altos y procesables.

Uso de la supervisión en la nube

Para comenzar con Cloud Monitoring, recomendamos comenzar con Metrics Explorer , que le permite crear gráficos de métricas personalizadas dentro de su proyecto de Firebase/Google Cloud y visualizar su uso.

Específicamente, puede ver recursos como sus instancias de Cloud Firestore, Realtime Database o Cloud Function. Puede ver la información de uso de estos productos (como la cantidad de lecturas de documentos, los bytes enviados o las invocaciones de funciones) que afectarían su facturación.

Una vez que se sienta cómodo visualizando su uso de recursos en el Explorador de métricas, le recomendamos que cree una política de alertas sobre las métricas que más le interesan. Estos son algunos ejemplos de políticas de alerta:

  • Si el número de documentos leídos en un período de tiempo de 30 minutos es mayor que un valor particular

  • Si el uso de un recurso específico (como la invocación de una función) parece estar aumentando demasiado rápido en un cierto período de tiempo

Crear lógica de facturación adicional

Las alertas de presupuesto envían correos electrónicos automáticamente cuando su presupuesto alcanza ciertos umbrales, pero para alertas más sofisticadas o reacciones programáticas a aumentos de gastos, puede considerar configurar una lógica personalizada adicional basada en los mensajes de Google Cloud Pub/Sub.

Por ejemplo, puede enviar alertas a los canales de Slack o por mensaje de texto, o realizar cambios programáticos en su aplicación o proyecto según los niveles de gasto.

Pub/Sub es un servicio de transmisión de mensajes que permite que otros servicios envíen mensajes, generalmente en forma de datos JSON, de manera asincrónica a través de canales conocidos como temas de Pub/Sub. Puede configurar servicios autorizados, como Cloud Functions, para escuchar mensajes en estos temas y actuar sobre los datos de manera adecuada.

Tenga en cuenta que las notificaciones de Pub/Sub para la facturación se envían aproximadamente una vez cada 20 minutos, ya sea que su uso de facturación haya cambiado o no, y no tienen estado (lo que significa que no brindan contexto sobre lo que las precedió). Si desea realizar un seguimiento de los aumentos inusuales en los gastos a lo largo del tiempo, o comparar sus gastos con el ciclo anterior, deberá administrar esos datos históricos usted mismo utilizando una base de datos como Cloud Firestore o Realtime Database.

Usar temas de Pub/Sub con Cloud Functions

Puede configurar un tema de Pub/Sub para sus datos de facturación visitando el presupuesto asociado con su proyecto de Firebase en Google Cloud Console (en Facturación > Presupuestos y alertas ) y, luego, haciendo clic en la casilla de verificación Conectar un tema de Pub/Sub a este presupuesto. . Esto creará un tema de Pub/Sub que podrás escuchar más tarde. Para conocer los pasos detallados, consulte la documentación completa .

Una vez que hayas creado tu tema de facturación de Pub/Sub, puedes escribir una función en la nube para escuchar este tema y actuar en consecuencia con los datos. Los datos se envían como datos JSON e incluyen información útil, como el monto que ha gastado hasta el momento, el monto de su presupuesto y la fecha de inicio de su ciclo de facturación actual.

La documentación de Google Cloud tiene todos los detalles sobre cómo recibir estos datos mediante una función de la nube. Sin embargo, si usa Cloud Functions para Firebase para implementar sus funciones, el proceso general es un poco más simple (consulte la documentación de Firebase ). También puede consultar este video para ver un ejemplo del proceso.

Una vez que haya recibido estos datos, hay varias maneras diferentes de responder a ellos. Aquí hay algunas opciones: