Join our community of software engineering leaders and aspirational developers. Always
stay in-the-know by getting the most important news and exclusive content delivered
fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter
in the past. Click the button below to open the re-subscribe form
in a new tab. When you're done, simply close that tab and continue
with this form to complete your subscription.
The New Stack does not sell your information or share it with
unaffiliated third parties. By continuing, you agree to our
Terms of Use and
Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!
We’re so glad you’re here. You can expect all the best TNS content to arrive
Monday through Friday to keep you on top of the news and at the top of your game.
What’s next?
Check your inbox for a confirmation email where you can adjust your preferences
and even join additional groups.
Follow TNS on your favorite social media networks.
Everything around us produces data, so forecasting future trends from historical data is no longer a luxury; it’s a necessity. But what if you could implement sophisticated time series forecasting without writing a single line of code? I’ll show you how with an example using two open source tools: InfluxDB 3 Core’s Python Processing Engine and Facebook’s Prophet library.
Revolutionizing Forecasting Implementation
Traditional time series forecasting typically requires extensive coding expertise and days of development. InfluxDB 3 Core’s Python Processing Engine combined with large language models (LLMs) and libraries shatters this paradigm. What once demanded deep technical knowledge and significant time investment can now be accomplished in hours, making advanced forecasting accessible to those with even basic Python and time series understanding.
The most compelling aspect of this transformation? The speed at which complex systems can be built using LLMs. By simply providing an LLM with InfluxDB 3 documentation and Facebook Prophet’s quick start guide, you can generate functional plugin code, connect an entire pipeline and receive optimization suggestions — all without manual coding.
Why Use a Time Series Database?
Before diving into the implementation, let’s address a fundamental question: why use a specialized time series database like InfluxDB instead of a general-purpose or relational database?
Optimized for Time-Stamped Data
Time series databases are architected specifically for handling chronological data. Unlike traditional databases, they’re optimized for time-based queries and analytics, making operations like finding rates of change, identifying trends or calculating moving averages substantially more efficient.
Superior Data Compression
Time series data often contains millions or billions of data points. Time series databases implement specialized compression algorithms that dramatically reduce storage requirements without sacrificing query performance.
Built-in Time-Centric Functions
Functions like downsampling, interpolation and window functions are standard in time series databases, eliminating the need for complex custom code. This native support accelerates development and improves reliability.
Scalable Performance
As your monitoring or Internet of Things (IoT) application grows, so does your data volume. Time series databases like InfluxDB scale horizontally to handle a massive influx of time-stamped data without performance degradation.
Schema Flexibility
Time series workloads often require adapting to changing measurement structures. InfluxDB’s flexible schema design accommodates evolving data models without painful migrations.
With these advantages in mind, a time series database like InfluxDB becomes the natural choice for a forecasting pipeline.
The Forecasting Challenge
This tutorial’s objective is straightforward yet powerful: predict daily page views for Wikipedia’s article on Peyton Manning for an entire year. We’ll start with historical data and culminate with an interactive Plotly visualization, all within the InfluxDB ecosystem. To replicate this project, download InfluxDB 3 Core or Enterprise.
This walkthrough covers:
How I leveraged ChatGPT-4o to build this pipeline.
Required setup and dependencies.
Creating essential InfluxDB 3 resources.
Data ingestion, forecast generation and visualization.
The Pipeline Architecture
This solution consists of three purpose-built plugins working in harmony:
load_peyton (load_peyton_data.py): HTTP-triggered plugin that imports Wikipedia pageview data from a CSV and populates the peyton_views table.
peyton_forecast (forecast_peyton.py): Scheduled plugin running daily to query peyton_views, train a Prophet model and write a comprehensive 365-day forecast to prophet_forecast.
forecast_plot (plot_forecast_http.py): HTTP-triggered plugin that retrieves both historical and forecasted data, merges them and delivers an interactive Plotly visualization as HTML.
Rather than traditional coding, I adopted a prompt engineering approach with ChatGPT-4o. After providing InfluxDB 3’s Processing Engine documentation and Prophet’s quick start guide, I used progressive natural language prompts:
Initial concept: “Can you write a plugin for InfluxDB 3 that uses Facebook Prophet to forecast time series data?”
Data ingest: “Create a plugin that loads historical data from a public CSV (like the Peyton Manning Wikipedia views) and writes it to InfluxDB.”
Forecasting logic: “Now, write a scheduled plugin that queries that table, fits a Prophet model and writes the forecast to another table. Make sure the logic writes all forecast rows.”
Visualization: “Can you build a third plugin that reads both the historical and forecasted data, plots it using Plotly and returns the result over HTTP as an HTML page?”
This iterative process transformed what would typically be hours of coding into a conversation about intent and functionality. The InfluxDB Processing Engine’s test command proved invaluable for validation, creating a tight feedback loop that significantly accelerated development.
Environment Setup
You can run this example locally or containerized. Both InfluxDB 3 Core and Enterprise support this workflow, but I’ll focus on Core (the open source version) using Docker for simplicity. If you’re looking for high availability, scalability and security, I recommend using InfluxDB 3 Enterprise instead.
After downloading the repository, save the files to your plugin directory and execute:
This command launches a temporary InfluxDB 3 Core container with your local directories mounted for data persistence and plugin access, exposing port 8181 for local interaction.
While this is configured for minute intervals for demonstration purposes, production implementations typically run daily. After successful execution, you’ll see:
processing engine: Running Prophet forecast on 'peyton_views'
INFO - Chain [1] start processing
INFO - Chain [1] done processing
To prevent redundant forecasting, disable the trigger:
InfluxData is the creator of InfluxDB, the leading time series platform. More than 1,900 customers use InfluxDB to collect, store, and analyze all time series data at any scale. Developers can query and analyze their time-stamped data to predict, respond, and adapt in real-time.