Skip to content
Agentmart
Submit a tool

hpa-debug

Diagnose HorizontalPodAutoscaler failures (not scaling, metrics unavailable, target mismatch).

Skill by scitix

IndexedApache-2.0★ 238
Write a review

Chalk Labs

Need help deploying hpa-debug?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/scitix-hpa-debug

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Diagnose HorizontalPodAutoscaler failures (not scaling, metrics unavailable, target mismatch). Checks HPA status, metrics-server health, and scaling events to identify why autoscaling is not working.

Use cases: backend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/hpa-debug

What's inside

Skill name
hpa-debug
Description
Diagnose HorizontalPodAutoscaler failures (not scaling, metrics unavailable, target mismatch). Checks HPA status, metrics-server health, and scaling events to identify why autoscaling is not working.
License
Apache-2.0
Instructions
154 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# HPA Autoscaling Failure Diagnosis

When a HorizontalPodAutoscaler is not scaling as expected — stuck at min/max replicas, showing `<unknown>` metrics, or not responding to load — follow this flow to identify the root cause.

**Scope:** This skill is for **diagnosis only**. Once you identify the root cause, report it to the user and stop. Do NOT attempt to modify HPA settings, resource requests, or metrics configuration — that should be left to the user.

## Diagnostic Flow

### 1. Check HPA status

```bash
kubectl get hpa <hpa-name> -n <ns>
```

Note:
- **TARGETS** — current value vs target (e.g., `80%/50%`). If showing `<unknown>/50%`, metrics are unavailable.
- **MINPODS / MAXPODS** — scaling bounds
- **REPLICAS** — current replica count

### 2. Describe the HPA

```bash
kubectl describe hpa <hpa-name> -n <ns>
```

Focus on:
- **Conditions** — look for `AbleToScale`, `ScalingActive`, and `ScalingLimited` with their status and reason
- **Events** — scaling decisions, metric fetch errors, or rate-limiting messages
- **Metrics** — each metric's current value, target, and type (resource, custom, external)

### 3. Check metrics-server health

```bash
kubectl get pods -n kube-system -l k8s-app=metrics-server -o wide
```

If no pods are found, try:

```bash
kubectl get deployment -n kube-system metrics-server
```

Verify metrics-server is serving data:

```bash
kubectl top pods -n <ns>
```

If `kubectl top` returns `error: Metrics API not available`, metrics-server is not working.

### 4. Check target resource requests

HPA with CPU/memory percentage targets requires `resources.requests` to be set on the target containers.

```bash
kubectl get deployment <target-name> -n <ns> -o jsonpath='{range .spec.template.spec.containers[*]}{.name}: cpu={.resources.requests.cpu} memory={.resources.requests.memory}{"\n"}{end}'
```

If requests are not set, the HPA cannot calculate utilization percentages.

### 5. Match patterns and conclude

---

#### `<unknown>` metrics — Metrics not available

The HPA cannot fetch metrics for one or more targets.

Common causes:
- **metrics-server not installed or not running** — check step 3
- **metrics-server not ready yet** — it may take a few minutes after startup to collect data
- **No resource requests set** — CPU/memory percentage targets require `resources.requests` on the target pods (step 4)
- **Custom metrics adapter missing** — if the HPA uses custom or external metrics, the corresponding adapter (e.g., Prometheus adapter) must be installed

Advise the user to check metrics-server health and ensure resource requests are set.

---

#### `ScalingActive: False` — HPA cannot scale

The HPA has been disabled or cannot function.

Check the reason in `kubectl describe hpa`:
- **`FailedGetResourceMetric`** — cannot fetch resource metrics (metrics-server issue)
- **`FailedGetExternalMetric`** — cannot fetch external metrics (adapter issue)
- **`InvalidMetricSourceType`** — the metric source type is not recognized

---

#### `ScalingLimited: True` — At min or max replicas

The HPA wants to scale but is constrained by `minReplicas` or `maxReplicas`.

Check the reason:
- **`TooFewReplicas`** — HPA wants to scale down below `minReplicas`
- **`TooManyReplicas`** — HPA wants to scale up above `maxReplicas`
- **`DesiredWithinRange`** — current replicas are within bounds (normal)

If the HPA is stuck at `maxReplicas` and load is still high, advise the user to increase `maxReplicas` or investigate why the application needs so many replicas (possible performance issue).

---

#### HPA flapping (scaling up and down repeatedly) — Unstable metrics

The HPA keeps oscillating between replica counts.

Check the events for rapid scale-up/scale-down cycles. Common causes:
- **Metric target too close to normal usage** — small load changes trigger scaling
- **Application slow to start** — new pods take time to become effective, causing the HPA to scale up further before they help

The HPA has a default stabilization window (5 minutes for scale-down). Check if custom behavior is set:

```bash
kubectl get hpa <hpa-name> -n <ns> -o jsonpath='{.spec.behavior}'
```

Advise the user to adjust the stabilization window or the target utilization.

---

From scitix/siclaw, Apache-2.0.

More from scitix/siclaw

Signals

Stars
238
Forks
32
Open issues
16
Last commit (this folder)
Mar 4, 2026 (8 months ago)
Last release
Sep 14, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
Website
siclaw.ai
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from scitix

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get hpa-debug running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying hpa-debug?

CallGet help
Cite this page

hpa-debug skill. Agent Mart. https://agentmart.dev/skills/scitix-hpa-debug (last updated 2026-10-24)