Documentation

Pushover event handler

Pushover is a service that sends instant push notifications to phone and tablets. Kapacitor can be configured to send alert messages to Pushover.

Configuration

Configuration as well as default option values for the Pushover event handler are set in your kapacitor.conf. Below is an example configuration:

[pushover]
  enabled = true
  token = "mysupersecrettoken"
  user-key = "myuserkey"
  url = "https://api.pushover.net/1/messages.json"

enabled

Set to true to enable the Pushover event handler.

token

Your Pushover API token.

user-key

Your Pushover USER_TOKEN.

url

The URL for the Pushover API. This should not need to be changed.

Options

The following Pushover event handler options can be set in a handler file or when using .pushover() in a TICKscript.

Name Type Description
device string Specific list of users’ devices rather than all of a users’ devices. Multiple device names may be separated by a comma.
title string The message title. By default, the app’s name is used.
url string A supplementary URL to show with the message.
url-title string A title for a supplementary URL, otherwise just the URL is shown.
sound string The name of one of the sounds supported by the device clients to override the user’s default sound choice.

Example: handler file

id: handler-id
topic: topic-name
kind: pushover
options:
  device: device1, device2, device3
  title: Alert from Kapacitor
  url: http://example.com
  url-title: This is an example title
  sound: siren

Example: TICKscript

|alert()
  // ...
  .pushover()
    .device('device1, device2, device3')
    .title('Alert from Kapacitor')
    .URL('http://example.com')
    .URLTitle('This is an example title')
    .sound('siren')

Pushover Priority Levels

Pushover expects priority levels with each alert. Kapacitor alert levels are mapped to the following priority levels:

Alert Level Priority Level
OK -2 priority level.
Info -1 priority level.
Warning 0 priority level.
Critical 1 priority level.

Pushover Setup

Register your application with Pushover to get a Pushover token. Include the token in the [pushover] configuration section of your kapacitor.conf.

Using the Pushover event handler

With the Pushover event handler enabled and configured in your kapacitor.conf, use the .pushover() attribute in your TICKscripts to send alerts to Pushover or define a Pushover handler that subscribes to a topic and sends published alerts to Pushover.

Send alerts to Pushover from a TICKscript

The following TICKscript sends the message, “Hey, check your CPU”, to Pushover whenever idle CPU usage drops below 10% using the .pushover() event handler.

pushover-cpu-alert.tick

stream
  |from()
    .measurement('cpu')
  |alert()
    .crit(lambda: "usage_idle" < 10)
    .message('Hey, check your CPU')
    .pushover()
      .title('Alert from Kapacitor')
      .sound('siren')      

Send alerts to Pushover from a defined handler

The following setup sends an alert to the cpu topic with the message, “Hey, check your CPU”. A Pushover handler is added that subscribes to the cpu topic and publishes all alert messages to Pushover.

Create a TICKscript that publishes alert messages to a topic. The TICKscript below sends an alert message to the cpu topic any time idle CPU usage drops below 10%.

cpu_alert.tick

stream
  |from()
    .measurement('cpu')
  |alert()
    .crit(lambda: "usage_idle" < 10)
    .message('Hey, check your CPU')
    .topic('cpu')

Add and enable the TICKscript:

kapacitor define cpu_alert -tick cpu_alert.tick
kapacitor enable cpu_alert

Create a handler file that subscribes to the cpu topic and uses the Pushover event handler to send alerts to Pushover.

pushover_cpu_handler.yaml

id: pushover-cpu-alert
topic: cpu
kind: pushover
options:
  title: Alert from Kapacitor
  sound: siren

Add the handler:

kapacitor define-topic-handler pushover_cpu_handler.yaml

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Flux is going into maintenance mode and will not be supported in InfluxDB 3.0. This was a decision based on the broad demand for SQL and the continued growth and adoption of InfluxQL. We are continuing to support Flux for users in 1.x and 2.x so you can continue using it with no changes to your code. If you are interested in transitioning to InfluxDB 3.0 and want to future-proof your code, we suggest using InfluxQL.

For information about the future of Flux, see the following: