.heartbeat = sensors_input_heartbeat,
};
+/*
+ Fan
+*/
+static int sensors_fan_heartbeat(td_ctx* ctx, td_source* source) {
+ const sensors_value values[] = {
+ { "current", SENSORS_SUBFEATURE_FAN_INPUT },
+ { "min", SENSORS_SUBFEATURE_FAN_MIN },
+ { "max", SENSORS_SUBFEATURE_FAN_MAX },
+ { "alarm", SENSORS_SUBFEATURE_FAN_ALARM },
+ { "alarm_max", SENSORS_SUBFEATURE_FAN_MAX_ALARM },
+ { "alarm_min", SENSORS_SUBFEATURE_FAN_MIN_ALARM },
+ { "beep", SENSORS_SUBFEATURE_FAN_BEEP },
+ { "fault", SENSORS_SUBFEATURE_FAN_FAULT },
+ { "div", SENSORS_SUBFEATURE_FAN_DIV },
+ { "pulses", SENSORS_SUBFEATURE_FAN_PULSES },
+ { NULL },
+ };
+
+ return read_sensors(ctx, source, SENSORS_FEATURE_FAN, values);
+}
+
+const td_source_impl sensors_fan_source = {
+ .name = "sensors-fan",
+
+ // RRD Data Sources
+ .rrd_dss = {
+ { "current", "GAUGE", 0, -1, },
+ { "min", "GAUGE", 0, -1, },
+ { "max", "GAUGE", 0, -1, },
+ { "alarm", "GAUGE", 0, -1, },
+ { "alarm_max", "GAUGE", 0, -1, },
+ { "alarm_min", "GAUGE", 0, -1, },
+ { "beep", "GAUGE", 0, -1, },
+ { "fault", "GAUGE", 0, -1, },
+ { "div", "GAUGE", 0, -1, },
+ { "pulses", "GAUGE", 0, -1, },
+ { NULL },
+ },
+
+ // Methods
+ .heartbeat = sensors_fan_heartbeat,
+};
+
/*
Temperature
*/