Prediction - script API
Functions for predicting data available in StackState
This page describes StackState version 4.3.

Function: predictMetrics

Predict metrics for any metric query coming from any data source.
Args:
  • 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:
AsyncScriptResult[PredictionResponse]
A PredictionResponse, which contains the following fields:
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:
  • MetricTelemetry.result.data - the two dimensional array with values and time stamps.
Examples:
Predict 8 points of disk utilization for myHost for the next four hours based on the last four weeks of data:
1
Prediction.predictMetrics("linear", "4h",
2
Telemetry.query("MyDatasource", 'host="myHost" and name="diskutil"')
3
.metricField("value")
4
.start("-4w")
5
.compileQuery()
6
).includeHistory().predictionPoints(8)
Copied!
Last modified 4mo ago
Copy link