Medir o consumo de energia é um passo importante para que equipes reduzam a pegada de carbono de seu software. O Cloud Carbon Footprint (CCF) estima o consumo de energia baseada nos dados de cobrança e utilização obtidos da APIs da nuvem. Kepler — acrônimo de Kubernetes-based Efficient Power Level Exporter (Exportador de Nível de Energia Eficiente baseado em Kubernetes) — vai um passo além: ele usa contadores de software via RAPL, ACPI e nvml para medir o consumo de energia por recursos de hardware, e usa uma abordagem baseada na eBPF para atribuir consumo de energia a processos, containers e pods Kubernetes. O consumo é então convertido em estimativas de uso de energia através de um modelo personalizado de aprendizado de máquina (ML) e de dados de referência de SPEC Power. Por fim, o relatório de consumo de energia a nível de pods fica disponível como métricas do Prometheus. Em casos onde o Kubernetes está rodando em máquinas virtuais, por exemplo, quando não está usando instâncias de máquinas concretas, o Kepler usa cgroups para estimar o consumo de energia. Temos grande experiência com o CCF, e podemos atestar sua utilidade, mas a abordagem do projeto Kepler nos deixou intrigados.