Comprehensive Research: VM Power Monitoring Projects
This issue documents existing projects doing similar work to vrapl and provides a detailed comparison.
Open Source Tools (Actively Maintained)
1. Scaphandre ⭐ (Most Similar to vrapl)
URL : https://github.com/hubblo-org/scaphandre
Focus : Energy consumption metrology agent
Architecture :
Uses RAPL on host
Qemu exporter for VM-specific metrics
Shares metrics via mounted filesystem to guest VMs
VM can access metrics with --vm flag
Attribution Method : CPU time-based proportional allocation (similar to vrapl!)
Status : Active, used in production
Comparison to vrapl :
✅ Similar: CPU proportional attribution
✅ Similar: RAPL-based measurement
➕ More features: Prometheus exporter, multiple exporters
➖ More complex: Requires filesystem sharing setup
vrapl advantage : Simpler, direct serial communication
2. Kepler (Kubernetes Efficient Power Level Exporter) ⭐
URL : CNCF Sandbox Project
Focus : Kubernetes container power monitoring
Architecture :
Uses eBPF to probe CPU performance counters
ML-based power models for instruction-level estimation
Works without direct hardware access (cgroups fallback)
Prometheus exporter
Attribution Method : Per-instruction power estimation (more sophisticated)
Status : Active CNCF project, growing adoption
Comparison to vrapl :
➕ More accurate: Tracks individual CPU instructions
➕ Cloud-friendly: Works without RAPL access
➖ More complex: ML models, eBPF requirements
➖ Different scope: Container-focused, not VM-focused
vrapl advantage : Direct hardware measurement, simpler
Caution
Currently Version 0.10.0+ the nonRAPL based systems cannot work and it need ML based estimations and there is a lot of ERROR
3. PowerJoular
URL : https://github.com/joular/powerjoular
Focus : Multi-platform process power monitoring
Architecture :
Two-step VM approach:
Host monitors VM process power
Shares data file with guest
Guest reads from shared file
Supports RAPL, NVIDIA GPUs, Raspberry Pi
Attribution Method : Process-level monitoring
Status : Active (v1.0.0+ supports VMs)
Comparison to vrapl :
✅ Similar: Two-step host/guest approach
➖ Different: File sharing vs serial communication
➕ More platforms: Works beyond x86
vrapl advantage : Real-time serial stream, libvirt integration
4. vJoule
URL : https://github.com/davidson-consulting/vjoule
Focus : Process energy consumption estimation
Architecture : Hardware-based measurements for processes
Status : Available but less documentation
Comparison to vrapl : Limited VM-specific features
Academic Research & Tools
5. BitWatts (EuroSys 2015)
Paper : "Process-level Power Estimation in VM-based Systems"
Institution : INRIA, University of Neuchâtel
Architecture :
Distributed actor-based middleware
Automatic power model learning
Multi-level virtualization support
Attribution Method : Application-agnostic power model
Status : Research project
Comparison to vrapl :
➕ More sophisticated: Multi-level virtualization
➕ Academic validation
➖ Not production-ready
vrapl advantage : Simpler, production-ready
6. Joulemeter (Microsoft Research) [DEPRECATED]
Paper : "Joulemeter: Virtual Machine Power Measurement and Management"
Focus : VM power measurement through modeling
Architecture : Software-only power models from resource usage
Status : ❌ Deprecated (capability moved to Visual Studio)
Historical Significance : Pioneer in VM power measurement (2009)
Comparison to vrapl :
➖ Model-based (less accurate than RAPL)
➖ Windows-focused
vrapl advantage : Hardware-based measurement
Cloud Provider Solutions
7. Cloud Carbon Footprint (Multi-cloud)
URL : https://www.cloudcarbonfootprint.org/
Focus : Carbon emissions estimation across AWS, GCP, Azure
Architecture : API-based, estimates from cloud metrics
Attribution Method : Model-based estimation
Status : ⚠️ Uncertain (last release 1+ year ago)
Comparison to vrapl :
➕ Multi-cloud: Works across providers
➖ No direct measurement: Pure estimation
➖ External tool: Not in-VM
vrapl advantage : Direct measurement, real-time
8. AWS Customer Carbon Footprint
Native AWS tool
❌ No direct power metrics to VMs
Model-based emissions estimates
9. GCP Carbon Footprint
Hourly emissions tracking
❌ No direct power metrics to VMs
Most detailed of big 3
10. Azure Sustainability Calculator
Application carbon footprint estimation
❌ No direct power metrics to VMs
QEMU/KVM Specific
11. QEMU RAPL MSR Support (Built-in)
Feature : qemu-vmsr-helper
Status : Official QEMU feature
Architecture :
Exposes host RAPL MSRs to guest
Requires privileged helper daemon
Guest can read RAPL directly
Comparison to vrapl :
✅ Similar goal: VM access to RAPL
➕ Official: Part of QEMU
➖ Read-only MSR access: Still needs calculation
➖ Security concerns: Direct MSR exposure
vrapl advantage : Attribution done on host, safer
12. kvmtop
13. vmtop (DigitalOcean)
Comparison Matrix
Tool
RAPL Direct
CPU Proportional
VM Support
Cloud Ready
Complexity
Status
vrapl
✅ Yes
✅ Yes
✅ Yes
⚠️ Needs host access
🟢 Low
✅ Working
Scaphandre
✅ Yes
✅ Yes
✅ Yes
⚠️ Needs host access
🟡 Medium
✅ Active
Kepler
⚠️ Fallback
❌ No (instruction-based)
⚠️ Containers
✅ Yes
🔴 High
✅ Active
PowerJoular
✅ Yes
✅ Yes
✅ Yes
⚠️ Needs host access
🟡 Medium
✅ Active
QEMU vRAPL
✅ Yes
❌ No
✅ Yes
⚠️ Needs helper
🟡 Medium
✅ Official
BitWatts
⚠️ Model
⚠️ Learned
✅ Yes
❌ No
🔴 High
⚠️ Research
Joulemeter
❌ Model
❌ Model
✅ Yes
❌ No
🟡 Medium
❌ Deprecated
Cloud Tools
❌ No
❌ Model
✅ Yes
✅ Yes
🟢 Low
✅ Active
Key Findings
1. Scaphandre is the Closest Competitor ⭐
Same core approach: RAPL + CPU proportional attribution
More mature: Prometheus exporters, production deployments
More complex setup: Requires qemu exporter + filesystem sharing
vrapl is simpler and more direct
2. Kepler is the Most Sophisticated
Instruction-level power estimation via eBPF
Works in cloud without RAPL access
Kubernetes/container focused
Different use case than vrapl
3. Nobody Does It Exactly Like vrapl
Your serial communication approach is unique:
✅ Real-time streaming to guest
✅ Minimal dependencies (no filesystem sharing)
✅ Simple architecture
✅ Direct libvirt integration
4. The Industry Needs This
All cloud providers use model-based estimation :
No direct power metrics exposed to VMs
AWS, GCP, Azure: All use approximations
vrapl demonstrates hardware-based measurement is possible
5. Academic Validation Exists
Multiple papers (BitWatts/EuroSys, Joulemeter) validate:
✅ CPU proportional attribution works
✅ Process-level power estimation is feasible
✅ Multi-level virtualization can be monitored
vrapl's Unique Position
Strengths
Simplest implementation of RAPL VM attribution
Serial communication - novel, low-overhead
Direct libvirt integration - production-ready
Real-time streaming - no polling, no file I/O
Educational value - clear, understandable code
Gaps Compared to Competition
❌ No Prometheus exporter (Scaphandre has this)
❌ No multi-VM monitoring (monitors one at a time)
❌ No memory/IO attribution (only CPU)
❌ No web dashboard (PowerJoular has this)
❌ No container support (Kepler's domain)
Opportunities
Reference implementation for cloud providers
Simpler alternative to Scaphandre for single-VM use
Educational tool for understanding VM power
Basis for virtio-power device specification
Recommendations
Immediate Enhancements
Multi-VM support - Monitor N VMs simultaneously
Memory attribution - Add RAPL DRAM domain
Prometheus exporter - Make metrics standard
Comparison benchmark - vrapl vs Scaphandre accuracy
Long-term Vision
Collaborate with Scaphandre - Your approach could complement theirs
Propose to QEMU - Serial virtio-power device
Academic paper - Validate CPU proportional attribution
Industry outreach - AWS, GCP, Azure for standardization
Conclusions
What We Learned:
Your approach is validated - Scaphandre/PowerJoular use similar methods
You're not reinventing the wheel - But you have a unique angle
There's no standard - Industry needs a common interface
Direct measurement beats models - All tools confirm this
vrapl's Role:
vrapl is the simplest, most direct implementation of CPU-proportional VM power attribution using RAPL
It demonstrates that:
✅ Hardware-based VM power measurement is feasible
✅ CPU proportional attribution is accurate enough
✅ Simple architectures can work
✅ Cloud providers could expose this natively
Next Steps:
Document comparison with Scaphandre
Add Prometheus exporter for compatibility
Write blog post explaining the approach
Propose virtio-power device to QEMU/KVM
Submit paper to sustainability conference (e.g., CNCF TAG Environmental Sustainability)
References
Tools
Academic Papers
Documentation
Comprehensive Research: VM Power Monitoring Projects
This issue documents existing projects doing similar work to vrapl and provides a detailed comparison.
Open Source Tools (Actively Maintained)
1. Scaphandre ⭐ (Most Similar to vrapl)
--vmflag2. Kepler (Kubernetes Efficient Power Level Exporter) ⭐
Caution
Currently Version 0.10.0+ the nonRAPL based systems cannot work and it need ML based estimations and there is a lot of ERROR
3. PowerJoular
4. vJoule
Academic Research & Tools
5. BitWatts (EuroSys 2015)
6. Joulemeter (Microsoft Research) [DEPRECATED]
Cloud Provider Solutions
7. Cloud Carbon Footprint (Multi-cloud)
8. AWS Customer Carbon Footprint
9. GCP Carbon Footprint
10. Azure Sustainability Calculator
QEMU/KVM Specific
11. QEMU RAPL MSR Support (Built-in)
qemu-vmsr-helper12. kvmtop
13. vmtop (DigitalOcean)
Comparison Matrix
Key Findings
1. Scaphandre is the Closest Competitor ⭐
2. Kepler is the Most Sophisticated
3. Nobody Does It Exactly Like vrapl
Your serial communication approach is unique:
4. The Industry Needs This
All cloud providers use model-based estimation:
5. Academic Validation Exists
Multiple papers (BitWatts/EuroSys, Joulemeter) validate:
vrapl's Unique Position
Strengths
Gaps Compared to Competition
Opportunities
Recommendations
Immediate Enhancements
Long-term Vision
Conclusions
What We Learned:
vrapl's Role:
It demonstrates that:
Next Steps:
References
Tools
Academic Papers
Documentation