Giter VIP home page Giter VIP logo

fischer's Introduction

Fischer Build Status

Named after Gerhard Fischer, one of the inventors of the hand held metal detector. Also the german term for a fisherman.

Proper application monitoring and especially alarming is crucial to quickly identify failures in your production applications. However in an environment with many different metrics and applications maintenance and setup becomes a tedious task.

Fischer aims to keep you up to date about any unusual behaviour of your metrics while keeping the configuration effort minimal. It thus enables you to focus on developing your application instead of watching all day long on your metrics.

Fischer uses an anomaly detection algorithm based on a normal distribution fitted to historical data of your metrics. Currently only prometheus is configurable as data source, but more such as graphite will follow. Please mind that fischer is still under heavy development, if you want to contribute feel free to tackle on of the issues.

Usage

The entire configuration is done from a file called config.edn located in the working directory. See EXAMPLE_config.edn for documentation.

Lein

Do lein run in the repository folder and of you go.

Docker

Just mount your config.edn into the home directory of /fischer/.

Example:

docker run -v [PATH_TO_YOUR_CONFIG]:/fischer/config.edn fischer

Model Training Data

Please note that fischer only uses metrics which have been measured for the complete time range specified in the config.edn. If a metric provides less datapoints than the other metrics, the corresponding metric will be withhold from the anomaly detection algorithm. To get detailed information about which data was used to fit the anomaly detection model, Fischer provides a JSON under http://[HOST]:[PORT]/models containing detailed information about the training data.

License

Copyright © 2017 Tjark Smalla

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

fischer's People

Contributors

chillkroetetts avatar

Stargazers

 avatar Marius Karnauskas avatar  avatar Smrutiranjan Sahu avatar Oleg Lipin avatar Lukas Stiebellehner avatar 张大侠 avatar Hugo avatar Clémence Saussez avatar Blair Strang avatar Anton Huck avatar PLD avatar James Connor avatar Matthias Nehlsen avatar

Watchers

James Cloos avatar  avatar FangLi avatar

Forkers

lulzzz

fischer's Issues

Graphite Provider

Similar to the prometheus provider, a graphite provider would be useful.

Time interval exclusion list

Build a (by frontend/api) changeable exclusion list for time intervals. All metrics from this time period won't be used for training of the anomaly detection model.
Thus developers can withhold metrics caused by an incident from anomaly detection training data.

Performance optimization for model training/application

By using the clojure standard library for computing the anomaly detection model, many features will lead to a long training time. (1000 feature vectors with 1000 features each took 1.377s on an i5-4300U CPU @ 1.90GHz took)

I never had a closer look for areas of optimization but I'm sure there is much potential left since my implementation never had performance in mind.

Define and implement a reporter interface

Currently predictions are written to console only.

Aim is to have a set of reporters (mail, prometheus, graphite, HTTP-call) which can be configured to send anomaly detection alarming. Alarming should include at least:

  • profile name
  • top 10 of most anomalous metrics
  • score

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.