Links

Kapacitor

Connect your Kapacitor alerts to PagerTree using our Kapacitor Integration.
Company
Estimated Time
Vendor Docs
Open Source
5 minutes
view
v3.rb

What is Kapacitor?

Kapacitor is an open source data processing framework that makes it easy to create alerts, run ETL jobs and detect anomalies. 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.

How It Works

Kapacitor triggers alerts when alert rules are triggered.
  • When an alert is not OK (level !== 'OK') in Kapacitor, an alert is created in PagerTree automatically.
  • When an alert is OK (level === 'OK') in Kapacitor, the alert is resolved in PagerTree automatically.

Integration Walkthrough

In this integration tutorial we will show you how to send alerts from Kapacitor into PagerTree. The estimated time for this integration is 5 minutes. We assume that you already have a PagerTree and Kapacitor setup. We also assume you are familiar with the TICK stack since we will be using several of these components to setup the Kapacitor integration.

In PagerTree

  1. 1.
    Create the integration by clicking the Kapacitor logo.

In Kapacitor

  1. 1.
    From your Chronograph dashboard, in the left hand menu, select Alerting -> Manage Tasks.
    Manage Tasks
    Navigate to Alerting -> Manage Tasks
  2. 2.
    Click the Write TICKscript button.
     Write TICKscript button
    Click the Write TICKscript button.
  3. 3.
    In the TICKscript editor:
    1. 1.
      Select a database.
      database
      Select a database.
    2. 2.
      Title your TICKscript (e.g. “high_cpu”).
    3. 3.
      Copy and paste the following code, replacing the pagertree_url value with the PagerTree Endpoint URL you copied earlier.
cpu_alert.tick.js
var pagertree_url = '<PagerTree Endpoint URL>'
var period = 1m
var crit = 90
var warn = 80
var info = 70
var data = stream
|from()
.database('telegraf')
.retentionPolicy('autogen')
.measurement('win_cpu')
|window()
.period(period)
.every(period)
|mean('Percent_User_Time')
|eval(lambda: "mean")
.as('value')
var trigger = data
|alert()
.info(lambda: "value" > info)
.warn(lambda: "value" > warn)
.crit(lambda: "value" > crit)
.stateChangesOnly()
.message(' is value: ')
.id('high_cpu')
.idTag('alertID')
.levelTag('level')
.messageField('message')
.post(pagertree_url)
  1. 1.
    Click the Save New TICKscript button.
    TICKscript
    Save the TICKscript.
This tick script, uses InfluxDB’s sample Telegraph collector that merely collects CPU usage on your local machine. You’ll need to apply the alert to your own tickscripts to alert on metrics you wish to monitor.
The important pieces to this script are:
cpu_alert.important.tick.js
...
// will look at windows of data so you are not spammed by every datapoint
|window()
.period(period)
.every(period)
...
// send the alert to PagerTree with different levels. Only report state changes.
|alert()
.info(lambda: "value" > info)
.warn(lambda: "value" > warn)
.crit(lambda: "value" > crit)
.stateChangesOnly() // *very important*
.message('{{.ID}} is {{.Level}} value: {{ index .Fields "value" }}')
.id('high_cpu')
.idTag('alertID')
.levelTag('level')
.messageField('message')
.post(pagertree_url)
You have successfully completed the Kapacitor Integration.