Um orçamento, usado em toda parte
Um número no catálogo
A entrada do catálogo traz monthly_budget, em dólares americanos, produção e não produção juntas. As regras de custo o leem da entrada, a raiz do Grafana define com ele os limites do painel de custos, e a fábrica de projetos o divide 70 para 30 num orçamento do Google Cloud em cada projeto faturado, com alertas em 80 e 100 por cento.
O merge request sabe o custo
Em cada aprovação, o executor planeja cada raiz do produto, calcula o preço de cada plano com o Infracost e publica uma nota por raiz, com o custo mensal dessa raiz diante do orçamento e o que fica de fora. O controle de aprovação soma os custos mensais das raízes e define a verificação Airframe cost do merge request: ela falha quando o total ou qualquer raiz sozinha passa do orçamento, ou quando não foi possível calcular o preço de uma raiz, e o GitLab mantém o merge fechado. O motivo da verificação, que o executor mostra no log do seu job, traz o total e a parte de cada raiz. A recusa diz para aumentar o orçamento no catálogo.
O painel de custos mostra
Um job diário lê a exportação de faturamento e envia o custo de cada produto como métricas. A pasta do Grafana de cada produto tem um painel de custos: o acumulado do mês e a previsão contra o orçamento, em laranja a 80 por cento e em vermelho a 100. A raiz do Grafana o cria, com os limites tirados de monthly_budget, quando a entrada do catálogo do produto recebe o merge.
O desvio é relatado, não escondido
No agendamento diário de um repositório, o job de desvio planeja cada raiz sem aplicá-la. Quando um plano não está vazio, a plataforma abre uma issue para essa raiz com os recursos e as suas ações, nunca os seus valores, reescreve a issue enquanto o desvio dura e a fecha quando a raiz volta a convergir.