23 de março de 20263 min de leitura

Monitorando o gasto com containers no OCI com OpenCost

Mickey Boxell

Oracle Cloud

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 kubectl com 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.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset