En este documento, se explica cómo configurar notificaciones de anomalías de presupuesto y costo programáticos (versión preliminar) con Pub/Sub.
Por lo general, los presupuestos y las anomalías de costos se configuran para enviar notificaciones por correo electrónico. Si usas presupuestos o la detección de anomalías de costos como una herramienta de control de costos, es posible que las notificaciones por correo electrónico no sean el mejor método para garantizar que se tomen medidas oportunas para controlar tus costos. Puedes configurar y usar notificaciones programáticas para automatizar las respuestas de control de costos. Estos son algunos ejemplos de respuestas automatizadas de control de costos:
- Integración con Slack para una respuesta más rápida
- Administra el consumo de recursos para reducir los costos
- Inhabilita la facturación cuando alcances tu presupuesto para limitar la inversión
Limitaciones
Los presupuestos usan los datos estimados de la Facturación de Cloud, que están sujetos a cambios hasta que se completa la factura.
Si configuras políticas de la organización para limitar el uso compartido de recursos por dominio (por ejemplo, habilitar
enforceInTransit
en temas de Pub/Sub), es posible que aparezca un error cuando intentes configurar o conectar temas de Pub/Sub. En esta situación, es posible que debas forzar el acceso a la cuenta para conectar con éxito un tema de Pub/Sub a un presupuesto. Para forzar el acceso a la cuenta, completa los siguientes pasos:- Quita la política de la organización que contiene la restricción de dominio mediante uno de los siguientes métodos:
- Quita la política de la organización de forma temporal.
- Anula la política de la organización para el proyecto que contiene el tema de Pub/Sub.
- Sigue los pasos para conectar un tema de Pub/Sub.
- Restablece la política de la organización para la organización o el proyecto (opcional).
- Quita la política de la organización que contiene la restricción de dominio mediante uno de los siguientes métodos:
Permisos necesarios para esta tarea
Para configurar notificaciones de presupuesto programáticas, necesitas permisos para crear o modificar presupuestos y temas de Pub/Sub. Necesitas un conjunto diferente de permisos según tu nivel de acceso.
Usuarios con permisos de cuenta de Facturación de Cloud | Usuarios solo con permisos a nivel del proyecto (versión preliminar) |
---|---|
Si tu organización usa roles personalizados para la autenticación, necesitas los siguientes permisos en los roles personalizados:
Para que los roles personalizados modifiquen un presupuesto de Facturación de Cloud existente para conectarlo a un tema de Pub/Sub existente, necesitas los siguientes permisos:
Para obtener los permisos necesarios con roles predefinidos, pídele a tu administrador que te otorgue uno de los siguientes roles predefinidos de IAM de Facturación de Cloud en tu cuenta de Facturación de Cloud: Además, pídele a tu administrador que te otorgue 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, necesitas los siguientes permisos en los roles personalizados:
Para obtener los permisos necesarios con roles predefinidos, pídele a tu administrador que te otorgue uno de los siguientes roles predefinidos de IAM de Facturación de Cloud en el proyecto: Además, pídele a tu administrador que te otorgue el siguiente rol en el proyecto de destino que contiene los temas de Pub/Sub: |
Para configurar notificaciones de anomalías programáticas, necesitas permisos para crear o modificar anomalías y temas de Pub/Sub. Debes tener permisos de la cuenta de Facturación de Cloud.
Usuarios con permisos de cuenta de Facturación de Cloud (Versión preliminar) |
---|
Para obtener los permisos necesarios con roles predefinidos, pídele a tu administrador que te otorgue uno de los siguientes roles predefinidos de IAM de Facturación de Cloud en tu cuenta de Facturación de Cloud: Además, pídele a tu administrador que te otorgue el siguiente rol en el proyecto de destino que contiene los temas de Pub/Sub: |
Crea un tema de Pub/Sub
Para configurar notificaciones de anomalías o de presupuesto programático, primero debes crear un tema de Pub/Sub. Si ya configuraste un tema de Pub/Sub para presupuestos o anomalías de costos, puedes omitir este paso.
Ve a la página Pub/Sub de la consola de Google Cloud.
Selecciona un proyecto para 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 contener tus temas de Pub/Sub relacionados con la facturación.
Haz clic en
Crear tema.En el campo ID de tema, proporciona un nombre de tema.
Conserva la configuración predeterminada de suscripción y encriptación, y haz clic en Crear.
Conecta tu tema de Pub/Sub
Para habilitar las notificaciones programáticas para recibir mensajes de Pub/Sub con el estado actual de tu presupuesto o anomalía, debes conectar tu presupuesto o anomalía a tu tema de Pub/Sub.
Para conectar un tema de Pub/Sub a un presupuesto de Facturación de Cloud, completa los siguientes pasos:
Usuarios con permisos de cuenta de Facturación de Cloud | Usuarios solo con permisos a nivel del proyecto (versión preliminar) |
---|---|
|
|
Para conectar un tema de Pub/Sub a una anomalía de costos, completa los siguientes pasos:
Usuarios con permisos de cuenta de Facturación de Cloud (Versión preliminar) |
---|
|
Formato de las notificaciones
Las notificaciones que se envían al tema de Pub/Sub constan de dos partes:
- Atributos: Son un conjunto de pares clave-valor que describen el evento.
Datos: una string que contiene un objeto JSON que describe los detalles de la alerta de presupuesto.
Atributos
Los atributos son pares clave-valor que se encuentran en todas las notificaciones que la Facturación de Cloud envía al tema de Pub/Sub. Las notificaciones siempre contienen el siguiente conjunto de pares clave-valor, sin importar la carga útil de la notificación.
Nombre del atributo | Ejemplo | Descripción |
---|---|---|
billingAccountId |
01D4EE-079462-DFD6EC
|
Es el identificador de la cuenta de Facturación de Cloud a la que le pertenece el 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
|
Es la versión del esquema de notificaciones. |
Datos
Los detalles de la alerta de presupuesto se muestran 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"
|
Es el nombre visible asignado al presupuesto. |
costAmount
|
140.321
|
Es el importe de los costos acumulados. El tipo de costos a los que se les realiza seguimiento depende de los filtros y las opciones de configuración del presupuesto. |
costIntervalStart
|
"2021-02-01T08:00:00Z"
|
Es el inicio del período de la alerta de presupuesto. “costAmount” incluye los costos de uso a partir de este momento. Este es el primer día del período del presupuesto (mes, trimestre, año o un período personalizado) durante el cual se produjo el uso del presupuesto. |
budgetAmount
|
152.557
|
Es el importe asignado al presupuesto. |
budgetAmountType
|
"SPECIFIED_AMOUNT"
|
Es el tipo de importe del presupuesto. Puede ser uno de los siguientes valores:
|
alertThresholdExceeded
|
0.9
|
Es la alerta que indica que se superó el límite configurado del costo real. El valor es un porcentaje en formato decimal (por ejemplo, 0.9 equivale al 90%). Esta clave no está presente si el costo real no excede ningún límite. |
forecastThresholdExceeded
|
0.2
|
Se excedió el límite de alertas del costo previsto más alto. El valor es un porcentaje en formato decimal (por ejemplo, 0.2 corresponde al 20%). Esta clave no está presente si el costo previsto no excede ningún límite. |
currencyCode
|
"USD"
|
Es el tipo de moneda de la alerta de presupuesto. Todos los importes de la alerta de presupuesto y de costos están en esta moneda. |
Atributos
Los atributos son pares clave-valor que se encuentran en todas las notificaciones que la Facturación de Cloud envía a tu tema de Pub/Sub. Las notificaciones siempre contienen el siguiente conjunto de pares clave-valor, sin importar la carga útil de la notificación.
Nombre del atributo | Ejemplo | Descripción |
---|---|---|
alcance |
scope_project
|
El alcance de la anomalía. |
billingAccountName |
billingAccounts/01D4EE-079462-DFD6EC
|
Es el identificador de la cuenta de Facturación de Cloud en la que se produjo la anomalía. |
resourceDisplayName |
My project
|
Es el nombre visible del recurso en el que se produjo la anomalía. |
resourceName |
projects/123456
|
Es el identificador del recurso en el que se produjo la anomalía. |
SchemaVersion |
1.0
|
La versión del esquema de Pub/Sub |
Datos
Los detalles de la alerta de anomalía se muestran 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
|
Es el nombre del recurso de la anomalía. |
billingAccountName
|
billingAccounts/01D4EE-079462-DFD6EC
|
Es el identificador de la cuenta de facturación. |
resourceName
|
"projects/12345"
|
Es el identificador del recurso en el que se produjo la anomalía. |
resourceDisplayName
|
"My project"
|
Es el nombre visible del recurso en el que se produjo la anomalía. |
detectionDate
|
"2024-02-01T08:00:00Z"
|
Es la fecha en la que se detectó la anomalía de costos. |
Scope
|
SCOPE_PROJECT
|
Indica el alcance de la anomalía. |
expectedSpendAmount
|
{
|
Es la inversión esperada para el recurso. |
actualSpendAmount
|
196.22
|
Es la inversión real del recurso. |
deviationAmount
|
31.01
|
Es la diferencia entre la inversión real y la esperada. |
deviationPercentage
|
18.77
|
Es el porcentaje del importe de desviación de la inversión esperada. |
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 } } } } |
Es un campo repetido que contiene información sobre la causa raíz de la anomalía. |
Garantías de entrega de notificaciones a Pub/Sub
Después de conectar tu presupuesto o anomalía a un tema de Pub/Sub, es posible que recibas notificaciones programáticas de la siguiente manera:
- 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 cadencia es diferente a la de los correos electrónicos de alerta de presupuesto, que solo se envían cuando se alcanza un límite de presupuesto.
- Las notificaciones de Pub/Sub se envían incluso si no tiene uso la cuenta de Facturación de Cloud.
- Es posible que pasen varias horas antes de que recibas la primera notificación de Pub/Sub.
- Pub/Sub solo garantiza una entrega al menos una vez. Es posible que recibas un mensaje varias veces y que estos lleguen de forma desordenada.
- 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:
- Ya no existe el tema de Pub/Sub.
- La Facturación de Cloud ya no tiene permiso para publicar en el tema de Pub/Sub.
- Superaste la cuota de notificaciones.
- Tienes políticas de la organización establecidas que limitan el uso compartido de recursos por dominio.
- Las notificaciones de anomalías se envían al tema de Pub/Sub solo cuando se alcanza el límite.
- Pub/Sub solo garantiza una entrega al menos una vez. Es posible que recibas un mensaje varias veces y que estos lleguen de forma desordenada.
- 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:
- Ya no existe el tema de Pub/Sub.
- La cuenta de Facturación de Cloud ya no tiene permiso para publicar en el tema de Pub/Sub.
- Superaste la cuota de notificaciones.
- Tienes políticas de la organización establecidas que limitan el uso compartido de recursos por dominio.
Para obtener más información, consulta Publica y recibe mensajes en Pub/Sub.
¿Qué sigue?
Para obtener más información sobre cómo puedes usar las notificaciones programáticas, consulta los siguientes ejemplos de respuestas de control de costos programáticas:
- Cómo escuchar tus notificaciones
- Cómo enviar notificaciones a Slack
- Controla el uso de recursos con notificaciones
- Cómo inhabilitar el uso de la facturación con notificaciones