Future of graphs (and annotations) - Fuel Streams


#1

After playing around with Fuel Streams a bit, I would like to offer the following suggestion.

WebCore does a wonderful job giving people tools to create simple and complex automations for their home. Fuel Streams are cute but ultimately seem to come short for advanced users; putting together a scalable, reliable (and hosted) TSB (TSDB) and accompanying graph engine and customizable portal is a lot of work. In my opinion that’s not what the developers should focus on.

Leveraging the simple Web Request action, I was able to, after having built a proxy in node.js, push metrics to a Graphite server (there are hosted Graphite as well as other TSDB). I was able to also push annotations (presence and other events) to my system.

I am happy to guide others to achieve the same and share my proxy code once I clean it up.


#2

I’d certainly be interested to see what you created in nodejs.
Is that grafana dashboard pulling data from graphite?


#3

@allrak, thanks for asking.

Webcore -> Make Web Request -> (my node.js) webcore_proxy -> statsd (UDP call) -> Graphite -> Grafana

I could probably avoid the statsd part for personal use and go directly to Graphite. Ideally Graphite would have a web API for pushing metrics but I don’t think it does. Graphite 2.0 maybe will (sponsored by the Grafana people AFAIK).

For annotations, I decided to use the Grafana ones instead of the Graphite ones that are an afterthought:

Webcore -> Make Web Request -> (my node.js) webcore_proxy -> Grafana (POST call)

I’ll push the proxy to GitHub once I clean up the secrets and set up a config file


#4

Excellent, I’m doing something very similar through ST using the “influxDB logger” ST app.
That would be cool to make web requests write from a piston and be able to setup my own graph.
How difficult would it be to send the data to an influxdb from your node.js proxy?

EDIT: Thinking about it, I could probably modify what I needed in your code to send it to influx.


#5

I think it would be very trivial, I use the statsd API. You could use statsd to aggregate your metrics into InfluxDB or even call InfluxDB directly (for personal use). You’ll see the code.


#6

Cool, looking forward to checking it out. I’m not a java person, but have some limited python experience. So I should be able to figure it out.


#7

@allrak : here it is: https://github.com/edasque/Webcore-Proxy

Start it with a yarn install or a npm install followed by a npm start when in src