Un presupuesto, usado en todas partes
Un número en el catálogo
La entrada del catálogo lleva monthly_budget, en dólares estadounidenses, producción y no producción juntas. Las reglas de costo lo leen de la entrada, la raíz de Grafana fija con él los umbrales del panel de costos, y la fábrica de proyectos lo reparte 70 a 30 en un presupuesto de Google Cloud en cada proyecto con facturación, con alertas al 80 y al 100 por ciento.
El merge request conoce el costo
En cada aprobación, el ejecutor planifica cada raíz del producto, calcula el precio de cada plan con Infracost y publica una nota por raíz, con el costo mensual de esa raíz frente al presupuesto y lo que queda fuera. La compuerta de aprobación suma los costos mensuales de las raíces y fija la verificación Airframe cost del merge request: falla cuando el total o cualquier raíz por sí sola supera el presupuesto, o cuando no se pudo calcular el precio de una raíz, y GitLab mantiene cerrado el merge. El motivo de la verificación, que el ejecutor muestra en el log de su trabajo, da el total y la parte de cada raíz. El rechazo dice que hay que subir el presupuesto en el catálogo.
El panel de costos lo muestra
Un job diario lee la exportación de facturación y envía el costo de cada producto como métricas. La carpeta de Grafana de cada producto tiene un panel de costos: lo acumulado del mes y la proyección frente al presupuesto, en naranja al 80 por ciento y en rojo al 100. La raíz de Grafana lo crea, con sus umbrales tomados de monthly_budget, cuando se fusiona la entrada del catálogo del producto.
La deriva se informa, no se oculta
En la programación diaria de un repositorio, el job de deriva planifica cada raíz sin aplicarla. Cuando un plan no está vacío, la plataforma abre un issue para esa raíz con los recursos y sus acciones, nunca sus valores, lo reescribe mientras dura la deriva y lo cierra cuando la raíz vuelve a converger.