Building Analytics Plugin for Erlang MQTT Broker
Mustafin, Damir (2017)
Mustafin, Damir
Kaakkois-Suomen ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2017053111388
https://urn.fi/URN:NBN:fi:amk-2017053111388
Tiivistelmä
The purpose of this thesis was to research and develop a piece of software that would allow to collect analytics data from a proxy server that is built for Internet of Things. The main work was done around EMQ broker, which was selected as a proxy server for this project. EMQ serves requests over MQTT protocol, an alternative to traditional HTTP. It is written in Erlang programming language that belongs to a family of functional programming languages that gives high fault-tolerance and concurrency when serving requests on the server-side. The following proxy was selected to work with APInf, an API management platform, for a number of reasons that are described in the thesis.
The methods used for researching and implementing the system involved learning an Erlang programming language in order to develop a plugin for the broker. In addition, EMQ provided a pre-defined template that was used as a starting point for the development process. The gathered analytics data was then visualized via the web user interface that involved creating a simple analytics dashboard that shows requests distribution over time. In order to navigate over the big amounts of data, filtering options were added to the dashboard.
The outcome of the development was a number of functioning components that were per- forming the requested task. As the initial goal of this project was to fully integrate EMQ with APInf, the work in that direction will continue and this thesis describes steps that are left for the integration.
The methods used for researching and implementing the system involved learning an Erlang programming language in order to develop a plugin for the broker. In addition, EMQ provided a pre-defined template that was used as a starting point for the development process. The gathered analytics data was then visualized via the web user interface that involved creating a simple analytics dashboard that shows requests distribution over time. In order to navigate over the big amounts of data, filtering options were added to the dashboard.
The outcome of the development was a number of functioning components that were per- forming the requested task. As the initial goal of this project was to fully integrate EMQ with APInf, the work in that direction will continue and this thesis describes steps that are left for the integration.