Prophet Forecasting
The Prophet Forecasting plugin generates forecasts directly in InfluxDB 3, helping teams move from monitoring what happened to predicting what’s next. It’s ideal for demand, capacity, IoT, and infrastructure planning, without adding a separate forecasting stack.
Configuration
Plugin parameters may be specified as key-value pairs in the --trigger-arguments flag (CLI) or in the trigger_arguments field (API) when creating a trigger. Some plugins support TOML configuration files, which can be specified using the plugin’s config_file_path parameter.
If a plugin supports multiple trigger specifications, some parameters may depend on the trigger specification that you use.
Plugin metadata
This plugin includes a JSON metadata schema in its docstring that defines supported trigger types and configuration parameters. This metadata enables the InfluxDB 3 Explorer UI to display and configure the plugin.
Scheduled trigger parameters
Set these parameters with --trigger-arguments when creating a scheduled trigger:
| Parameter | Type | Default | Description |
|---|---|---|---|
measurement |
string | required | Source measurement containing historical data |
field |
string | required | Field name to forecast |
window |
string | required | Historical data window. Format: <number><unit> (for example, “30d”) |
forecast_horizont |
string | required | Forecast duration. Format: <number><unit> (for example, “2d”) |
tag_values |
string | required | Dot-separated tag filters (for example, “region:us-west.device:sensor1”) |
target_measurement |
string | required | Destination measurement for forecast results |
model_mode |
string | required | Operation mode: “train” or “predict” |
unique_suffix |
string | required | Unique model identifier for versioning |
HTTP request parameters
Send these parameters as JSON in the HTTP POST request body:
| Parameter | Type | Default | Description |
|---|---|---|---|
measurement |
string | required | Source measurement containing historical data |
field |
string | required | Field name to forecast |
forecast_horizont |
string | required | Forecast duration. Format: <number><unit> (e.g., “7d”) |
tag_values |
object | required | Tag filters as JSON object (e.g., {“region”:”us-west”}) |
target_measurement |
string | required | Destination measurement for forecast results |
unique_suffix |
string | required | Unique model identifier for versioning |
start_time |
string | required | Historical window start (ISO 8601 format) |
end_time |
string | required | Historical window end (ISO 8601 format) |
Advanced parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
seasonality_mode |
string | “additive” | Prophet seasonality mode: “additive” or “multiplicative” |
changepoint_prior_scale |
number | 0.05 | Flexibility of trend changepoints |
changepoints |
string/array | none | Changepoint dates (ISO format) |
holiday_date_list |
string/array | none | Custom holiday dates (ISO format) |
holiday_names |
string/array | none | Holiday names corresponding to dates |
holiday_country_names |
string/array | none | Country codes for built-in holidays |
inferred_freq |
string | auto | Manual frequency specification (e.g., “1D”, “1H”) |
validation_window |
string | “0s” | Validation period duration |
msre_threshold |
number | infinity | Maximum acceptable Mean Squared Relative Error |
target_database |
string | current | Database for forecast storage |
save_mode |
string | “false” | Whether to save/load models (HTTP only) |
Notification parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
is_sending_alert |
string | “false” | Enable alerts on validation failure |
notification_text |
string | template | Custom alert message template |
senders |
string | none | Dot-separated notification channels |
notification_path |
string | “notify” | Notification endpoint path |
influxdb3_auth_token |
string | env var | Authentication token |
TOML configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
config_file_path |
string | none | TOML config file path relative to PLUGIN_DIR (required for TOML configuration) |
To use a TOML configuration file, set the PLUGIN_DIR environment variable and specify the config_file_path in the trigger arguments. This is in addition to the --plugin-dir flag when starting InfluxDB 3.
Example TOML configuration
prophet_forecasting_scheduler.toml
For more information on using TOML configuration files, see the Using TOML Configuration Files section in the influxdb3_plugins/README.md.
Examples
Example 1: Basic scheduled forecasting
Write historical data and create a forecast:
# Write historical temperature data
influxdb3 write \
--database mydb \
"temperature,region=us-west,device=sensor1 value=22.5"
# Create and enable the trigger
influxdb3 create trigger \
--database mydb \
--path "gh:influxdata/prophet_forecasting/prophet_forecasting.py" \
--trigger-spec "every:1d" \
--trigger-arguments "measurement=temperature,field=value,window=30d,forecast_horizont=2d,tag_values=region:us-west.device:sensor1,target_measurement=temperature_forecast,model_mode=train,unique_suffix=v1" \
prophet_forecast
influxdb3 enable trigger --database mydb prophet_forecast
# Query forecast results (after trigger runs)
influxdb3 query \
--database mydb \
"SELECT time, forecast, yhat_lower, yhat_upper FROM temperature_forecast ORDER BY time DESC LIMIT 5"
Expected output
+----------------------+---------+------------+------------+
| time | forecast| yhat_lower | yhat_upper |
+----------------------+---------+------------+------------+
| 2025-06-21T00:00:00Z | 23.2 | 21.8 | 24.6 |
| 2025-06-20T00:00:00Z | 22.9 | 21.5 | 24.3 |
+----------------------+---------+------------+------------+
Example 2: On-demand HTTP forecasting
Example HTTP request for on-demand forecasting:
curl -X POST http://localhost:8181/api/v3/engine/forecast \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"measurement": "temperature",
"field": "value",
"forecast_horizont": "7d",
"tag_values": {"region":"us-west","device":"sensor1"},
"target_measurement": "temperature_forecast",
"unique_suffix": "model_v1_20250722",
"start_time": "2025-05-20T00:00:00Z",
"end_time": "2025-06-19T00:00:00Z",
"seasonality_mode": "additive",
"changepoint_prior_scale": 0.05,
"validation_window": "3d",
"msre_threshold": 0.05
}'
Advanced forecasting with holidays
curl -X POST http://localhost:8181/api/v3/engine/forecast \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"measurement": "sales",
"field": "revenue",
"forecast_horizont": "30d",
"tag_values": {"store":"main_branch"},
"target_measurement": "revenue_forecast",
"unique_suffix": "retail_model_v2",
"start_time": "2024-01-01T00:00:00Z",
"end_time": "2025-06-01T00:00:00Z",
"holiday_country_names": ["US"],
"holiday_date_list": ["2025-07-04"],
"holiday_names": ["Independence Day"],
"changepoints": ["2025-01-01", "2025-03-01"],
"inferred_freq": "1D"
}'
Ready to get started?
Download InfluxDB 3 and have running in minutes.