Loud ML is an open source inference engine for metrics and events, and the fastest way to embed machine learning in your time series application. This includes APIs for storing and querying data, processing it in the background for ML or detecting outliers for alerting purposes, and more. More information can be found here.
This block attempts to create a simple balena Block for Loud ML inclusion in any project. Please be aware that this block only runs the Loud ML tool.
- Built-in HTTP API that facilitates the integration in other applications
- Data agnostic. The ML engine consumes data from different buckets to achieve seamless data experience. Supported data buckets include:
- ElasticSearch
- InfluxDB
- MongoDB
- OpenTSDB. Contributed by Volodymyr Sergeyev
- JSON configuration
- Simple to install and manage
- Donut unsupervised learning model arXiv 1802.03903
- Data processing in near real-time: data buckets are queried at regular intervals and feed the inference engine to return results
To use this image, create a container in your docker-compose.yml
file as shown below:
version: "2.1"
volumes:
loudml-data:
#
services:
loudml:
restart: always
build: ./loudml
volumes:
- loudml-data:/var/lib/loudml
ports:
- 8077:8077
The config.yml tells Loud ML what data sources are available for use and can be found in ./loudml/etc. The default is to use InfluxDB as both a source and destination for data, the bucket "balena" contains the information to be analyzed and the bucket "loudml" will contain the results.
buckets:
- name: balena
type: influxdb
addr: influxdb:8086
database: balena
retention_policy: autogen
- name: loudml
type: influxdb
addr: influxdb:8086
database: loudnml
retention_policy: autogen
measurement: loudml
annotation_db: loudmlannotations
storage:
path: /var/lib/loudml
server:
listen: 0.0.0.0:8077
By default the louadml runs an HTTP server on port 8077
, which will be accessible externally to the device.
You can also access the server via the command line within container:
$ loudml
Connected to localhost:8077 version 1.6.0
Loud ML shell 1.6.3
>
You can query the API from a remote host to check the service is running properly:
$ curl http://<loudml-ip-address>:8077
{"host_id":"86fe1a2bf19f89e83cee363f934d6bbe","tagline":"The Disruptive Machine Learning API","version":"1.6.0"}
Follow the getting started guide to learn more about the basics of Loud ML and how to use it in other applications.