Comment on page

Prediction - script API

StackState Self-hosted v5.0.x
This page describes StackState version 5.0.

Function: Prediction.predictMetrics(predictorName: String, horizon: Duration, query: String)

Predict metrics for any metric query coming from any data source.


  • predictorName - the prediction preset to use:
    • fft - Fast Fourier Transformation. Used for seasonal metrics with a repeatable pattern that has a cycle.
    • linear - Used for metrics that have a linear trend.
    • hmn - Harmonic Mean Normal. Used in difficult cases when metrics are not clearly seasonal or linear.
  • horizon - How much future to predict. The horizon is specified in duration format.
  • query - The metrics to use for the prediction. A telemetry query that returns metrics, created using the Telemetry.query() function followed by .compileQuery().

Builder methods

  • predictionPoints(points: Int) - the number of points to the horizon.
  • includeHistory(start?: Instant, end?: Instant) - call this builder method to include the result of the query in the return value. Optionally a start and end can be added to limit the included history using the instant format. When not specifying the start and end the whole history will be included.

Return type

A PredictionResponse, which contains the following fields:
  • PredictionResponse.request - the request made to the prediction API of type PredictionRequest.
  • PredictionResponse.history - optional, the history used for prediction of type MetricTelemetry. Empty if .includeHistory() was not used.
  • PredictionResponse.prediction - the predicted metrics.
The PredictionRequest type has the following fields:
  • PredictionRequest.query - the query provided to predictMetrics.
  • PredictionRequest.predictor - the name and configuration of the predictor.
  • PredictionRequest.horizon - the prediction horizon.
  • PredictionRequest.predictionPointCount - the number of predicted points.
  • PredictionRequest.historyResponse - options of the history response.
The MetricTelemetry has the following fields:
  • - the two dimensional array with values and time stamps.


Predict 8 points of disk utilization for myHost for the next four hours based on the last four weeks of data:
Prediction.predictMetrics("linear", "4h",
Telemetry.query("MyDatasource", 'host="myHost" and name="diskutil"')