{"id":21630489,"url":"https://github.com/hawkular/hawkular-datamining","last_synced_at":"2025-04-11T14:05:46.435Z","repository":{"id":30825207,"uuid":"34382546","full_name":"hawkular/hawkular-datamining","owner":"hawkular","description":"Real-time time series prediction library with standalone server","archived":false,"fork":false,"pushed_at":"2021-06-07T17:59:45.000Z","size":4187,"stargazers_count":39,"open_issues_count":14,"forks_count":22,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-25T10:12:12.754Z","etag":null,"topics":["exponential-smoothing","forecasting","forecasting-models","time-series-analysis","time-series-forecast","timeseries"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hawkular.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-22T09:52:30.000Z","updated_at":"2025-01-12T18:42:45.000Z","dependencies_parsed_at":"2022-06-26T15:22:53.863Z","dependency_job_id":null,"html_url":"https://github.com/hawkular/hawkular-datamining","commit_stats":null,"previous_names":["pavolloffay/alert-prediction"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkular%2Fhawkular-datamining","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkular%2Fhawkular-datamining/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkular%2Fhawkular-datamining/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkular%2Fhawkular-datamining/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hawkular","download_url":"https://codeload.github.com/hawkular/hawkular-datamining/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248412979,"owners_count":21099231,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exponential-smoothing","forecasting","forecasting-models","time-series-analysis","time-series-forecast","timeseries"],"created_at":"2024-11-25T02:11:10.426Z","updated_at":"2025-04-11T14:05:46.413Z","avatar_url":"https://github.com/hawkular.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Hawkular Data Mining\r\n\r\nifdef::env-github[]\r\n[link=https://travis-ci.org/hawkular/hawkular-datamining]\r\nimage:https://travis-ci.org/hawkular/hawkular-datamining.svg?branch=master[\"Build Status\", link=\"https://travis-ci.org/hawkular/hawkular-datamining\"]{nbsp}\r\nimage:https://badges.gitter.im/Join%20Chat.svg[link=\"https://gitter.im/hawkular/hawkular-datamining?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge\"]\r\nendif::[]\r\n\r\n== About\r\nData Mining is time series prediction engine for Hawkular. It autonomously selects best model for time series being\r\nmodelled. Produced prediction can be used for alert prediction or in predictive charts in UI.\r\n\r\nModule is split into several artifacts:\r\n\r\n - `hawkular-datamining-forecast` - lightweight time series forecasting library\r\n - `hawkular-datamining-rest` - standalone web application with link:http://www.hawkular.org/docs/rest/rest-datamining.html[REST API]\r\n - `hawkular-datamining-dist` - web application dedicated for deployment into Hawkular\r\n\r\n\r\n== Build \u0026 Run\r\n\r\nTo run standalone instance of Data Mining:\r\n\r\n[source,shell]\r\n----\r\n$ mvn install -Pdev\r\n# run Wildfly with deployed Data Mining\r\n$ hawkular-datamining-rest/target/wildfly-*/bin/standalone.sh\r\n\r\n----\r\n\r\nTo run Hawkular with Data Mining, clone and build link:https://github.com/hawkular/hawkular/tree/datamining[Hawkular]\r\nbranch `datamining` and run the server. Predictive charts are located in Explorer tab.\r\n\r\n[source,shell]\r\n----\r\n# build Hawkular with deployed Data Mining\r\n$ git clone -b datamining git@github.com:hawkular/hawkular.git\r\n$ cd hawkular\r\n$ mvn install -Pdev\r\n# run Hawkular\r\n$ dist/target/hawkular-*/bin/standalone.sh\r\n\r\n----\r\n\r\n== Time Series Forecasting Library `hawkular-datamining-forecast`\r\nAll models uses non-linear optimization algorithm to estimate best parameters of the model. Models and\r\nForecasters are designed for online learning.\r\n\r\n - Simple, Double, Triple exponential smoothing models\r\n - AutomaticForecaster - which automatically selects the best model, selection is based on AIC, AICc, BIC\r\n - Simple moving average (Weighted moving average)\r\n - Augmented Dickey-Fuller test\r\n - Autocorrelation function (ACF)\r\n - Time series decomposition\r\n - Time series lagging\r\n - Time series differencing\r\n - Automatic period identification\r\n\r\n== Enable prediction in Hawkular\r\nIn Hawkular prediction can be enabled directly in UI by increasing forecasting horizon or through\r\nREST call by creating Relationship from Tenant to Metric, MetricType or Tenant.\r\n\r\nFollowing example enables forecasting for all metrics under given tenant.\r\n----\r\n$ tenant=$(curl -s GET 'http://jdoe:password@localhost:8080/hawkular/inventory/tenant'| grep --color=never -oP 'path\" : \"\\K/t;[0-9a-z\\-]+')\r\n$ curl -ivX POST -H \"Content-Type: application/json\" 'http://jdoe:password@localhost:8080/hawkular/inventory/tenants/relationships' -d '{\r\n    \"name\": \"__inPrediction\",\r\n    \"source\": \"'$tenant'\",\r\n    \"target\": \"'$tenant'\",\r\n    \"properties\": {\"forecastingHorizon\": 150}\r\n}'\r\n----\r\nSource and target are canonical paths.\r\n\r\n.Source\r\n - Tenant\r\n\r\n.Target\r\n- Tenant - enable prediction of all tenant's metrics\r\n- MetricType - predict all metrics of given type\r\n- Metric\r\n\r\n== Documentation\r\n - link:http://www.hawkular.org/docs/components/datamining/index.html[Module documentation]\r\n - link:http://www.hawkular.org/docs/rest/rest-datamining.html[REST API documentation], this documentation can be generated using `mvn install -Pdocgen`, it is located in `hawkular-datamining-rest/target/generated/rest-datamining.adoc`\r\n\r\n== License\r\n\r\nHawkular-datamining is released under Apache License, Version 2.0 as described in the link:LICENSE[LICENSE] document\r\n\r\n----\r\n   Copyright 2015 Red Hat, Inc.\r\n\r\n   Licensed under the Apache License, Version 2.0 (the \"License\");\r\n   you may not use this file except in compliance with the License.\r\n   You may obtain a copy of the License at\r\n\r\n       http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n   Unless required by applicable law or agreed to in writing, software\r\n   distributed under the License is distributed on an \"AS IS\" BASIS,\r\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n   See the License for the specific language governing permissions and\r\n   limitations under the License.\r\n----\r\n\r\nDuring build if you are getting `Some files do not have the expected license header` just run `mvn license:format`.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhawkular%2Fhawkular-datamining","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhawkular%2Fhawkular-datamining","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhawkular%2Fhawkular-datamining/lists"}