<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">HI Murray,<div class=""><br class=""></div><div class="">Grafana does pretty slick graphs without much work at all. Here is an example image of a (not very good) PID implementation showing the target speed, actual speed, and error. As you can see this is going from speed=0 to speed=20 then speed=0 again after 30 seconds.</div><div class=""><br class=""></div><div class=""><img apple-inline="yes" id="72C98EE3-AC9D-4A43-B041-E4E68CAA5D88" width="812" height="320" src="cid:D5078F6E-5C9E-42B4-AC2F-2489261E78D7" class=""></div><div class=""><br class=""></div><div class="">Happy to share the detail of my Docker setup if that would help. I’m using Docker Compose to create three containers: ElasticSearch, Kibana, and Grafana. The three containers share a private network, and the data for each resides on the host rather than inside the containers themselves - makes upgrading the containers easy without losing the data. Sort of a beautiful thing made simple by Docker.</div><div class=""><br class=""></div><div class="">- Bob</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Oct 1, 2020, at 1:24 AM, Murray Altheim via DPRGlist <<a href="mailto:dprglist@lists.dprg.org" class="">dprglist@lists.dprg.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">On 1/10/20 9:25 am, Bob Cook via DPRGlist wrote:<br class=""><blockquote type="cite" class="">Hi Murray,<br class="">You may want to look at Grafana as a tool to visualize time series<br class="">data. It is open source and easy to set up if you are familiar with<br class="">Docker containers. It pulls data from a variety of sources, I’m using it with an Elasticsearch instance, also as a Docker container.<br class="">I set them up on a Linux host with Docker, but apparently you can<br class="">use Windows or macOS as your Docker host pretty easily too.<br class=""></blockquote><br class="">Hi Bob,<br class=""><br class="">I've as part of various jobs designed and implemented both Solr and<br class="">ElasticSearch services but I've never tried standing up a Docker<br class="">instance nor have I used Grafana, though I've looked over the website<br class="">a few times. I'm a Linux user so yeah, it doesn't sound like it'd be<br class="">too difficult to attempt what you've done, maybe easier than trying<br class="">to do it the hard way, which is kinda what I'd done on my version 1<br class="">PID controller: write the data from the PID to a file on the robot,<br class="">then either on a HDMI-connected monitor to the Raspberry Pi or on my<br class="">workstation computer doing the GnuPlot visualisation. That took a<br class="">fair bit of effort so if Grafana is substantially easier and more<br class="">configurable I might give it a try. Good learning experience both for<br class="">my robotics as well as job skills too.<br class=""><br class=""><blockquote type="cite" class="">I’m using Python to push data into the ES instance. There is a Python<br class="">lib for easy access to ES. My robot records a binary stream of stats<br class="">that I convert and upload offline, after I’ve collected data from a test run.<br class=""></blockquote><br class="">Wow, thanks for that clue -- Python to ElasticSearch would be a pretty<br class="">huge simplification if the ElasticSearch to Grafana connection were<br class="">similarly easy. But again, a good learning experience in either case.<br class=""><br class="">If I were doing a microservice architecture between powerful services<br class="">on a fast network I might want to send all the log messages directly<br class="">to ElasticSearch, but considering this is running on a Raspberry Pi<br class="">over WiFi and I don't need the data to be live-streamed, I'll likely<br class="">think about how to load a completed log (as CSV, as Chris suggested)<br class="">after the fact.<br class=""><br class="">Thanks much,<br class=""><br class="">Murray<br class=""><br class="">...........................................................................<br class="">Murray Altheim <murray18 at altheim dot com> = = ===<br class=""><a href="http://www.altheim.com/murray/" class="">http://www.altheim.com/murray/</a> === ===<br class=""> = = ===<br class=""> In the evening<br class=""> The rice leaves in the garden<br class=""> Rustle in the autumn wind<br class=""> That blows through my reed hut.<br class=""> -- Minamoto no Tsunenobu<br class=""><br class="">_______________________________________________<br class="">DPRGlist mailing list<br class=""><a href="mailto:DPRGlist@lists.dprg.org" class="">DPRGlist@lists.dprg.org</a><br class="">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org<br class=""></div></div></blockquote></div><br class=""></div></body></html>