Skip to content
Anamoly detection service for your metrics.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Peak is an anamoly detection service for your metrics. The project began when I wanted to automate anamoly detection, but existing solutions weren't good enough.

At its heart, Peak consists of four things:

  • Metric - item you want to monitor and detect anamolies
  • Fetcher - source to pull the metrics from
  • Algorithm - determine if metric is an anamoly
  • Alerter - alert when metric is an anamoly

Here's a simple example:

Peak.metric :signups do
  describe "Number of new users per day."

  fetcher(:elasticsearch, {
    :query    => "signup",
    :index    => "analytics",
    :field    => "@timestamp",
    :interval => "12h",
    :from     => "2014-12-01",
    :till     => "now"

  algorithm :less_than_10_percent

  alerter :slack

In above example we register an metric called :signups. This metric is fetched from elasticsearch fetcher using query options passed to it, checks against :less_than_10_percent algorithm and when that matches, it calls :slack alerter.

List of fetchers:

  • :elasticsearch

List of algorithms:

  • :simple_peak
  • :simple_drop
  • :peak_without_historic_peaks
  • :drop_without_historic_drops
  • :no_new_entries

List of alerters:

  • :slack
You can’t perform that action at this time.