If you have a web console do you use standard analytics tools to monitor it? e.g. Mixpanel/ Amplitude/ Woopra/ Heap, etc. I imagine some of the above would not be happy if the web page is not a known domain (e.g you’re browsing at http://mydevice.local) - and pretty much all of those services are not targeted toward this use case. Of course we can send analytics from the device side but … I would rather offload that to the client.
Has anyone gone down this route and have any experience to share? What works and what does not?
I send all my telemetry (soon to include device load and performance statistics) up to an ELK stack, using Filebeat. You can write a device-specific identifier into the json that goes into the log file (Resin device ID is easy enough, or have something you can set via an environment variable).
Kibana is a good option (especially since adding Timelion) for visualizing node health over time.
Hey, I’m just trying to wrap my head around the question, the “web console” is a site/webserver is hosted on the device, and the device is on the local network? Or how does it work?
I have just tried Mixpanel - a simple website with a single Mixpanel event using their example code for in-browser analytics:
This is just a thing I wanted to quickly test based on what you mentioned.
On the other hand, @ashmastaflash sounds like he has more experience on this front For some other monitoring @craig has done more work, show e.g. in this fleet-wide monitoring blogpost, for reference.
Yup that’s exactly what I’m after - I’ve got a web server running on the device showing a UI on the local network. I can (1) integrate with something where I push from the device to cloud or (2) let the client/browser use a standard web analytics tool such as mixpanel. Thanks so much for the test and also the additional reference links!!
@ashmastaflash: would you mind sharing your setup? I am also interested in forwarding logs to our ELK stack.
I am having a hard time just installing filebeat on our PiComputeModule 3. Getting my hands on armhf binaries is not so easy, and I would rather avoid compiling from source and install the whole go toolchain.
Thanks in advance!
EDIT: I might have figured out how to get Filebeat on our PCM3. Just not sure this is the easiest path. Anyway, here is what I did:
Elastic does not provide Filebeat binaries for ARMv7, so you need to cross-compile Filebeat using the instructions below. I adjusted the version numbers of golang and filebeat to 1.9 and 6.2.2 respectively (golang because errors showed up during compilation with 1.8, and filebeat to match our ELK stack): https://gist.github.com/anis-campos/31864e8d3fe7e323c738a8c7160e64ad
Upload the newly built Filebeat binary to the remote PCM3, for example with http://transfer.sh
On the PCM3, download the official 32-bit Linux archive from https://www.elastic.co/downloads/beats/filebeat, extract it and replace the Filebeat binary with the one you cross-compiled and uploaded.