# Insights: resource recommendations

Use Insights for rightsizing: reduce compute waste and identify opportunities to reduce costs through CPU and memory request/limit recommendations from observed pod utilization. Review and apply changes explicitly. [PRA and PRP](https://docs.kedify.io/scalers/vertical-scalers/) provide separate automatic resource controls.

## Enable monitoring

Use a connected Agent with Insights support and a working Kubernetes Metrics API. Check [versions and requirements](https://docs.kedify.io/reference/capability-availability/). In the cluster Insights view, select **Configure** and choose namespaces, or opt in through your namespace configuration:

```bash
kubectl top pods -n <namespace> --containers
kubectl label namespace <namespace> insights.kedify.io/scrape=true --overwrite
```

With label-gated collection, `false`, `disabled` and `paused` opt a namespace out; other label values opt it in. An explicit `agent.metricsWatchNamespace` list adds namespaces even if their label is disabled. Without label gating, an empty explicit list selects all namespaces. To stop collection for a namespace, remove it from the explicit list and restore or disable its label through the configuration owner. See [Agent collection settings](https://docs.kedify.io/reference/helm-values/).

Recommendations require utilization history; check timestamps and the observation interval rather than expecting an immediate result. Stopping collection does not revert resource changes.

![Insights namespace monitoring](https://docs.kedify.io/assets/images/features/insights-namespace-monitoring.png)

## What Insights Shows

The organization view summarizes recommendations across clusters. The cluster view filters by namespace and workload. Recommendations identify a workload, container and resource target.

![Insights overview](https://docs.kedify.io/assets/images/features/insights-overview.png)

## Recommendation semantics

| Value | Check before applying |
| --- | --- |
| Cluster, namespace, workload and container | They match the intended target |
| Current and recommended requests/limits | Live values still match the recommendation; preserve CPU/memory units |
| Observation interval and date | History includes representative peaks, warmup and recent releases |
| Confidence | More observation history supports review; this is not a probability that a change is safe |
| Explanation and generated command | The change fits the workload’s latency, error, throttling and OOM limits |

## Reviewing Recommendations

1. Compare the recommendation with live configuration and the owning Helm/GitOps source.

2. Check workload latency, errors, throttling, OOM events and peak demand.

3. Apply through the owner. For source-managed workloads, use [Helm or GitOps](https://docs.kedify.io/how-to/apply-recommendations-to-source/). Dashboard **Apply** updates supported workload resources, or Helm values for managed KEDA components. **Ignore** dismisses recommendations you do not intend to use.

4. [Validate the change and roll back if needed](https://docs.kedify.io/how-to/apply-recommendations-to-source/). Applied status alone does not demonstrate improved performance.

![Insights recommendation detail](https://docs.kedify.io/assets/images/features/insights-recommendation-detail.png)

## Exporting Recommendations

Use **Export** for selected or filtered recommendations. Formats include JSON, Markdown, CSV, a Kustomize ZIP bundle and a kubectl script. Check target identities and inspect the generated changes before applying them.

![Insights recommendation export](https://docs.kedify.io/assets/images/features/insights-export.png)

[Troubleshoot missing recommendations](https://docs.kedify.io/troubleshooting/insights/) · [Interpret FinOps estimates](https://docs.kedify.io/features/finops/)

Last updated: Sep 21, 2026

---
Canonical: https://docs.kedify.io/features/insights/
Source: src/content/docs/features/insights.md
Documentation index: https://docs.kedify.io/llms.txt
