Insights recommendations are missing or unexpected
Missing, stale or unexpected recommendations require a collection and evidence check before a resource change.
Evidence, remedy and recovery check
Section titled “Evidence, remedy and recovery check”No recommendations for a workload
Section titled “No recommendations for a workload”Insights UI requires Agent v0.7.0 or later. Set NS to the workload namespace and AGENT_NS to the Agent installation namespace:
NS=my-appAGENT_NS=kedakubectl get pods -n "$AGENT_NS" -l control-plane=kedify-agent \ -o jsonpath='{range .items[*]}{.metadata.name}{" "}{.status.phase}{" "}{.spec.containers[*].image}{"\n"}{end}'kubectl get namespace "$NS" -L insights.kedify.io/scrapekubectl get --raw "/apis/metrics.k8s.io/v1beta1/namespaces/$NS/pods"Expect running Agent pods using a supported image, an enabled namespace selection and PodMetrics with recent timestamp values for the workload’s containers. NotFound for the Metrics API requires a working metrics-server installation; Forbidden means the caller lacks access. Success with your credentials does not establish that the Agent service account can read metrics.
Follow Insights settings to verify Metrics API access and namespace selection; wait for fresh evidence rather than repeatedly toggling monitoring.
Namespace appears paused but samples continue
Section titled “Namespace appears paused but samples continue”Read the running Agent’s collection settings without exporting its credential environment:
kubectl get pods -n "$AGENT_NS" -l control-plane=kedify-agent -o json | \ jq '.items[].spec.containers[].env[]? | select(.name == "METRICS_WATCH_NAMESPACE" or .name == "METRICS_FOR_LABELED_NAMESPACES_ENABLED")'An explicit METRICS_WATCH_NAMESPACE entry adds that namespace even when its label is false, disabled or paused. Label gating defaults to enabled when the environment setting is absent. Disabling it with an empty explicit list selects all namespaces.
Change scope through the owning values/source; recheck the effective namespace set and timestamps.
Values seem unsafe or unexpected
Section titled “Values seem unsafe or unexpected”Compare the observation interval with workload peaks, recent releases, requests/limits and CPU/memory units. Confidence is not a probability of safe resizing.
Use recommendation semantics; retain safe resources until representative demand is observed.
Apply fails or changes are reverted
Section titled “Apply fails or changes are reverted”For a Deployment, compare the template with the selected recommendation:
WORKLOAD=my-appkubectl get deployment "$WORKLOAD" -n "$NS" \ -o jsonpath='{range .spec.template.spec.containers[*]}{.name}{" "}{.resources}{"\n"}{end}'kubectl rollout status deployment/"$WORKLOAD" -n "$NS" --timeout=120sExpect the intended container’s requests/limits and a completed rollout. If the template reverts, inspect the Helm/GitOps source and reconciliation before reapplying.
Apply through the source owner and inspect rollout/events; do not retry a dashboard mutation against GitOps reconciliation.
Expected financial savings are absent
Section titled “Expected financial savings are absent”Resource requests, node removal and price coverage are different measures.
Use FinOps missing/partial data, then validate the resource change.
Verify recovery
Section titled “Verify recovery”Confirm new recommendations show the expected namespace, workload and observation window. After applying a change, check the rollout and resource values against the selected recommendation.
For unresolved failures, Collect diagnostics for support with versions, namespace/target, timestamps, relevant conditions and a redacted configuration.
Related: Insights settings · Apply or revert through Helm/GitOps.