Configura alertas y lógica de facturación avanzadas

Si bien los correos electrónicos de alertas de presupuesto simples son una manera relativamente fácil de recibir actualizaciones de facturación, es posible que, en ocasiones, quieras crear alertas más sofisticadas que incluyan una lógica más personalizada. Puedes hacerlo de las siguientes dos maneras:

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

  • Usar una notificación de facturación de Pub/Sub junto con una Cloud Function correspondiente para crear un comportamiento personalizado en respuesta a los cambios en los gastos

Si bien estas dos técnicas requieren más trabajo de tu parte, te permiten controlar con exactitud los tipos de alertas que recibes y cómo responder a ellas.

En esta página, se ofrece una descripción general de cada uno de estos enfoques.

Crea alertas más sofisticadas con Cloud Monitoring

Los correos electrónicos simples de alerta de presupuesto te permiten saber cuándo tu facturación general alcanza ciertos umbrales. Sin embargo, puede que también te interese saber si los servicios individuales aumentan de forma inesperada, antes de que hayan tenido una oportunidad para afectar tu presupuesto de forma significativa. Para casos de uso más sofisticados, te recomendamos aprender sobre Cloud Monitoring, una herramienta de Google Cloud disponible para tu proyecto de Firebase.

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

  • Cuando un recurso en el que se basa tu proyecto no está disponible (para servicios de Firebase y Google Cloud, así como servicios externos, como AWS)

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

  • Cuando tu bucket de Cloud Storage, la instancia de Realtime Database o la instancia de Cloud Firestore rechazan demasiadas solicitudes (una indicación de que tus reglas de seguridad de Firebase pueden ser incorrectas)

  • Cuando la cantidad de recursos que usan algunos de tus productos de Firebase aumentó por encima de un umbral determinado

Las alertas creadas a través de Cloud Monitoring se suelen enviar más rápido que los correos electrónicos sencillos de alerta de presupuesto, que se suelen enviar una vez al día. Las alertas pueden ser SMS, mensajes de canales de Slack, notificaciones PagerDuty, webhooks y más. Estas opciones te permiten enviar alertas con niveles de visibilidad superiores y más útiles.

Usa Cloud Monitoring

Para comenzar a usar Cloud Monitoring, recomendamos comenzar con el Explorador de métricas, que te permite crear gráficos de métricas personalizadas dentro de tu proyecto de Firebase/Google Cloud y visualizar su uso.

Específicamente, puedes ver recursos como tus instancias de Cloud Firestore, Realtime Database o Cloud Functions. Puedes ver la información de uso sobre estos productos (como la cantidad de lecturas de documentos, bytes enviados o invocaciones de funciones) que tendrían un efecto en tu facturación.

Después de que te sientas cómodo para visualizar el uso de recursos en el Explorador de métricas, te recomendamos crear una política de alertas sobre las métricas que más te interesan. A continuación, se incluyen algunos ejemplos de políticas de alertas:

  • Cuando la cantidad de lecturas de documentos en un período de 30 minutos es mayor que un valor específico

  • Cuando el uso de un recurso específico (como una invocación de función) parece aumentar demasiado rápido en un período específico

Crea una lógica de facturación adicional

Las alertas de presupuesto envían correos electrónicos de forma automática cuando el presupuesto alcanza ciertos umbrales. Sin embargo, para enviar alertas más sofisticadas o reacciones programáticas ante aumentos del gasto, puedes considerar la posibilidad de configurar una lógica personalizada adicional basada en mensajes de Google Cloud Pub/Sub.

Por ejemplo, puedes enviar alertas a los canales de Slack o mediante mensajes de texto, o realizar cambios programáticos en tu app 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, por lo general, en forma de datos JSON, de manera asíncrona a través de canales conocidos como temas de Pub/Sub. Puedes configurar servicios autorizados, como Cloud Functions, para escuchar los mensajes en estos temas y tomar las medidas adecuadas.

Ten en cuenta que las notificaciones de Pub/Sub para la facturación se envían alrededor de una vez cada 20 minutos sin importar que tu uso de facturación cambie y no tienen estado (es decir, no proporcionan contexto sobre lo que las precedió). Si deseas realizar un seguimiento de los aumentos inusuales en la inversión en el tiempo o comparar tus gastos con el ciclo anterior, deberás administrar esos datos históricos con una base de datos como Cloud Firestore o Realtime Database.

Usa temas de Pub/Sub con Cloud Functions

Puedes configurar un tema de Pub/Sub para tus datos de facturación. Para ello, visita el presupuesto asociado con tu proyecto de Firebase en Google Cloud Console (en Facturación > Presupuestos y alertas) y, luego, haz clic en la casilla de verificación Conectar un tema de Pub/Sub a este presupuesto. Se creará un tema de Pub/Sub que puedes escuchar más adelante. Para ver los pasos detallados, consulta la documentación completa.

Después de crear tu tema de facturación de Pub/Sub, puedes escribir una Cloud Function para escuchar este tema y tomar medidas en función de los datos. Los datos se envían como datos JSON y, además, incluyen información útil, como el importe que gastaste hasta el momento, el importe del presupuesto y la fecha de inicio de tu ciclo de facturación actual.

La documentación de Google Cloud tiene detalles completos sobre cómo recibir estos datos mediante una función de Cloud Functions. Sin embargo, si usas Cloud Functions para Firebase a fin de implementar tus funciones, el proceso general es un poco más sencillo (consulta la documentación de Firebase). También puedes consultar este video para ver una explicación de muestra del proceso.

Una vez que recibes estos datos, existen varias formas de responderlos. Estas son algunas opciones: