En este documento se explica cómo configurar notificaciones programáticas de presupuesto y anomalías de costes (vista previa) mediante Pub/Sub.
Los presupuestos y las anomalías de costes suelen configurarse para enviar notificaciones por correo electrónico. Si usas los presupuestos o la detección de anomalías de costes como herramienta de control de costes, es posible que las notificaciones por correo electrónico no sean el mejor método para asegurarte de que tomas medidas a tiempo para controlar los costes. Puedes configurar y usar notificaciones programáticas para automatizar las respuestas de control de costes. Estos son algunos ejemplos de respuestas de control de costes automatizadas:
- Integrar con Slack para responder más rápido
- Gestionar el consumo de recursos para reducir costes
- Limitar la inversión inhabilitando la facturación cuando alcances el presupuesto
Limitaciones
Los presupuestos usan datos de facturación de Cloud estimados, que pueden cambiar hasta que se finalice la factura.
Si configuras políticas de organización para limitar el uso compartido de recursos por dominio (por ejemplo, habilitando
enforceInTransit
en temas de Pub/Sub), es posible que se produzca un error al intentar configurar o conectar temas de Pub/Sub. En esta situación, es posible que tengas que forzar el acceso a la cuenta para conectar correctamente un tema de Pub/Sub a un presupuesto. Para forzar el acceso a la cuenta, sigue estos pasos:- Quita la política de organización que contiene la restricción de dominio mediante uno de los siguientes métodos:
- Sigue los pasos para conectar un tema de Pub/Sub.
- Restablece la política de la organización de la organización o el proyecto (opcional).
Permisos que se necesitan para completar esta tarea
Notificaciones de presupuesto
Para configurar notificaciones de presupuesto programáticas, necesitas permisos para crear o modificar presupuestos y temas de Pub/Sub. Necesitas un conjunto de permisos diferente en función de tu nivel de acceso.
Usuarios con permisos de cuenta de facturación de Cloud | Usuarios con permisos de nivel de proyecto únicamente (vista previa) |
---|---|
Si tu organización usa roles personalizados para la autenticación, necesitas los siguientes permisos en los roles personalizados:
Para que los roles personalizados puedan modificar un presupuesto de Facturación de Cloud ya creado y conectarlo a un tema de Pub/Sub ya creado, necesitas los siguientes permisos:
Para obtener los permisos necesarios mediante roles predefinidos, pide a tu administrador que te asigne uno de los siguientes roles predefinidos de Cloud IAM de facturación en tu cuenta de facturación de Cloud: Pide al administrador que te conceda el siguiente rol en el proyecto de destino que contiene los temas de Pub/Sub: |
Si tu organización usa roles personalizados para la autenticación, estos roles deben tener los siguientes permisos:
Para obtener los permisos necesarios mediante roles predefinidos, pide a tu administrador que te conceda uno de los siguientes roles predefinidos de gestión de identidades y accesos de facturación de Cloud en el proyecto: Pide al administrador que te conceda el siguiente rol en el proyecto de destino que contenga los temas de Pub/Sub: |
Notificaciones de anomalías
Para configurar notificaciones de anomalías mediante programación, necesita permisos para crear o modificar anomalías y temas de Pub/Sub. Debes tener permisos de cuenta de Facturación de Cloud.
Usuarios con permisos de cuenta de facturación de Cloud (vista previa) |
---|
Para obtener los permisos necesarios mediante roles predefinidos, pide a tu administrador que te asigne uno de los siguientes roles predefinidos de Cloud Billing IAM en tu cuenta de facturación de Cloud: Pide al administrador que te conceda el siguiente rol en el proyecto de destino que contiene los temas de Pub/Sub: |
Crear un tema de Pub/Sub
Para configurar notificaciones programáticas de presupuesto o anomalías, primero debes crear un tema de Pub/Sub. Si ya ha configurado un tema de Pub/Sub para presupuestos o anomalías de costes, puede omitir este paso.
Ve a la página Pub/Sub de la consola de Google Cloud .
Selecciona un proyecto que contenga el tema de Pub/Sub.
Cuando configures temas de Pub/Sub para las notificaciones de facturación, te recomendamos que uses un proyecto de administración de FinOps para incluir los temas de Pub/Sub relacionados con la facturación.
Haz clic en
Crear tema.En el campo ID de tema, indica el nombre del tema.
Mantén la configuración predeterminada de suscripción y cifrado, y haz clic en Crear.
Conectar tu tema de Pub/Sub
Para habilitar las notificaciones programáticas y recibir mensajes de Pub/Sub con el estado actual de tu presupuesto o anomalía, debes conectar tu presupuesto o anomalía con tu tema de Pub/Sub.
Notificaciones de presupuesto
Para conectar un tema de Pub/Sub a un presupuesto de facturación de Cloud, sigue estos pasos:
Usuarios con permisos de cuenta de facturación de Cloud | Usuarios con permisos de nivel de proyecto únicamente (vista previa) |
---|---|
|
|
Notificaciones de anomalías
Para conectar un tema de Pub/Sub a una anomalía de costes, sigue estos pasos:
Usuarios con permisos de cuenta de facturación de Cloud (vista previa) |
---|
|
Formato de las notificaciones
Las notificaciones enviadas al tema de Pub/Sub constan de dos partes:
- Atributos: un conjunto de pares clave-valor que describen el evento.
Data: cadena que contiene un objeto JSON que describe los detalles de la alerta de presupuesto.
Notificaciones de presupuesto
Atributos
Los atributos son pares clave-valor que se incluyen en todas las notificaciones que envía Facturación de Cloud a tu tema de Pub/Sub. Las notificaciones siempre contienen el siguiente conjunto de pares clave-valor, independientemente de la carga útil de la notificación.
Nombre de atributo | Ejemplo | Descripción |
---|---|---|
billingAccountId |
01D4EE-079462-DFD6EC
|
Identificador de la cuenta de facturación de Cloud propietaria del presupuesto. |
budgetId |
de72f49d-779b-4945-a127-4d6ce8def0bb
|
Es el identificador de la alerta de presupuesto en la cuenta de Facturación de Cloud. |
schemaVersion |
1.0
|
La versión del esquema de las notificaciones. |
Datos
Los detalles de las alertas de presupuesto se devuelven en una cadena UTF-8 codificada en base64 que contiene un objeto JSON con las siguientes propiedades:
Datos | Ejemplo | Descripción |
---|---|---|
budgetDisplayName
|
"My Personal Budget"
|
El nombre legible asignado al presupuesto. |
costAmount
|
140.321
|
El importe de los costes acumulados. El tipo de costes rastreados depende de la configuración y los filtros del presupuesto. |
costIntervalStart
|
"2021-02-01T08:00:00Z"
|
Inicio del periodo de alerta del presupuesto. `costAmount` incluye los costes del uso a partir de esta hora. Es el primer día del periodo del presupuesto (mes, trimestre, año o un intervalo de fechas personalizado) durante el cual se ha usado el presupuesto. |
budgetAmount
|
152.557
|
El importe asignado al presupuesto. |
budgetAmountType
|
"SPECIFIED_AMOUNT"
|
El tipo de importe del presupuesto. Puede ser uno de los siguientes valores:
|
alertThresholdExceeded
|
0.9
|
Se ha superado el umbral de alerta de coste real más alto configurado. El valor es un porcentaje en formato decimal (por ejemplo, 0,9 es el 90%). Esta clave no está presente si el coste real no supera ningún umbral. |
forecastThresholdExceeded
|
0.2
|
Se ha superado el umbral de alerta de coste previsto más alto. El valor es un porcentaje en formato decimal (por ejemplo, 0,2 es 20%). Esta clave no está presente si el coste previsto no supera ningún umbral. |
currencyCode
|
"USD"
|
Moneda de la alerta de presupuesto. Todos los costes y los importes de las alertas de presupuesto se indican en esta moneda. |
Notificaciones de anomalías
Atributos
Los atributos son pares clave-valor que se incluyen en todas las notificaciones que envía Cloud Billing a su tema de Pub/Sub. Las notificaciones siempre contienen el siguiente conjunto de pares clave-valor, independientemente de la carga útil de la notificación.
Nombre de atributo | Ejemplo | Descripción |
---|---|---|
scope |
scope_project
|
El ámbito de la anomalía. |
billingAccountName |
billingAccounts/01D4EE-079462-DFD6EC
|
Identificador de la cuenta de facturación de Cloud en la que se ha producido la anomalía. |
resourceDisplayName |
My project
|
Nombre visible del recurso en el que se ha producido la anomalía. |
resourceName |
projects/123456
|
Identificador del recurso en el que se ha producido la anomalía. |
SchemaVersion |
1.0
|
Versión del esquema de Pub/Sub. |
Datos
Los detalles de las alertas de anomalías se devuelven en una cadena UTF-8 codificada en base64 que contiene un objeto JSON con las siguientes propiedades:
Datos | Ejemplo | Descripción |
---|---|---|
anomalyName
|
billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa
|
Nombre de recurso de la anomalía. |
billingAccountName
|
billingAccounts/01D4EE-079462-DFD6EC
|
Identificador de la cuenta de facturación. |
resourceName
|
"projects/12345"
|
Identificador del recurso en el que se ha producido la anomalía. |
resourceDisplayName
|
"My project"
|
Nombre visible del recurso en el que se ha producido la anomalía. |
detectionDate
|
"2024-02-01T08:00:00Z"
|
Fecha en la que se detectó la anomalía en los costes. |
Scope
|
SCOPE_PROJECT
|
Indica el ámbito de la anomalía. |
expectedSpendAmount
|
{
|
El gasto previsto del recurso. |
actualSpendAmount
|
196.22
|
El gasto real del recurso. |
deviationAmount
|
31.01
|
La diferencia entre el gasto real y el gasto previsto. |
deviationPercentage
|
18.77
|
El porcentaje de desviación con respecto al gasto previsto. |
Root cause
|
root_causes { resource: "services/XXX-XXXX-XXX" display_name: "BigQuery" cause_type: CAUSE_TYPE_SERVICE deviation { expected_spend { currency_code: "USD" units: "5000" } actual_spend { currency_code: "USD" units: "5000" } deviation_amount { currency_code: "USD" units: "5000" } deviation_percentage: "Infinity" } sub_causes { resource: "locations/us-west1", display_name: "us-west1", cause_type: CAUSE_TYPE_LOCATION, deviation { expected_spend { currency_code: "USD", } actual_spend { currency_code: "USD", units:"5000" } deviation_amount { currency_code: "USD", units: "5000" } deviation_percentage: "Infinity" } sub_causes { resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX" display_name: "Some display name" cause_type: CAUSE_TYPE_SKU deviation { expected_spend { currency_code: "USD" } actual_spend { currency_code: "USD" units: 5000 } deviation_amount { currency_code: "USD" units: 5000 } deviation_percentage: "Infinity" } } sub_causes { resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX" display_name: "Some display name" cause_type: CAUSE_TYPE_SKU deviation { expected_spend { currency_code: "USD" units: "1" nanos: 5413077 } actual_spend { currency_code: "USD" units: "1", nanos: 122606000 } deviation_amount { currency_code: "USD" nanos: 117192923 } deviation_percentage:11.656196419841217 } } } } |
Campo repetido que contiene información sobre la causa raíz de la anomalía. |
Garantías de entrega de notificaciones a Pub/Sub
Una vez que hayas conectado tu presupuesto o anomalía a un tema de Pub/Sub, recibirás notificaciones mediante programación de la siguiente manera:
Notificaciones de presupuesto
- Las notificaciones de presupuesto se envían al tema de Pub/Sub varias veces al día con el estado actual de tu presupuesto. Esta frecuencia es diferente de la de los correos de alerta de presupuesto, que solo se envían cuando se alcanza un umbral de presupuesto.
- Las notificaciones de Pub/Sub se envían aunque la cuenta de facturación de Cloud no tenga uso.
- Pueden pasar varias horas antes de que recibas la primera notificación de Pub/Sub.
- Pub/Sub solo garantiza que los mensajes se entregan al menos una vez. Es posible que recibas un mensaje varias veces y que los mensajes lleguen en un orden incorrecto.
- Si la entrega falla debido a una configuración incorrecta del tema de Pub/Sub, no recibirás ninguna notificación.
La entrega puede fallar por uno de los siguientes motivos:
- El tema de Pub/Sub ya no existe.
- Facturación de Cloud ya no tiene permiso para publicar en el tema de Pub/Sub.
- Has superado tu cuota de notificaciones.
- Tienes políticas de organización que limitan el uso compartido de recursos por dominio.
Notificaciones de anomalías
- Las notificaciones de anomalías se envían al tema de Pub/Sub solo cuando se alcanza el umbral.
- Pub/Sub solo garantiza que los mensajes se entregan al menos una vez. Es posible que recibas un mensaje varias veces y que los mensajes lleguen en un orden incorrecto.
- Si la entrega falla debido a una configuración incorrecta del tema de Pub/Sub, no recibirás ninguna notificación.
La entrega puede fallar por uno de los siguientes motivos:
- El tema de Pub/Sub ya no existe.
- La cuenta de Facturación de Cloud ya no tiene permiso para publicar en el tema de Pub/Sub.
- Has superado tu cuota de notificaciones.
- Tienes políticas de organización que limitan el uso compartido de recursos por dominio.
Para obtener más información, consulta Publicar y recibir mensajes en Pub/Sub.
Siguientes pasos
Para obtener más información sobre cómo usar las notificaciones programáticas, consulta los siguientes ejemplos de respuestas de control de costes programáticas:
- Escuchar las notificaciones
- Enviar notificaciones a Slack
- Controlar el uso de recursos con notificaciones
- Inhabilitar el uso de la facturación con notificaciones