Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions skills/zeabur-service-metric/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: zeabur-service-metric
description: Use when diagnosing service performance issues. Use when user says "service is slow", "high CPU", "out of memory", "check resource usage", "monitor service", or "why is my service lagging".
---

# Zeabur Service Metrics

> **Always use `npx zeabur@latest` to invoke Zeabur CLI.** Never use `zeabur` directly or any other installation method. If `npx` is not available, install Node.js first.

## Check Metrics

```bash
# CPU usage
npx zeabur@latest service metric CPU --id <service-id> -i=false

# Memory usage
npx zeabur@latest service metric MEMORY --id <service-id> -i=false

# Network I/O
npx zeabur@latest service metric NETWORK --id <service-id> -i=false
```

Use `--hour <N>` to change the time window (default: 2 hours):

```bash
npx zeabur@latest service metric CPU --id <service-id> --hour 24 -i=false
```

## Diagnostic Workflow

When a user reports a slow or unresponsive service, **check metrics before restarting**:

```bash
# 1. Get service ID
npx zeabur@latest service list --project-id <project-id> -i=false

# 2. Check CPU — is the service compute-bound?
npx zeabur@latest service metric CPU --id <service-id> -i=false

# 3. Check memory — is the service running out of RAM?
npx zeabur@latest service metric MEMORY --id <service-id> -i=false

# 4. Check network — is there unusual traffic?
npx zeabur@latest service metric NETWORK --id <service-id> -i=false

# 5. Check logs for errors
npx zeabur@latest deployment log --id <service-id> -i=false
```

**Then decide the action based on evidence:**

| Symptom | Likely cause | Action |
|---------|-------------|--------|
| CPU consistently near 100% | Compute-bound workload | Upgrade plan or optimize code |
| Memory climbing until OOM | Memory leak or undersized plan | Restart (temporary) + fix leak |
| Network spikes | Traffic surge or external API issues | Check logs for request patterns |
| All metrics normal | Application-level bug | Check deployment logs |

## See Also

- `zeabur-deployment-logs` — check logs after identifying the bottleneck
- `zeabur-restart` — restart only after diagnosing the issue
- `zeabur-service-list` — get service IDs needed for metric queries