Open source framework for processing, monitoring, and alerting on time series data
Go Python Other
Latest commit cfbbd88 Feb 27, 2017 @nathanielc nathanielc Merged pull request #1228 from sj14/master
check if replay file has an extension
Permalink
Failed to load latest commit information.
.github add .github and .gitattributes May 31, 2016
.hooks Use Go vendoring for deps. Using govend tool. Apr 13, 2016
alert standardized underlying models for result data Feb 15, 2017
auth ensure unique and safe mapping from db name to db resource (#802) Aug 10, 2016
bufpool add alert service API Jan 5, 2017
client add tests for client.Topic Jan 12, 2017
clock influxdb->influxdata Jan 7, 2016
cmd fix dbrp parsing so quoted dbrp values can be parsed correctly Feb 7, 2017
command add alert service API Jan 5, 2017
etc Merged pull request #1184 from bayendor/patch-1 Feb 10, 2017
examples fix disk alert example (#1000) Oct 26, 2016
expvar Fix the number of subscriptions stat (#995) Oct 25, 2016
influxdb Miscellaneous lint cleanup Jan 10, 2017
integrations standardized underlying models for result data Feb 15, 2017
models standardized underlying models for result data Feb 15, 2017
pipeline expose server info in alert templates Feb 17, 2017
scripts do not chown the bin dir Nov 13, 2015
server Add error counters to every node type Feb 23, 2017
services check if replay file has an extension Feb 27, 2017
tick Miscellaneous lint cleanup Jan 10, 2017
timer fixes #387 #400 #401 Apr 4, 2016
udf Miscellaneous lint cleanup Jan 10, 2017
usr/share/bash-completion/completions restore anonymous topics and assert consistancy between anon topics a… Jan 11, 2017
vars export topic vars Jan 12, 2017
vendor git subrepo clone https://github.com/k-sone/snmpgo.git vendor/github.… Jan 9, 2017
.dockerignore User Defined Functions (UDFs) Jan 15, 2016
.gitattributes add .github and .gitattributes May 31, 2016
.gitignore Use Go vendoring for deps. Using govend tool. Apr 13, 2016
BLOB_STORE_DESIGN.md [WIP] Initial blob store design doc (#905) Sep 21, 2016
CHANGELOG.md add notice of replay file extension check (pull 1228) Feb 27, 2017
CONTRIBUTING.md A few small cleanups to CONTRIBUTING.md (#855) Aug 31, 2016
DESIGN.md add comments on windowing Dec 23, 2015
Dockerfile_build_ubuntu32 Go version 1.7.4 -> 1.7.5 Feb 1, 2017
Dockerfile_build_ubuntu64 Go version 1.7.4 -> 1.7.5 Feb 1, 2017
Dockerfile_build_ubuntu64_git Upgrade to protobuf 3.0.0 (#821) Aug 22, 2016
LICENSE Initial commit Aug 31, 2015
LICENSE_OF_DEPENDENCIES.md Add snmptrap service Jan 9, 2017
README.md Add tickscipts for telegraf (#780) Aug 8, 2016
alert.go Merged pull request #1207 from influxdata/nc-issue#922 Feb 23, 2017
batch.go Add error counters to every node type Feb 23, 2017
build.py Remove bash completion from fpm common arguments. Nov 23, 2016
build.sh build.sh: cache: fix implementation. Mar 18, 2016
circle-test.sh Upgrade to protobuf 3.0.0 (#821) Aug 22, 2016
circle.yml Package UDF Agents (#706) Jul 9, 2016
combine.go Add error counters to every node type Feb 23, 2017
combine_test.go add |combine method (#693) Jul 2, 2016
default.go Fix fill for join on and batches (#756) Jul 27, 2016
delete.go deleted tags update group by dims if needed (#787) Aug 5, 2016
derivative.go Add error counters to every node type Feb 23, 2017
doc.go rename DSL to TICKscript Oct 22, 2015
edge.go export topic vars Jan 12, 2017
edge_test.go update benchmark names (#778) Aug 3, 2016
eval.go Add error counters to every node type Feb 23, 2017
expr.go fix broken deadman extra expressions (#753) Jul 25, 2016
flatten.go Add error counters to every node type Feb 23, 2017
gobuild.sh add test.sh for testing various envs Feb 5, 2016
group_by.go Group By Fields (#731) Jul 25, 2016
http_out.go standardized underlying models for result data Feb 15, 2017
influxdb_out.go Add error counters to every node type Feb 23, 2017
influxql.gen.go Fix issues with holt winters and tmax (#915) Sep 19, 2016
influxql.gen.go.tmpl Fix issues with holt winters and tmax (#915) Sep 19, 2016
influxql.go Add error counters to every node type Feb 23, 2017
join.go Add error counters to every node type Feb 23, 2017
k8s_autoscale.go Add error counters to every node type Feb 23, 2017
list-deps remove govend deps (#632) Jun 10, 2016
log.go Add error counters to every node type Feb 23, 2017
metaclient.go Update the InfluxDB dep to 1.1 (#991) Oct 26, 2016
node.go Add error counters to every node type Feb 23, 2017
noop.go deadmans stats by group and for emitted not collected Feb 16, 2016
output.go Uses cases working: window, mr, alerting, and join/groupby both Oct 2, 2015
query.go Add new query property for aligning group by intervals to start times Jan 11, 2017
query_test.go Add new query property for aligning group by intervals to start times Jan 11, 2017
replay.go Miscellaneous lint cleanup Jan 10, 2017
result.go Miscellaneous lint cleanup Jan 10, 2017
sample.go Adds a new '|' operator for chaining methods in TICKscript Mar 25, 2016
shift.go add timer logic to each node Feb 22, 2016
stats.go Align deadman times (#688) Jun 30, 2016
stream.go Add error counters to every node type Feb 23, 2017
task.go Miscellaneous lint cleanup Jan 10, 2017
task_master.go export topic vars Jan 12, 2017
template.go Adds Template Tasks (#577) May 31, 2016
test.sh skip union stepped test until we can safely step task execution Jan 9, 2017
tickdoc.conf add doc for alert.Topic Jan 23, 2017
tmpldata Support float,integer,string and boolean (#524) May 18, 2016
udf.go Miscellaneous lint cleanup Jan 10, 2017
udf_test.go add alert service API Jan 5, 2017
union.go update union node Jan 9, 2017
update_tick_docs.sh update docs and tickdoc to use config Mar 25, 2016
vendor.list Add snmptrap service Jan 9, 2017
vendor.sh Add Difference, Mode and MovingAverage functions (#834) Aug 25, 2016
where.go Add error counters to every node type Feb 23, 2017
window.go add support for windowing data based off count in addition to time. Nov 11, 2016
window_test.go add support for windowing data based off count in addition to time. Nov 11, 2016

README.md

Kapacitor Circle CI Docker pulls

Open source framework for processing, monitoring, and alerting on time series data

Installation

Kapacitor has two binaries:

  • kapacitor – a CLI program for calling the Kapacitor API.
  • kapacitord – the Kapacitor server daemon.

You can either download the binaries directly from the downloads page or go get them:

go get github.com/influxdata/kapacitor/cmd/kapacitor
go get github.com/influxdata/kapacitor/cmd/kapacitord

Configuration

An example configuration file can be found here

Kapacitor can also provide an example config for you using this command:

kapacitord config

Getting Started

This README gives you a high level overview of what Kapacitor is and what its like to use it. As well as some details of how it works. To get started using Kapacitor see this guide. After you finish the getting started exercise you can check out the TICKscripts for different Telegraf plugins.

Basic Example

Kapacitor use a DSL named TICKscript to define tasks.

A simple TICKscript that alerts on high cpu usage looks like this:

stream
    |from()
        .measurement('cpu_usage_idle')
        .groupBy('host')
    |window()
        .period(1m)
        .every(1m)
    |mean('value')
    |eval(lambda: 100.0 - "mean")
        .as('used')
    |alert()
        .message('{{ .Level}}: {{ .Name }}/{{ index .Tags "host" }} has high cpu usage: {{ index .Fields "used" }}')
        .warn(lambda: "used" > 70.0)
        .crit(lambda: "used" > 85.0)

        // Send alert to hander of choice.

        // Slack
        .slack()
        .channel('#alerts')

        // VictorOps
        .victorOps()
        .routingKey('team_rocket')

        // PagerDuty
        .pagerDuty()

Place the above script into a file cpu_alert.tick then run these commands to start the task:

# Define the task (assumes cpu data is in db 'telegraf')
kapacitor define \
    cpu_alert \
    -type stream \
    -dbrp telegraf.default \
    -tick ./cpu_alert.tick
# Start the task
kapacitor enable cpu_alert

For more complete examples see the documentation.