Spark + ElasticSearch = SparklES

Hi all,

Having built a Spark Core driven suite of sensors to monitor my allotment and greenhouse (aka conservatory), I needed a mechanism for recording and analysing the information gathered from the sensors. Given its prevalence in other monitoring applications, I decided to use ElasticSearch to store the sensor data and Kibana to display it. To this end I have written a small, generic Windows application called SparklES.

SparklES is able to poll the Spark CouldAPI on a regular basis and pushes variable values to ElasticSearch. It can be configured to retrieve any number of variables from any number of cores at (almost) any frequency. This information is then pushed to a configurable index in ElasticSearch for querying and display in Kibana.

The screen shot below shows 7 days worth of data from my conservatory, monitoring light, temperature and soil moisture:

SparklES is open source so please feel free to grab a copy and play with it. I have attempted to provide sufficient documentation to get it running in the repository README and provide meaningful feedback of configuration errors but please let me know if you encounter any issues with it or have ideas for further features (I am already looking into adding support for published messages).

Cheers,
Ian

(P.S. Anyone know why the inline image markup isn’t working? The link definitely works)
~ done :slight_smile:

15 Likes

Beautifully executed @ibebbs! Thank you for sharing :slight_smile:

1 Like

This looks awesome, thanks for sharing! :slight_smile:

Thanks,
David

Oh man, so great!

This looks great! I was just wondering about doing something similar to this…

I friggin’ love dashboard porn. I’m going to have to look more into Kibana & friends. My go-to setup has been StatsD + Graphite for the past couple of years, mostly because of all the built-in graphing functions you can do with Graphite, but the ease of StatsD definitely helps lube my love for the package.

I’ll show you mine since you showed me yours. :wink:

I’m not sure why the “Work (Segment Clock)” one isn’t pushing data. That Core has been acting up the past couple of weeks, so maybe it needs some 0.4.6 lovin’. I also changed the metrics paths for some of the “Home (Word Clock)” graph, so all that data was essentially reset about 2 hours ago. And the Nest isn’t doing much in this seasonal transition, so no active air conditioning or heating or fanning going on.

1 Like

This is exactly what I have been looking for - great work. I am having some trouble understanding the modification of the configuration file though, specifically the part about adding variable elements. Would it be possible to post a sample configuration file (without the access token and device ID’s) that show the adeed variable elements?
Thanks.

Hi,

Glad to hear it might help. You can find a version of the configuration file with an example of variable definition here.

Let me know if you have any further difficulty with it. I’m out of the country for a couple of weeks but would be happy to look into any issues when I return.

Cheers,
Ian