Skip to content

KEDA Scaler Metrics

Use this query to track KEDA scaler activation, deactivation, and related scale decisions in Container Apps system logs.

Data Source

Table Schema Note
ContainerAppSystemLogs_CL Legacy schema. If empty, try ContainerAppSystemLogs (non-_CL).

Query Pipeline

flowchart LR
    A[Filter by app and window] --> B[Keep KEDA or scale signals] --> C[Classify scaler state and decision] --> D[Summarize by time bin]

Query

let AppName = "my-container-app";
let Window = 6h;
ContainerAppSystemLogs_CL
| where ContainerAppName_s == AppName and TimeGenerated >= ago(Window)
| where Log_s has_any ("keda", "scaler", "activate", "deactivate", "assigning replica", "scale-out", "scale-in")
| extend ScalerSignal = case(Log_s has "deactivate", "Deactivate", Log_s has "activate", "Activate", Log_s has "started", "Started", Log_s has "stopped", "Stopped", "Observe")
| extend ScaleDecision = case(Reason_s == "AssigningReplica" or Log_s has "scale-out", "ScaleOut", Log_s has "scale-in" or Log_s has "deactivate" or Log_s has "stopped", "ScaleIn", "NoDecision")
| summarize events=count(), sample_reason=take_any(Reason_s), sample_log=take_any(Log_s) by bin(TimeGenerated, 5m), RevisionName_s, ScalerSignal, ScaleDecision
| order by TimeGenerated asc, RevisionName_s asc

Example Output

TimeGenerated RevisionName_s ScalerSignal ScaleDecision events sample_reason sample_log
2026-04-12T05:57:38.558Z ca-cakqltest-54kxmtjeuidri--nu8o2ji Started NoDecision 1 KEDAScalersStarted KEDA is starting a watch for revision 'ca-cakqltest-54kxmtjeuidri--nu8o2ji' to monitor scale operations
2026-04-12T05:57:38.558Z ca-cakqltest-54kxmtjeuidri--nu8o2ji Observe ScaleOut 1 AssigningReplica Replica 'ca-cakqltest-54kxmtjeuidri--nu8o2ji-5cbf89478b-hfgkq' has been scheduled to run on a node

Interpretation Notes

  • Use ScalerSignal to separate lifecycle changes from actual scale decisions.
  • Repeated Activate followed by ScaleOut indicates the scaler is seeing sustained demand.
  • Frequent Activate and Deactivate cycles suggest threshold tuning or noisy workloads.

Limitations

  • System log text can vary by platform version, so keyword-based classification is best-effort.
  • This query shows log-derived scaler behavior, not the raw trigger metric value from the scaler source.

See Also