diff --git a/mos.yml b/mos.yml index 4ae94f1..bdab145 100644 --- a/mos.yml +++ b/mos.yml @@ -18,6 +18,7 @@ config_schema: - ["sensors", "o", {title: "Sensors settings"}] - ["sensors.dht_gpio", "s", "13,12,14", {title: "Comma Separated list of GPIO pins to enable DHT22/AM2302 sensors on"}] - ["sensors.dht_period", "i", 3, {title: "Sample period in seconds for DHT sensors"}] + - ["sensors.pushgateway_period", "i", 10, {title: "Period in seconds for Prometheus Pushgateway POSTs"}] - ["prometheus.pushgateway", "prometheus.example.net:9091"] diff --git a/src/mgos_prometheus_sensors.c b/src/mgos_prometheus_sensors.c index 0310324..36a8570 100644 --- a/src/mgos_prometheus_sensors.c +++ b/src/mgos_prometheus_sensors.c @@ -1,9 +1,17 @@ #include "mgos_config.h" +#include "mgos_prometheus_metrics.h" #include "mgos_prometheus_sensors.h" void dht_init(); +static void pushgateway_timer(void *user_data) { + mgos_prometheus_metrics_push(MGOS_APP, mgos_sys_config_get_device_id()); + (void) user_data; +} + bool mgos_prometheus_sensors_init(void) { dht_init(); + if (mgos_sys_config_get_sensors_pushgateway_period()>0) + mgos_set_timer(mgos_sys_config_get_sensors_pushgateway_period()*1000, true, pushgateway_timer, NULL); return true; }