Back to Mutex Studio

Azure Autoscaler

Stop paying workday prices all night and every weekend. Scale Azure resources to real demand, and keep the size you need when people are actually using them.

€846
saved each month, in this example
€10,152
over a year, for one database
Example · P4 down to P1, one week −53% on the bill
Mon Tue Wed Thu Fri Sat Sun
Left at P4 P4 by day, P1 at night

A P4 database (500 DTU), left on all month, is €1,606 in West Europe. Weekdays 08:00–18:00 stay at P4 and the other hours drop to P1 (125 DTU), so the month is €760. List price, one database, no extra storage.

The Problem

Azure scales some things.
Not all things.

Critical PaaS resources on Azure are flexible but don't autoscale. You end up continuously monitoring and scaling manually — a time-consuming task that leads to overprovisioning and unnecessary cost. Or worse, the autoscaling features that do exist simply fail in edge cases.

Azure Autoscaler closes that gap with a self-hosted, containerized solution that monitors your resources and scales them intelligently — based on real-time metrics, forecasting, or defined schedules.

Azure SQL Databases and Elastic Pools

Databases: Dtu, MaxDataBytes. Elastic pools: Dtu, MaxDataBytes, PerDatabaseMaxCapacity.

MySQL Flexible Server

Sku, CoreCount, Iops

PostgreSQL Flexible Server

Sku, CoreCount, Iops

Azure File Shares

ProvisionedStorage, Throughput

AKS Node Pools

MinNodeCount

Azure DevOps

HostedParallelJobs, PrivateParallelJobs

Microsoft Fabric Capacity

Sku

Custom metrics

Publish the series Azure does not have.

A custom metric is written into Azure Monitor and charted next to the platform metrics. Node pool node count. On Azure SQL, replica DTU, memory, and replica latency. The rule then reads those series the same way it reads dtu_used.

replica_dtu_used and dtu_used

60 40 20 0

replica_dtu_used dtu_used Example. The replica series is custom. dtu_used is the platform metric.

Lambdas in the rule

Transform and ScaleTarget are C# lambdas. This one reads FileCapacity, converts the average to GB, and sets provisioned storage to that plus 50 GB.

ScalingConfigurations:
  Baseline:
    Metrics:
      FileCapacity:
        Name: FileCapacity
        ResourceId: "/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Storage/storageAccounts/${storageAccountName}/fileServices/default"
        Window: 02:00:00
        TimeGrain: 01:00:00
        SplitName: "FileShare"
        SplitValue: "${fileShareName}"
        Aggregations: ["Average"]
        Transform: "(value) => value.SetAverage(value.Average / (1000 * 1000 * 1000))" # Convert to Gb
    TimeWindow:
      Days: All
      Months: All
      StartTime: "00:00"
      EndTime: "23:59"
      TimeZone: UTC
    ScalingRules:
      fixed:
        ScalingStrategy: Fixed
        Dimension: ProvisionedStorage
        # Fixed +50 GB above whatever is being used
        ScaleTarget: "(data) => (data.Metrics[\"FileCapacity\"].Values.First().Average + 50).ToString()"
        DimensionValueCeilingStep: "1"  # Round up to nearest GB
        DimensionValueMin: "100"  # Minimum 100 GB for Azure Files

Features

Smart scaling, zero babysitting

Self-Hosted

Runs as a containerized application in your AKS cluster or Azure Container Services. Your data never leaves your environment.

Schedule-Based Scaling

Scale up before business hours, scale down overnight. Define schedules that match your real traffic patterns and save money when resources are idle.

Flexible Metric Analysis

Write custom scaling rules using Lambda expressions evaluated against real-time Azure Monitor metrics. Total control without code changes.

Usage Forecasting

Custom forecasting algorithms predict future demand and scale proactively — before load spikes cause degraded performance.

Multidimensional Scaling

Target multiple dimensions for the same resource — CPU, memory, IOPS, available storage. The system automatically picks the best available SKU or scales each dimension independently when the resource supports it.

Getting Started

Deploy and forget

Deploy the containerized solution, grant permissions, and let it run.

1

Create your configuration

Define your scaling rules and resources. Monitor the autoscaler in dry-run mode before going live.

2

Turn on autoscaling

Enable the solution and forget about manually scaling or babysitting your resources ever again.

3

Monitor and optimize

Watch your resources scale automatically. Track cost savings and performance improvements over time.

Licensing

Get Azure Autoscaler

Pay with PayPal or subscribe through Azure Marketplace. You receive access to a private container registry, where you pull container images that are already built, and a license code. Set that code in the environment variables of the deployment.

Or only pay for what you save. We deploy Azure Autoscaler with you. For 12 months the fee is 50% of the Azure spend you save. After that, regular licensing.

Consulting

Only pay for what you save. We help you deploy. For 12 months the fee is 50% of the Azure spend you save, then regular licensing.

Get in touch

PayPal

Secure one-time checkout

PayPal loads only when you click. It may set its own cookies, see the cookie policy.

One-time purchase · EUR · Self-hosted deployment

Azure Marketplace

Subscribe through Azure Marketplace — billed on your Azure subscription. Ideal for enterprise procurement and MACC.

View on Azure Marketplace

Mutex Studio S.L. · Microsoft partner