hawkular / hawkular-datamining

Real-time time series prediction library with standalone server
36 stars 22 forks source link
exponential-smoothing forecasting forecasting-models time-series-analysis time-series-forecast timeseries

= Hawkular Data Mining

ifdef::env-github[] [link=https://travis-ci.org/hawkular/hawkular-datamining] image:https://travis-ci.org/hawkular/hawkular-datamining.svg?branch=master["Build Status", link="https://travis-ci.org/hawkular/hawkular-datamining"]{nbsp} image:https://badges.gitter.im/Join%20Chat.svg[link="https://gitter.im/hawkular/hawkular-datamining?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] endif::[]

== About Data Mining is time series prediction engine for Hawkular. It autonomously selects best model for time series being modelled. Produced prediction can be used for alert prediction or in predictive charts in UI.

Module is split into several artifacts:

== Build & Run

To run standalone instance of Data Mining:

[source,shell]

$ mvn install -Pdev

run Wildfly with deployed Data Mining

$ hawkular-datamining-rest/target/wildfly-*/bin/standalone.sh


To run Hawkular with Data Mining, clone and build link:https://github.com/hawkular/hawkular/tree/datamining[Hawkular] branch datamining and run the server. Predictive charts are located in Explorer tab.

[source,shell]

build Hawkular with deployed Data Mining

$ git clone -b datamining git@github.com:hawkular/hawkular.git $ cd hawkular $ mvn install -Pdev

run Hawkular

$ dist/target/hawkular-*/bin/standalone.sh


== Time Series Forecasting Library hawkular-datamining-forecast All models uses non-linear optimization algorithm to estimate best parameters of the model. Models and Forecasters are designed for online learning.

== Enable prediction in Hawkular In Hawkular prediction can be enabled directly in UI by increasing forecasting horizon or through REST call by creating Relationship from Tenant to Metric, MetricType or Tenant.

Following example enables forecasting for all metrics under given tenant.

$ tenant=$(curl -s GET 'http://jdoe:password@localhost:8080/hawkular/inventory/tenant'| grep --color=never -oP 'path" : "\K/t;[0-9a-z-]+') $ curl -ivX POST -H "Content-Type: application/json" 'http://jdoe:password@localhost:8080/hawkular/inventory/tenants/relationships' -d '{ "name": "__inPrediction", "source": "'$tenant'", "target": "'$tenant'", "properties": {"forecastingHorizon": 150} }'

Source and target are canonical paths.

.Source

.Target

== Documentation

== License

Hawkular-datamining is released under Apache License, Version 2.0 as described in the link:LICENSE[LICENSE] document


Copyright 2015 Red Hat, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

During build if you are getting Some files do not have the expected license header just run mvn license:format.