Skip to content

Event detection and alerting featuring InfluxDB and PagerDuty

In this tutorial you learn how to create a CPU overload alerting pipeline with Quix, Quix Streams, InfluxDB, and PagerDuty.

You gather CPU data from your laptop, and store this directly in InfluxDB. You also add a real-time event detection transform to detect if your CPU exceeds a threshold value, and if so, sends an alert to PagerDuty.

Technologies used

Getting help

If you need any assistance while following the tutorial, we're here to help in the Quix Community.

Prerequisites

To complete this tutorial you'll need to:

  • Get a Quix Cloud account.
Start for free

Book a session with us to start for free.

We will create a time-limited free account for you, and our experts will help you get started with your specific use case.

Tip

Completing the InfluxDB quickstart before embarking on this tutorial is not essential, but is highly recommended.

Note, you obtain your Streaming Token (SDK Token) once you have created an environment, as the token is specifically for use with that environment.

The parts of the tutorial

This tutorial is divided up into several parts, to make it a more manageable learning experience. The parts are summarized here:

  1. Write the Python client - you write a command-line program using Quix Streams to get CPU load data into your pipeline.

  2. Add an external source - you add an external source - this enables your command-line program to be visible in the pipeline.

  3. Add an InfluxDB destination - you add a Quix InfluxDB destination connector (sink) to your pipeline. CPU load data is stored directly in InfluxDB.

  4. Create a threshold detection transform - you develop a threshold detection transform. This determines if a CPU load threshold has been exceeded, and if so publishes a message to the output topic.

  5. Create an alerting sink - adds alerting using PagerDuty. You add a PagerDuty destination (sink) to the pipeline. If a message is received by the sink, a message is sent to PagerDuty.

  6. Summary - conclusion and next steps.

🏃‍♀️ Next step

Part 1 - Write the Python client