org.hawkular.datamining:hawkular-datamining-forecast

Hawkular Parent POM

License

License

Categories

Categories

Data
GroupId

GroupId

org.hawkular.datamining
ArtifactId

ArtifactId

hawkular-datamining-forecast
Last Version

Last Version

0.2.0.Final
Release Date

Release Date

Type

Type

jar
Description

Description

Hawkular Parent POM
Project Organization

Project Organization

Red Hat, Inc.

Download hawkular-datamining-forecast

How to add to project

<!-- https://jarcasting.com/artifacts/org.hawkular.datamining/hawkular-datamining-forecast/ -->
<dependency>
    <groupId>org.hawkular.datamining</groupId>
    <artifactId>hawkular-datamining-forecast</artifactId>
    <version>0.2.0.Final</version>
</dependency>
// https://jarcasting.com/artifacts/org.hawkular.datamining/hawkular-datamining-forecast/
implementation 'org.hawkular.datamining:hawkular-datamining-forecast:0.2.0.Final'
// https://jarcasting.com/artifacts/org.hawkular.datamining/hawkular-datamining-forecast/
implementation ("org.hawkular.datamining:hawkular-datamining-forecast:0.2.0.Final")
'org.hawkular.datamining:hawkular-datamining-forecast:jar:0.2.0.Final'
<dependency org="org.hawkular.datamining" name="hawkular-datamining-forecast" rev="0.2.0.Final">
  <artifact name="hawkular-datamining-forecast" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.hawkular.datamining', module='hawkular-datamining-forecast', version='0.2.0.Final')
)
libraryDependencies += "org.hawkular.datamining" % "hawkular-datamining-forecast" % "0.2.0.Final"
[org.hawkular.datamining/hawkular-datamining-forecast "0.2.0.Final"]

Dependencies

compile (3)

Group / Artifact Type Version
com.google.guava : guava jar 18.0
org.apache.commons : commons-math3 jar 3.6
org.apache.commons : commons-lang3 jar 3.4

provided (3)

Group / Artifact Type Version
org.jboss.logging : jboss-logging jar
org.jboss.logging : jboss-logging-annotations jar
org.jboss.logging : jboss-logging-processor jar

test (6)

Group / Artifact Type Version
junit : junit jar 4.12
org.hamcrest : hamcrest-all jar 1.3
org.assertj : assertj-core jar 3.3.0
ch.qos.logback : logback-classic jar 1.1.5
org.apache.commons : commons-csv jar 1.2
com.github.lbordowitz.openforecast : openforecast jar 0.5.0

Project Modules

There are no modules declared in this project.

Hawkular Data Mining

Build Status  Join%20Chat

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:

  • hawkular-datamining-forecast - lightweight time series forecasting library

  • hawkular-datamining-rest - standalone web application with REST API

  • hawkular-datamining-dist - web application dedicated for deployment into Hawkular

Build & Run

To run standalone instance of Data Mining:

$ 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 Hawkular branch datamining and run the server. Predictive charts are located in Explorer tab.

# build Hawkular with deployed Data Mining
$ git clone -b datamining [email protected]: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.

  • Simple, Double, Triple exponential smoothing models

  • AutomaticForecaster - which automatically selects the best model, selection is based on AIC, AICc, BIC

  • Simple moving average (Weighted moving average)

  • Augmented Dickey-Fuller test

  • Autocorrelation function (ACF)

  • Time series decomposition

  • Time series lagging

  • Time series differencing

  • Automatic period identification

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
  • Tenant

Target
  • Tenant - enable prediction of all tenant’s metrics

  • MetricType - predict all metrics of given type

  • Metric

Documentation

License

Hawkular-datamining is released under Apache License, Version 2.0 as described in the 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.

org.hawkular.datamining

Hawkular

Monitoring services: Metrics, Alerting, Inventory, Application Performance Management

Versions

Version
0.2.0.Final
0.1.0.Final