Skip to content

sysfs: add support for ACPI 4.0 power meters - #860

Merged
SuperQ merged 1 commit into
prometheus:masterfrom
dongjiang1989:add-powermeter
Aug 28, 2026
Merged

sysfs: add support for ACPI 4.0 power meters#860
SuperQ merged 1 commit into
prometheus:masterfrom
dongjiang1989:add-powermeter

Conversation

@dongjiang1989

@dongjiang1989 dongjiang1989 commented Aug 13, 2026

Copy link
Copy Markdown
Member

Summary

Add GetPowerMeters() to the sysfs package to enumerate ACPI 4.0 power meter devices exposed by the kernel driver drivers/hwmon/acpi_power_meter.c via the ACPI bus path /sys/bus/acpi/drivers/power_meter/ACPI000D:*.

Closes #753.

Comment thread sysfs/class_power_meter.go
Comment thread sysfs/class_power_meter.go Outdated
@dongjiang1989
dongjiang1989 force-pushed the add-powermeter branch 2 times, most recently from 35c9157 to a8cad45 Compare August 28, 2026 03:18
@dongjiang1989

Copy link
Copy Markdown
Member Author

Thanks @SuperQ Update, Please recheck it

Comment thread sysfs/class_power_meter.go
Comment thread sysfs/class_power_meter.go Outdated
@dongjiang1989

dongjiang1989 commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

@SuperQ Update & git rebase done

Please recheck it

Add GetPowerMeters() to enumerate ACPI power meter devices exposed by
the kernel driver drivers/hwmon/acpi_power_meter.c via the ACPI bus
path /sys/bus/acpi/drivers/power_meter/ACPI000D:*.

The PowerMeter struct covers:
- Standard hwmon attributes (power1_average, *_interval, alarm, etc.)
- Optional capping attributes (power1_cap, cap_min/max/hyst)
- ACPI extension attributes (accuracy, is_battery, model/serial/OEM)
- The measures/ subdirectory (list of measured devices)

All optional fields use pointer types and are nil when the firmware
does not expose them, ensuring graceful degradation across different
ACPI implementations. Returns an empty slice with os.ErrNotExist when
the ACPI bus path does not exist.

Note: power1_accuracy is preserved as a string because the kernel
emits it as a formatted percent value (e.g. "1.50%").

Closes prometheus#753

Signed-off-by: dongjiang <dongjiang1989@126.com>

@SuperQ SuperQ left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@SuperQ
SuperQ merged commit a3d6856 into prometheus:master Aug 28, 2026
7 checks passed
@dongjiang1989
dongjiang1989 deleted the add-powermeter branch August 28, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for ACPI power meter

2 participants