Announcing Kapacitor v0.10: Support for Custom Functions, More Integrations and a Dead Man’s Switch

Nathaniel Cook — January 28, 2016

Since the initial release of Kapacitor in December of last year there have been a few common themes among the community on what features they’d most like to see…

Custom User Functions & Anomaly Detection

This release gives users the ability to write custom functions in any programming language. This is done via a Protocol Buffer RPC system with Kapacitor managing the running process. If your language supports Protobuf serialization, you’ll be able to write custom monitoring, alerting, and processing code that can be injected into your TICKScripts.

The big news is that you can now do more advanced anomaly detection with Kapacitor through these User Defined Functions (UDFs). It is now possible to integrate any new or existing algorithm with Kapacitor via UDFs. Check out this guide to get started integrating your favorite anomaly detection algorithm with Kapacitor.


Secondly, we have had lots of attention on alerting integrations. Thanks to the community Kapacitor can now send alerts to HipChat, OpsGenie, Alerta and Sensu in addition to previous integrations with PagerDuty, Slack and VictorOps. If you want to integrate with yet another alerting system check out these PRs as they layout how easy it is.

In addition there have been a dozen bug fixes and another dozen new features, most around improving the alerting experience within Kapacitor. Check out the release notes for a complete list of features since the last major release.

Dead Man’s Switch

Lastly, people naturally wanted to know if their task stopped receiving data. We have built in a dead man’s switch, that can be configured by individual task or globally for all tasks, that will trigger an alert if a task doesn’t receive data for a configurable duration. See this PR for details.

Where is Kapacitor going from here?

For the next release we are focusing on two areas. First, more integrations for UDFs, we want to make it easy to plugin your algorithms in whatever language you are using. Second, we are focusing on stability and performance. Kapacitor is a young project but we already like the foundation it has built and are ready to take it to the next level. We will be designing a set of benchmarks and failure tests suites for Kapacitor to ensure ongoing stability and performance.

We want to be able to make strong statements about how Kapacitor behaves under real load, and to be able to definitively answer questions around instance sizing and resource consumption.

What’s next?