Skip to content
Agentmart
Submit a tool

debug-instance

Use when a running smee-sidecar pod is unhealthy, restarting, not relaying events, or showing unexpected metrics

Skill by konflux-ci

IndexedApache-2.0
Write a review

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/konflux-ci-debug-instance

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

Use when a running smee-sidecar pod is unhealthy, restarting, not relaying events, or showing unexpected metrics

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/debug-instance

What's inside

Skill name
debug-instance
Description
Use when a running smee-sidecar pod is unhealthy, restarting, not relaying events, or showing unexpected metrics
License
Apache-2.0
Instructions
103 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Debugging a Running Instance

## Overview

The sidecar runs as container `sidecar` alongside `gosmee-client` in the same pod.
Debugging involves checking logs, health status files, Prometheus metrics, and
optionally pprof profiles.

## When to Use

- Pod is in CrashLoopBackOff or restarting unexpectedly
- `health_check` metric stuck at 0
- Events not reaching the downstream service
- Liveness probe failures

## Quick Reference

```bash
POD=$(kubectl get pod -l app=smee-sidecar -o jsonpath='{.items[0].metadata.name}')
```

| What | Command |
|------|---------|
| Sidecar logs | `kubectl logs "$POD" -c sidecar` |
| Client logs | `kubectl logs "$POD" -c gosmee-client` |
| Health file | `kubectl exec "$POD" -c sidecar -- cat /shared/health-status.txt` |
| Metrics | `kubectl port-forward "$POD" 9100:9100` then `curl localhost:9100/metrics` |
| Probe scripts | `kubectl exec "$POD" -c sidecar -- ls -la /shared/*.sh` |

## Key Log Messages

- `"Starting Smee instrumentation sidecar..."` — process started (logged before env var validation)
- `"Health check completed: success"` — healthy round-trip
- `"Health check completed: failure"` — broken connectivity
- `"Failed to POST to smee server"` — can't reach smee channel URL
- `"FATAL:"` — startup failure (missing env var, can't write scripts)

## Health Status File

The sidecar writes status atomically to `HEALTH_FILE_PATH` (default
`/shared/health-status.txt`). Expected healthy content:

```
status=success
message=Health check completed successfully
```

File should update every `HEALTH_CHECK_INTERVAL_SECONDS` (default 30s).

## Probe Scripts

Three scripts at `/shared/`: `check-smee-health.sh`, `check-sidecar-health.sh`,
`check-file-age.sh`. All mode `0555`. Run manually:

```bash
kubectl exec "$POD" -c sidecar -- /bin/bash /shared/check-smee-health.sh
kubectl exec "$POD" -c sidecar -- /bin/bash /shared/check-sidecar-health.sh
```

## Prometheus Metrics

Port-forward to 9100, then:

```bash
curl -s localhost:9100/metrics | grep '^health_check '           # 1=healthy, 0=unhealthy
curl -s localhost:9100/metrics | grep '^smee_events_relayed_total '  # event counter
```

## pprof Profiling

Requires `ENABLE_PPROF=true` in pod env. Port-forward to 9100, then:

```bash
curl -s localhost:9100/debug/pprof/heap > heap.prof && go tool pprof heap.prof
curl -s localhost:9100/debug/pprof/goroutine?debug=2    # goroutine dump
curl -s localhost:9100/debug/pprof/profile?seconds=30 > cpu.prof  # CPU
```

## Manual Event Testing

Port-forward to 8080:

```bash
# Real webhook (proxied to downstream)
curl -X POST -H "Content-Type: application/json" -d '{"test":true}' localhost:8080/

# Health check event (consumed internally)
curl -X POST -H "X-Health-Check-ID: manual-test" \
  -H "Content-Type: application/json" \
  -d '{"type":"health-check","id":"manual-test"}' localhost:8080/
```

## Common Failure Modes

| Symptom | Likely Cause | Fix |
|---|---|---|
| CrashLoopBackOff | Missing `DOWNSTREAM_SERVICE_URL` or `SMEE_CHANNEL_URL` | Check env vars in deployment spec |
| `health_check` stuck at 0 | Smee server unreachable or client not forwarding | Check smee-server pod, verify `SMEE_CHANNEL_URL` |
| Liveness probe restarting pod | Health file stale or status=failure | Check health checker goroutine logs |
| Events not reaching downstream | Wrong `DOWNSTREAM_SERVICE_URL` or service down | Verify URL, check downstream pod |
| `Failed to write probe scripts` | Shared volume not mounted or wrong permissions | Check mount at `SHARED_VOLUME_PATH`, verify `fsGroup: 65532` |

From konflux-ci/smee-sidecar, Apache-2.0.

Signals

Stars
0
Forks
10
Open issues
0
Last commit (this folder)
Jun 2, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from konflux-ci

Cite this page

debug-instance skill. Agent Mart. https://agentmart.dev/skills/konflux-ci-debug-instance (last updated 2026-10-24)