Prophet
Prophet forecasts time series data using an additive model with non-linear trends. We recommend it for time series that exhibit strong seasonal effects, and contain several cycles of historical data.
Kloudfuse implements the Prophet algorithm as the agile-robust option for Anomaly Detection. It supports hourly, daily, and weekly seasonality.
How it works
Prophet decomposes each series into a piecewise-linear trend — with automatically detected changepoints where the growth rate shifts — plus seasonal components at the selected cycle. The fitted model produces a prediction per timestamp; the upper and lower bands sit bound standard deviations around it, and observed values outside the band are anomalous. Uncertainty widens beyond the trained range, so the band grows in the forecast region.
In Dashboards
To use Prophet operator in a dashboard, apply the following function:
prophet( \
${promql}, \ (1)
${seasonality} \ (2)
${bound}, \ (3)
${band} \ (4)
)
| 1 | ${promql}: PromQL query to evaluate |
| 2 | ${seasonality} 0 = hourly, 1 = daily, 2 = weekly |
| 3 | ${bound}: Number of standard deviations (stdv): 1, 2, or 3 |
| 4 | ${band}: 4 = lower band, 5 = upper band, 6 = both upper and lower bands |
For the operator reference — syntax, parameters, and a validated example — see prophet in the PromQL documentation.
Limitations
-
If the evaluated metrics do not exhibit true seasonality, Prophet may create incorrect (invalid) alerts, or mask valid alerting conditions.
-
Prophet fits a model per input series, and it is the most computationally expensive of the advance functions. Query cost grows linearly with the number of series — a high-cardinality
by (…)grouping can take many seconds or time out. Aggregate first (for example,sum by (service) (…)) so the function receives a handful of series, not hundreds. -
Each input series returns up to three output series (prediction, lower bound, upper bound), so wide inputs also multiply the result size.
-
The service fetches training history beyond the visible chart range — several seasonal cycles. Series without enough history produce no bands.
Next steps
For an in-depth discussion of the Prophet approach, see these resources:
-
Prophet project in Facebook
-
Forecasting at scale in PeerJ