## TL;DR
Fresh metrics-server installations need one to two scrape cycles (a few minutes) before data appears; "metrics not available yet" during that window is normal. Beyond five minutes it is a real problem: metrics-server cannot scrape the kubelet, usually TLS or network. The dividing line is time plus scope: everything missing after five minutes means the pipeline is broken, not slow.

## The query
```text
kubectl top "metrics not available yet": how long to wait vs real problem
```

## Use this when
- kubectl top says metrics not available yet
- After installing or upgrading metrics-server
- Some nodes or pods have metrics but others do not
- Deciding whether to debug or wait

## Not for when
- HPA not scaling (uses the same metrics, different debugging)
- Custom metrics APIs
- Prometheus-based monitoring gaps

## Steps

### Step 1: Note when metrics-server started
Check the metrics-server pod's age. If it is younger than a few minutes, wait: the first scrape cycle has not completed. Patience is the fix for the first five minutes.
Expected output: pod age known; waiting justified or ruled out.

### Step 2: After five minutes, treat it as broken
If metrics are still unavailable after five minutes, stop waiting. The scrape pipeline is failing: check metrics-server logs for kubelet scrape errors (TLS is the usual suspect on custom-CA clusters).
Expected output: the investigation started at the right time, not too early or too late.

### Step 3: Check scope: all resources or some
If all nodes and pods lack metrics, the problem is metrics-server itself or its API registration. If only some lack metrics, those specific kubelets are unreachable or misconfigured.
Expected output: the blast radius mapped, directing the fix at the right component.

### Step 4: Verify the metrics API registration
Check that the metrics.k8s.io APIService is available. A healthy metrics-server with a broken API registration still produces "not available" for every query.
Expected output: the API layer confirmed working or identified as broken.

### Step 5: Confirm metrics appear and stay
Once fixed, watch for a full scrape cycle to confirm metrics populate and remain. Intermittent availability after a fix suggests the underlying scrape flakiness is not fully resolved.
Expected output: stable metrics across nodes and pods.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_7g37SlAy10gJIwxXbZU7Dg
