4 December, 2017

November 2017 change log

Major flespi improvements in November 2017

Dear friends!

November was an amazing month for flespi (hope for you too). Despite the rocket development works that we did, our downtime calculation stopped at 173 seconds for the entire month. This led us the premium service availability level of 99.993%. I believe this is impressive considering the amount of work we did (see below). We feel we deserve to celebrate our accomplishments with a glass of beer at a bar nearby +)

  • The most important thing is, of course, our universal device configurator. Some of our experienced hardware engineers are testing it now for usability and stability. Plus, we are adding more protocols with all known commands so that after official release (in a couple of weeks) you get maximally intuitive and usable GUI. BTW, you may already test it — just create a device with teltonika protocol.
  • As promised last month, we released new totally redesigned streams. Streams enable forwarding data from multiple channels or devices to 3rd party systems. This is a handy option for “lazy” developers who don’t want to bother studying flespi API but prefer directly receiving HTTP/TCP/MQTT data from devices in their platforms.
  • We did a major facelifting to the flespi panel by supplying it with an informative dashboard visualizing counters for all user-created objects. In the next iteration, we will visualize the dynamics for these counters with one-minute discretion on charts — devices created, connections or traffic used by the specified channel, API calls or traffic consumed by REST API calls. We will even be able to visualize how many messages went out or came in the channel inside the system. Nice thing about it, especially for devops, is that we are storing all the platform statistical data in the platform itself — in storage containers and we created a special data source plugin for grafana tool to visualize it. Later we will switch to grafana dashboards that can get instant access to counters, platforms stats, and even device telemetry information. Containers REST API was updated and received all methods and attributes to fetch registered keys, perform data aggregation on the server-side, etc. All these features are automatically available to device messages as well.
  • Another important diagnostic advancement is logs accumulation. Initially, we implemented channel logs as a dedicated container per channel — each channel had a logs-container. The limitation was that it contained only channel logs and when we started implementing streams we also needed logs for them. Finally, we decided to change the concept and created the second iteration of flespi logging system — very powerful and feature-rich. Each flespi user has a dedicated container that collects all types of logs. We post everything there: all PUT/POST/DELETE REST API requests with information on who performs a change and what is being changed, all streams, channels and devices events, all internal system events like blocking/unblocking, etc. We made them available via MQTT so that flespi users can immediately see what’s going on with their objects. Currently, both old and new logs systems exist for channels, but once we will implement the GUI for the new logs we will retire the old logs system.
  • We connected the platform to SMPP gateway so that it is possible to send/receive SMS messages to devices. This will be especially useful when working with the device configurator because the very first step in device configuration is pointing it to IP:port of the server and the best way to do this is via SMS — just by inserting a SIM card into device and letting flespi do the rest.
  • Last but not least, we switched internal data delivery technology for both streams and logs systems from HTTP REST API into MQTT event-based implementation powered by our MQTT broker — mbus. It’s been running in production mode for more than a month and shows stable results. We are constantly testing its performance and take steps to optimize it but from the very beginning (same as with our HTTP server implementation) we are quite ahead of any kind of open-source implementations. Maybe because we are using pure C, maybe because we are lucky, but performance is our priority number 2, immediately after stability. Just because we need to deliver very cheap, often free, but powerful tools.

In December we plan to finish most works on the device configurator and market it with a separate article, introduce our revised logs system, and enrich flespi.io panel with the corresponding GUI, supply you with a nice multifunctional “toolbox” utility that you may use to debug tracking devices and, if we are lucky, we will provide you with MQTT connectivity to subscribe to logs and/or messages. Maybe even to PUB/SUB own messages via MQTT.

You see how much work was done in just one month and I didn’t even cover everything — you will notice more changes yourself. To receive all flespi news instantly please subscribe to our Telegram News channel or just enter your e-mail here, press “Get Updates”, and get our newsletter in your Inbox once a month.

Do you feel like we actually deserve a beer for all of the above? Cheers if you do :)