A gestão de custos em cloud passou por uma transformação radical com a adoção de paradigmas cloud-native. Historicamente, o chargeback de infraestrutura era feito com base em alocação fixa ou estimativas de capacidade física. Hoje, a volatilidade e a natureza on-demand da cloud exigem métricas granulares e em tempo real. No entanto, quando migramos do modelo de máquinas virtuais para containers em clusters Kubernetes, surge uma lacuna: como operacionalizar a visibilidade financeira de workloads que compartilham a mesma infraestrutura subjacente?
Os provedores, incluindo a Oracle Cloud Infrastructure (OCI), oferecem ferramentas nativas robustas para monitorar o consumo no nível de serviço (como o custo de uma VM), mas essas ferramentas naturalmente não possuem consciência do que acontece dentro dos seus containers no OCI Kubernetes Engine (OKE). Em cenários multi-tenant, onde vários times ou unidades de negócio compartilham um cluster para otimizar custos e reduzir o overhead de gerenciamento, a dificuldade em atribuir o custo real a cada tenant torna-se um gargalo crítico para qualquer estratégia de FinOps.
É aqui que o OpenCost se torna essencial. O projeto se posiciona como a camada de conectividade entre o seu Kubernetes e os dados de faturamento do provedor. Ao utilizar o ecossistema do Prometheus para coletar métricas de infraestrutura, o OpenCost permite a quebra de custos baseada em conceitos nativos do Kubernetes, como namespace, deployment ou até mesmo labels customizadas. Isso elimina a cegueira financeira em infraestruturas compartilhadas: você consegue visualizar exatamente qual carga de trabalho (ou qual time) está consumindo mais recursos de CPU, memória ou GPUs caras.
Instalação no OCI
O OpenCost detecta automaticamente a OCI como provedor (via node.spec.providerID) e pode consumir os dados da API de preços da Oracle. Para ambientes que exigem precisão absoluta, é possível configurar o autorizador para puxar os custos reais faturados, garantindo que descontos e SKUs específicos sejam considerados no cálculo final.
Pré-requisitos
- Um cluster OKE operante.
- Acesso ao
kubectlcom permissões de cluster-admin. - CLI da OCI configurada.
- Helm 3 ou superior.
Passo 1: Instale o Prometheus
O OpenCost utiliza o Prometheus para o scraping de métricas. Se você ainda não possui uma stack de observabilidade, utilize o Helm:
helm install prometheus --repo https://prometheus-community.github.io/helm-charts prometheus \
--namespace prometheus-system --create-namespace \
--set prometheus-pushgateway.enabled=false \
--set alertmanager.enabled=false \
-f https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml
Passo 2: Instale o OpenCost
Após garantir o namespace, a instalação via Helm é direta:
kubectl create namespace opencost
helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost \
--namespace opencost
Analisando dados via API
Uma vez operacional, o ganho de visibilidade é imediato. Você pode consultar custos via port-forward ou integrá-lo em dashboards no Grafana. A API permite queries poderosas por namespace, essencial para o modelo de chargeback:
# Custo por namespace nos últimos 7 dias
curl "http://localhost:9090/allocation/compute?window=7d&aggregate=namespace"
Para times de SRE e gestores de TI, o OpenCost não é apenas uma ferramenta de monitoramento; é uma alavanca para a eficiência operacional. Ao dar visibilidade real sobre quem consome o quê, criamos uma cultura de responsabilidade financeira que, alinhada com boas práticas de DevOps e FinOps, transforma o custo de infraestrutura em uma métrica de eficiência, e não apenas em uma despesa recorrente difícil de explicar.
Artigo originalmente publicado em cloud-infrastructure.