Skip to content

nrzipher/banshee

 
 

Repository files navigation

Banshee

Anomalies detection system for periodic metrics.

Build Status

Features

  • Designed for periodic metrics.
  • Easy to get started.
  • Automatically anomalies detection.
  • Alerting rules admin panels.
  • Detection result visualization.
  • Built for a large quantity of metrics.

Requirements

Get Started

  1. Run make.
  2. Run ./banshee -c <path/to/config.json>.

Configuration

The default configuration is exampleConfig.json.

Statsd Integration

  1. Install statsd-banshee on the statsd servers: npm install statsd-banshee.

  2. Add module statsd-banshee to statsd's backends:

    {
    , backends: ['statsd-banshee']
    , bansheeHost: 'localhost'
    , bansheePort: 2015
    }

Alerting Command

See alerter/exampleCommand.

Net Protocol

Very simple line-based:

<Name> <Timestamp> <Value>\n

For example:

$ telnet 0.0.0.0 2015                                                                                                                                                                                            18 ↵ (go1.5.2 node@v5.0.0)
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is '^]'.
counter.foo 1451471948 3.14

Algorithms

  1. Anomalies detection: 3-sigma.

    if abs(v-avg) > 3*stdev:
        return True  # anomaly
  2. Metric trendings following: ewma and ewms:

    avg_old = avg
    avg = avg*(1-f) + v*f
    stdev = sqrt((1-f)*stdev*stdev + f*(v-avg_old)*(v-avg))

License

MIT Copyright (c) 2015 - 2016 Eleme, Inc.

About

[Working On] Anomalies detection system for periodic metrics.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 74.9%
  • JavaScript 22.6%
  • CSS 1.8%
  • Other 0.7%