5 Must-Have Python Plugins for InfluxDB 3 Core & Enterprise

Navigate to:

InfluxDB 3 is our latest time series database built for real-time analytics and high-volume data. Its Python Processing Engine lets developers run custom scripts known as plugins to process data, trigger alerts, or integrate with external systems via HTTP web requests.

To demonstrate what’s possible, we’ve developed several plugins, all of which are available in the influxdb3_plugins GitHub repository. This public repo is open for anyone to use, modify, and contribute to. We’re actively growing this ecosystem and welcome plugin contributions through pull requests. You can start using these plugins anytime by starting InfluxDB 3 Core or Enterprise and installing them from GitHub.

Why use pre-made plugins?

  • Speed: Quickly deploy well-tested code
  • Flexibility: Customize plugins to fit your use case
  • Community: Leverage shared knowledge and contribute your own innovations

Below are five powerful plugins contributed by the community.

Prerequisites for using plugins

A. InfluxDB 3 Setup: Download & Install InfluxDB 3 Core or Enterprise on your machine.

B. Processing Engine enabled: Start the InfluxDB 3 server with a plugin directory by cloning theinfluxdb3_plugins repository to a local plugin directory. Alternatively, reference plugins directly from GitHub using the gh: prefix then start the server and provide the plugin location.

C. Plugin Configuration: Plugins run in a virtual environment provided by InfluxDB 3. Some require additional dependencies, which are noted in their requirements.txt or README.

For detailed instructions, refer to the InfluxDB 3 Processing Engine documentation.

1. FBProphet Forecasting Plugin

This plugin demonstrates how to forecast time series data using a popular open source machine learning library: Prophet by Facebook. The project contains three sub-plugins:

1. 1 load_peyton (load_peyton_data.py): An HTTP-triggered plugin that loads sample Wikipedia pageview data from a CSV and writes it to the peyton_views table.

1.2 peyton_forecast (forecast_peyton.py): A scheduled plugin (e.g., every:1d) that queries the peyton_views table, fits a Prophet model, and writes a full 365-day forecast to the prophet_forecast table.

1.3 forecast_plot (plot_forecast_http.py): An HTTP-triggered plugin that queries peyton_views and prophet_forecast, merges them, and returns an interactive Plotly graph as HTML.

2. Deadman Alert Plugin

This plugin checks if a specific table has received any data within a configured time window (e.g., every 5 minutes). If no data is found, it sends a Slack notification to alert you that something might be wrong with your data pipeline, devices, or systems. This plugin relies on a Slack webhook passed in as trigger arguments that handle alerts sent to it.

3. SMS/WhatsApp Alert Plugin

This plugin is used to send SMS/WhatsApp alerts via third-party tools such as Twilio for any given condition. For example, one can send an SMS or WhatsApp message based on the WAL Flush trigger if a threshold is crossed, such as a temperature value > 80 degrees of an IoT device that is writing data periodically to InfluxDB 3.

4. Custom Data Replication Plugin

This plugin replicates any/all data written to an InfluxDB 3 Core/Enterprise instance to a remote InfluxDB 3 bucket, such as on Cloud Serverless. It features durable queuing, compression, validation, downsampling, and table filtering. The data written to it can come from anywhere, including Telegraf.

5. Data Aggregation & Processing Plugin

This WAL flush plugin automatically collects statistical metrics for a table whenever data is written to it. It generates a new table that records the following statistics for each numerical column:

  • Min, Max
  • Mean, Median, Mode
  • 95th Percentile

This functionality is similar to the .describe() method in Python, which summarizes numerical columns in a DataFrame.

Conclusion

These five plugins are just the beginning. InfluxDB 3’s Python Processing Engine unlocks powerful use cases for real-time data transformation, alerting, and automation. More plugins are available for testing and will be highlighted in future blog posts.

We also actively welcome community contributions. If you’ve built something useful, consider submitting a pull request to the influxdb3_plugins GitHub repo or sharing your feedback with our development team on Discord, Slack, or our Community Forums.