]> git.ipfire.org Git - telemetry.git/commitdiff
sources: disk: Store power-on time in seconds
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 Mar 2026 12:10:45 +0000 (12:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 Mar 2026 12:10:45 +0000 (12:10 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/daemon/sources/disk.c

index 3c1d78912217b2eba4162be8713fe86772c059e5..c5c5cccf792fe2e1edbaa95c391e800a3000dfaa 100644 (file)
@@ -34,6 +34,7 @@
 #include "../parse.h"
 #include "../source.h"
 #include "../string.h"
+#include "../time.h"
 #include "disk.h"
 
 // Ignore these devices
@@ -61,8 +62,9 @@ static int disk_read_smart(td_ctx* ctx, const char* node, td_metrics* metrics) {
        SkBool smart_status;
        uint64_t bad_sectors;
        uint64_t power_cycles;
-       uint64_t power_on_time;
+       uint64_t power_on_time_msec;
        uint64_t temp_mk;
+       double power_on_time;
        double temp_k;
        int r;
 
@@ -129,13 +131,16 @@ static int disk_read_smart(td_ctx* ctx, const char* node, td_metrics* metrics) {
        }
 
        // Read power on time
-       r = sk_disk_smart_get_power_on(disk, &power_on_time);
+       r = sk_disk_smart_get_power_on(disk, &power_on_time_msec);
        if (r < 0) {
                ERROR(ctx, "Failed to read power on time from %s: %m\n", node);
                r = -errno;
                goto ERROR;
        }
 
+       // Convert to seconds
+       power_on_time = MSEC_TO_SEC(power_on_time_msec);
+
        // Read power cycles
        r = sk_disk_smart_get_power_cycle(disk, &power_cycles);
        if (r < 0) {