Kapacitor is a Real-Time Streaming Data Processing Engine
Kapacitor is a native data processing engine in the TICK Stack. It can process both stream and batch data from InfluxDB. It lets you plug in your own custom logic or user-defined functions to process alerts with dynamic thresholds, match metrics for patterns, compute statistical anomalies, and perform specific actions based on these alerts like dynamic load rebalancing. It also integrates with HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack, and more.
Today’s modern applications require more than just dashboarding and operator alerts—they need the ability to trigger actions. Kapacitor’s alerting system follows a publish-subscribe design pattern. Alerts are published to
handlers subscribe to a topic. This pub/sub model and the ability for these to call User Defined Functions make Kapacitor very flexible to act as the control plane in your environment, performing tasks like auto-scaling, stock reordering, and IoT device control.
Kapacitor is designed to process streaming data in real-time. It can be deployed across the infrastructure as both a pre-processor to downsample and perform advanced analytics before shipping the data to InfluxDB, and a post-processor allowing older high-precision data to be stored in data stores like Hadoop (for example) for further analysis. Kapacitor is very easy to use and is also very powerful. It allows the scripting to be done using lambda expressions to define transformations on data points as well as define boolean conditions that act as the filter.
Kapacitor provides a simple plugin architecture, or interface, that allows it to integrate with any anomaly detection engine. This means that Kapacitor can integrate with machine learning libraries, pattern matching engines, rules engines, and the like. Kapacitor treats these plugins as User Defined Functions which allow the flexibility to yield the stream to an arbitrary function and resume processing on the output of that function. This makes Kapacitor a powerful control system, calling User Defined Functions that automate the complete system.