Currently sensor item on Linux relies on our own code... Well, honestly speaking it's more or less libsensors code adapted to our coding guidelines. From time to time it stops working because of new kernel versions, new drivers, new hardware etc. as we can see in
ZBX-282 and ZBX-8899 / ZBX-9678. Unfortunately, response from developers is not as prompt as it should be and users need to invent workarounds and write home-made patches which is annoying.
Let's fully rely on libsensors in this close to hardware and therefore very complicated area. From developer perspective this seems to be all pro's and no con's solution. From user perspective this will mean additional dependency during compilation but no more headache with patches/workarounds and better support for new hardware. Moreover, users will be able to fine-tune sensor output via libsensors config files (voltage sensor labels, scaling factors and so on).
Take my machine for example. Typing sensors -u in terminal yields:
It is not convenient that I cannot get voltages using their human-readable labels:
I can however query voltages using their original names:
But values I get need to be scaled to get actual real world voltages. Scaling factors (or sometimes complicated mathematical expressions to rescale sensor readings) and info on what sensor readings mean what are known exclusively to hardware manufacturers. They pass this information to libsensors developers and eventually users can see them in sensors.conf.default provided with lm-sensors package:
Very good thing is that users can edit labels and fine-tune rescaling factors for their hardware (see http://lm-sensors.org/wiki/VoltageLabelsAndScaling for more info) as they wish which is very convenient. And more reasonable labels and real-world readings will be fed to Zabbix without need to rescale them.