Prediction - script API
StackState Self-hosted v4.6.x
This page describes StackState version 4.6.
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.
query
- The metrics to use for the prediction. A telemetry query that returns metrics, created using theTelemetry.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 thequery
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 typePredictionRequest
.PredictionResponse.history
- optional, the history used for prediction of typeMetricTelemetry
. Empty if.includeHistory()
was not used.PredictionResponse.prediction
- the predicted metrics.
The
PredictionRequest
type has the following fields:PredictionRequest.query
- the query provided topredictMetrics
.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:Prediction.predictMetrics("linear", "4h",
Telemetry.query("MyDatasource", 'host="myHost" and name="diskutil"')
.metricField("value")
.start("-4w")
.compileQuery()
).includeHistory().predictionPoints(8)
Last modified 11mo ago