Skip to content

/sys/class/powercap missing #2262

@rothgar

Description

@rothgar

Kepler Version

0.10.0 or later (Current/Supported)

Bug Description

I just tried to deploy kepler on top of talos linux (I work there) and it fails with the following error.

failed to initialize service rapl: failed to read rapl zones: unable to read class/powercap: open /host/sys/class/powercap: no such file or directory

I'm curious if it's documented what creates the powercap file in the Linux kernel. We may be missing settings in our builds that I'd like to add to enable this functionality.

I'm running this on bare metal intel i7 processors (I don't remember the exact model) so it's possible my processors don't support this.

Steps to Reproduce

  1. deploy talos to bare metal
  2. deploy kepler with helm chart

Expected Behavior

Daemonset pods would run

Environment

  • OS Talos 1.10
  • Kubernetes 1.33.3
  • containerd 2.0.5
  • Intel® Tiger Lake UP3 Processor

Logs and Error Messages

time=2025-08-05T00:09:11.341Z level=INFO source=cmd/kepler/main.go:91 msg="Loading configuration file" path=/etc/kepler/config.yaml                                                                                                                                             
time=2025-08-05T00:09:11.342Z level=INFO source=cmd/kepler/main.go:99 msg="Completed loading of configuration file" path=/etc/kepler/config.yaml                                                                                                                                
time=2025-08-05T00:09:11.342Z level=INFO source=cmd/kepler/main.go:69 msg="Kepler version information" version=v0.10.2-18-g2b565857 buildTime=2025-08-03_15:11:30 gitBranch=main gitCommit=2b565857 goVersion=go1.23.11 goOS=linux goArch=amd64                                 
                                                                                                                                                                                                                                                                                
Configuration                                                                                                                                                                                                                                                                   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                                                                                                                                                                                              
log:                                                                                                                                                                                                                                                                            
    level: debug                                                                                                                                                                                                                                                                
    format: text                                                                                                                                                                                                                                                                
host:                                                                                                                                                                                                                                                                           
    sysfs: /host/sys                                                                                                                                                                                                                                                            
    procfs: /host/proc                                                                                                                                                                                                                                                          
monitor:                                                                                                                                                                                                                                                                        
    interval: 5s                                                    
    staleness: 500ms                                                
    maxTerminated: 100                                              
    minTerminatedEnergyThreshold: 10                                                                                                    
rapl:                                                               
    zones: []                                                       
exporter:                                                           
    stdout:                                                         
        enabled: false                                              
    prometheus:                                                     
        enabled: true                                               
        debugCollectors:                                            
            - go                                                    
        metricsLevel:                                               
            - node                                                  
            - process                                               
            - container                                             
            - vm                                                    
            - pod                                                   
web:                                                                
    configFile: ""                                                  
    listenAddresses:                                                
        - :28282                                                    
debug:                                                              
    pprof:                                                          
        enabled: false                                              
dev:                                                                
    fake-cpu-meter:                                                 
        enabled: false                                              
        zones: []                                                   
kube:                                                               
    enabled: true                                                   
    config: ""                                                      
    nodeName: blah                                                  

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
time=2025-08-05T00:09:11.342Z level=DEBUG source=cmd/kepler/main.go:125 msg="Creating all services"
time=2025-08-05T00:09:11.342Z level=DEBUG source=cmd/kepler/main.go:198 msg="Creating Prometheus exporter"
time=2025-08-05T00:09:11.342Z level=INFO source=internal/service/initializer.go:31 msg="Initializing service" service=podInformer
W0805 00:09:11.342667    6004 client_config.go:659] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
time=2025-08-05T00:09:11.347Z level=DEBUG source=k8s/pod/pod.go:153 msg="setupManager with cache" service=podInformer
time=2025-08-05T00:09:11.347Z level=INFO source=k8s/pod/pod.go:131 msg="pod informer initialized" service=podInformer
time=2025-08-05T00:09:11.347Z level=INFO source=internal/service/initializer.go:31 msg="Initializing service" service=resource-informer
time=2025-08-05T00:09:11.347Z level=INFO source=internal/resource/informer.go:162 msg="Resource informer initialized successfully" service=resource-informer
time=2025-08-05T00:09:11.347Z level=INFO source=internal/service/initializer.go:31 msg="Initializing service" service=rapl
time=2025-08-05T00:09:11.347Z level=INFO source=internal/service/initializer.go:43 msg="Shutting down initialized services"
time=2025-08-05T00:09:11.347Z level=DEBUG source=internal/service/initializer.go:47 msg="skipping service shutdown" service=podInformer reason="service does not implement Shutdowner"
time=2025-08-05T00:09:11.347Z level=DEBUG source=internal/service/initializer.go:47 msg="skipping service shutdown" service=resource-informer reason="service does not implement Shutdowner"
time=2025-08-05T00:09:11.347Z level=ERROR source=cmd/kepler/main.go:54 msg="failed to initialize services" error="failed to initialize service rapl: failed to read rapl zones: unable to read class/powercap: open /host/sys/class/powercap: no such file or directory"

Additional Context

I also added drivers for intel ucode and ice-firmware to see if there was something missing in the OS but I'm not sure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugreport bug issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions