Structure of InfluxDB ===================== influxDB SCHEMA: DB weather measure wind ---------------- value | speed or direction or windgust --------------------------------------- field tag measure temphumi ---------------- temperature | humidity | external, internal | pressure --------------------------------------------------------- field field tag field measure rain ---------------- rain | rate / total / intensity | restart if zero, was it 65535 => before? --------------------------------------------- field tag field(int) DB status ISS measure ---------------- voltage | solar or capacitor | state / lqi / | battery or future_shit | ---------------------------------------------------------------- field tag field tag RasPI system ---------------- usage | disk, mem, cpu, eth, wifi % ------------------------------------ field | tag SQLite SCHEMA: DB status TABLE raspi ---------------- t_stamp | usage | host | type ----------------------------------------------- INT | INT | VARCHAR(50) | VARCHAR(20) CREATE TABLE raspi( t_stamp INT, usage INT, host VARCHAR(50), type VARCHAR(20)); TABLE network ---------------- t_stamp | count | type | nic | host ------------------------------------------------------------ INT | INT | VARCHAR(20) | VARCHAR(20) | VARCHAR(50) CREATE TABLE network( t_stamp INT, count INT, type VARCHAR(20), nic VARCHAR(20), host VARCHAR(50)); TABLE vantage_vue_iss ---------------------- t_stamp | voltage | type | lqi | rssi | batt_low ------------------------------------------------------------------ INT | INT | VARCHAR(20) | TINYINT | TINYINT | BOOL ------------------------------------------------------------------------------- ENERGY ------------------------------------------------------------------------------- CREATE CONTINUOUS QUERY cq_power_1m on voltage BEGIN SELECT max(power) AS p_max, min(power) AS p_min, mean(power) as power, mean(voltage) AS voltage INTO voltage.monthly.mppt_aggregated FROM voltage.realtime.mppt GROUP BY time(1m),type END CREATE CONTINUOUS QUERY "cq_power_1h" ON "voltage" BEGIN SELECT max("power") AS p_max,min(power) AS p_min, mean(power) as power, mean(voltage) AS voltage INTO "yearly"."mppt_aggregated" FROM realtime.mppt GROUP BY time(1h), type END CREATE CONTINUOUS QUERY "cq_power_6h" ON "voltage" BEGIN SELECT max("power") AS p_max,min(power) AS p_min, mean(power) as power, mean(voltage) AS voltage INTO "infinite"."mppt_aggregated" FROM realtime.mppt GROUP BY time(6h), type END drop continuous query cq_power_30m on voltage show retention policies on weather_v2 create retention policy realtime on weather_v2 duration 168h replication 1 shard duration 1h create retention policy monthly on weather_v2 duration 720h replication 1 shard duration 24h create retention policy yearly on weather_v2 duration 8760h replication 1 shard duration 168h create retention policy infinite on weather_v2 duration 0s replication 1 shard duration 720h select time,value into realtime.rain from autogen.rain where time > now()-1w group by * select time,humidity,pressure,temperature into realtime.temphumi from autogen.temphumi where time > now()-1w group by * select time,humidity,temperature into realtime.usense from autogen.usense where time > now()-1w group by * select time,value into realtime.wind from autogen.wind where time > now()-1w group by * alter retention policy realtime on weather_v2 default ------------------------------------------------------------------------------- WIND - DONE ------------------------------------------------------------------------------- CREATE CONTINUOUS QUERY "cq_rain_10m" ON "weather_v2" BEGIN SELECT max("rainrate") AS rrate_max, mean(rainrate) AS rrate, max(rain_bucket_tips) AS rain_tips INTO "monthly"."rainrate_aggregated" FROM realtime.rain GROUP BY time(10m) END CREATE CONTINUOUS QUERY "cq_rain_1h" ON "weather_v2" BEGIN SELECT max("rainrate") AS rrate_max, mean(rainrate) AS rrate, max(rain_bucket_tips) AS rain_tips INTO "yealy"."rainrate_aggregated" FROM realtime.rain GROUP BY time(10m) END ------------------------------------------------------------------------------- RAIN - DONE ------------------------------------------------------------------------------- CREATE CONTINUOUS QUERY "cq_rain_10m" ON "weather_v2" BEGIN SELECT max("value") AS val_max, mean(value) AS value INTO "monthly"."rainrate_aggregated" FROM realtime.rain GROUP BY type,time(10m) END CREATE CONTINUOUS QUERY "cq_rain_1h" ON "weather_v2" BEGIN SELECT max("value") AS val_max, mean(value) AS value INTO "yearly"."rainrate_aggregated" FROM realtime.rain GROUP BY type,time(1h) END CREATE CONTINUOUS QUERY "cq_rain_6h" ON "weather_v2" BEGIN SELECT max("value") AS val_max, mean(value) AS value INTO "infinite"."rainrate_aggregated" FROM realtime.rain GROUP BY type,time(6h) END ------------------------------------------------------------------------------- TEMPHUMI - DONE ------------------------------------------------------------------------------- CREATE CONTINUOUS QUERY "cq_temphumi_10m" ON "weather_v2" BEGIN SELECT max("humidity") AS humidity_max, min("humidity") AS humidity_min, mean("humidity") AS humidity, max("temperature") AS temperature_max, min("temperature") AS temperature_min, mean("temperature") AS temperature INTO "monthly"."temphumi_aggregated" FROM realtime.temphumi GROUP BY type, time(10m) END CREATE CONTINUOUS QUERY "cq_temphumi_1h" ON "weather_v2" BEGIN SELECT max("humidity") AS humidity_max, min("humidity") AS humidity_min, mean("humidity") AS humidity, max("temperature") AS temperature_max, min("temperature") AS temperature_min, mean("temperature") AS temperature INTO "yearly"."temphumi_aggregated" FROM realtime.temphumi GROUP BY type, time(1h) END CREATE CONTINUOUS QUERY "cq_temphumi_6h" ON "weather_v2" BEGIN SELECT max("humidity") AS humidity_max, min("humidity") AS humidity_min, mean("humidity") AS humidity, max("temperature") AS temperature_max, min("temperature") AS temperature_min, mean("temperature") AS temperature INTO "infinite"."temphumi_aggregated" FROM realtime.temphumi GROUP BY type, time(6h) END ------------------------------------------------------------------------------- USENSE - DONE ------------------------------------------------------------------------------- CREATE CONTINUOUS QUERY "cq_usense_6h" ON "weather_v2" BEGIN SELECT mean("battery") AS battery, mean(humidity) AS humidity, mean(temperature) AS temperature INTO "yearly"."usense_aggregated" FROM realtime.usense GROUP BY type,time(6h) END CREATE CONTINUOUS QUERY "cq_usense_12h" ON "weather_v2" BEGIN SELECT mean("battery") AS battery, mean(humidity) AS humidity, mean(temperature) AS temperature INTO "infinite"."usense_aggregated" FROM realtime.usense GROUP BY type,time(12h) END ------------------------------------------------------------------------------- WIND ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- STATUS ------------------------------------------------------------------------------- POLICIES -------- create retention policy realtime on status duration 168h replication 1 shard duration 1h create retention policy monthly on status duration 720h replication 1 shard duration 24h create retention policy yearly on status duration 8760h replication 1 shard duration 168h create retention policy infinite on status duration 0s replication 1 shard duration 720h select time,usage into realtime.RasPI_aggregated from autogen.RasPI where time > now()-1w group by * select time,voltage into realtime.iss_aggregated from autogen.iss where time > now()-1w group by * -- SELECT NON_NEGATIVE_DERIVATIVE(max(*)) as traffic INTO "monthly"."net_aggregated" FROM autogen.net WHERE time > now()-2w GROUP BY time(30s) CQ -- CREATE CONTINUOUS QUERY "cq_net_1m" ON "status" BEGIN SELECT NON_NEGATIVE_DERIVATIVE(max(*)) as traffic INTO "monthly"."net_aggregated" FROM realtime.net WHERE time > now()-1m GROUP BY time(30s) END alter retention policy realtime on status default