Kedify ROI Calculator!  Estimate your autoscaling ROI in under a minute.  Try it now Arrow icon

Arrow Left IconExplore Scalers

Use Predictive metrics to trigger autoscaling with Kedify and KEDA

AI-powered autoscaler that uses time series models to predict future load and proactively scale Kubernetes workloads before demand spikes occur.

Book demo
Predictive Scaler Diagram

Overview of Predictive Scaler in Kedify

The Predictive Scaler revolutionizes Kubernetes autoscaling by using AI-powered time series models to forecast future workload demands. Instead of simply reacting to current load, this scaler proactively prepares infrastructure for predicted traffic spikes, ensuring optimal performance and resource utilization. It continuously learns from your application metrics to build accurate forecasting models.

Key Features

  • 1

    AI-Powered Forecasting:

    Uses advanced time series models trained on your actual application data to predict future load patterns.

  • 2

    Proactive Scaling:

    Scales infrastructure before demand spikes occur, preventing performance degradation during traffic surges.

  • 3

    Continuous Learning:

    Models automatically retrain on new data, adapting to changing application behavior and seasonal patterns.

  • 4

    Flexible Horizon:

    Configurable prediction horizons from minutes to hours, allowing optimization for different scaling scenarios.

  • 5

    Hybrid Scaling:

    Combines predictive forecasting with reactive metrics using scaling modifiers for balanced decision making.

How It Works

The Predictive Scaler operates in two phases:

Training Phase: The scaler collects historical metrics from your application and trains time series models to understand usage patterns. This happens automatically as your application runs.

Prediction Phase: Once trained, the model generates forecasts for future load based on the specified horizon. These predictions are combined with current metrics to make informed scaling decisions.

Model Training

Models are trained continuously on the incoming metrics data. The scaler supports:

  • Confidence-based predictions: Provides confidence values to determine when to use predicted versus current metrics
  • Seasonal pattern detection: Recognizes daily, weekly, and custom patterns
  • Drift adaptation: Adjusts to changing application behavior over time

Configuration Best Practices

  • Use horizon values that match your application’s scaling time requirements
  • Combine predictive triggers with reactive ones using scalingModifiers
  • Set appropriate stabilizationWindowSeconds to prevent oscillation

Learn More

Featured Use Cases

Scenario:

Predict and scale ahead of expected traffic spikes during flash sales, product launches, or seasonal events. By analyzing historical traffic patterns, the scaler can prepare infrastructure before users arrive.

Predictive Scaler Usage:

The scaler combines real-time metrics with predictive forecasting to scale proactively. It trains a model on historical data such as request rates and user activity patterns, then forecasts future load to scale before demand hits.

KEDA Usage:

Configure a ScaledObject with both kedify-http and kedify-predictive triggers. Use scalingModifiers to average current and predicted metrics with formula "(current + predicted)/2" for balanced scaling decisions.
Get Started
                      apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: ecommerce-predictive
spec:
  scaleTargetRef:
    name: ecommerce-service
  minReplicaCount: 0
  maxReplicaCount: 20
  advanced:
    scalingModifiers:
      formula: "(current + predicted)/2"
      target: "100"
      metricType: "AverageValue"
  triggers:
    - type: kedify-http
      name: current
      metadata:
        hosts: ecommerce-service.company.com
        service: ecommerce-service
        port: "8080"
        scalingMetric: requestRate
        targetValue: "100"
    - type: kedify-predictive
      name: predicted
      metadata:
        modelName: "ecommerce*traffic-model"
        horizon: 15m
        targetValue: "100"