Pular para o conteúdo
Skillpedia
Código em geral48 mil · #2737

debug-buttercup

Faz seu agente resolver problemas em sistemas que usam Kubernetes. Ajuda quando partes do sistema param de funcionar ou ficam lentas.

O que ela faz

Esta ferramenta ajuda a resolver problemas quando os programas (chamados 'pods') em um sistema chamado 'crs' não estão funcionando corretamente. Ela guia você para verificar os logs e o status desses programas para encontrar a causa do problema.

Quando usar

  • ✓Quando programas travam ou reiniciam sem parar.
  • ✓Quando vários programas param de funcionar ao mesmo tempo.
  • ✓Quando um programa chamado Redis não responde ou mostra avisos.

Exemplo do que pedir para a IA

“Me ajude a descobrir por que meus programas no sistema 'crs' estão travando.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/debug-buttercup/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/debug-buttercup/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta verifica o status dos programas, seus eventos e logs para identificar erros. Ela também ajuda a ver se há problemas de recursos no sistema ou com o programa Redis.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill debug-buttercup

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/debug-buttercup/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Disponibilidade de Material de Apoio

Esta cópia do catálogo contém as orientações embutidas abaixo, mas não inclui os seguintes caminhos de suporte. Eles são pré-requisitos externos, não arquivos incluídos:

  • <support-root>/references/failure-patterns.md

Solicite o material de suporte original ou uma instalação existente antes de usar uma etapa que dependa desses caminhos; este catálogo não identifica uma fonte de download verificada para eles. Resolva cada caminho em relação a essa instalação, inspecione seu conteúdo e verifique quaisquer licenças e pré-requisitos de execução aplicáveis. Não execute um comando nem afirme que um procedimento referenciado foi seguido até que seu arquivo necessário exista. Não crie os scripts ausentes nem trate um arquivo não relacionado com o mesmo nome como equivalente. Etapas independentes totalmente documentadas aqui podem prosseguir dentro do escopo autorizado do usuário; relate qualquer etapa dependente como indisponível.

Debug Buttercup

Quando Usar

  • Pods no namespace crs estão em CrashLoopBackOff, OOMKilled ou reiniciando
  • Vários serviços reiniciam simultaneamente (falha em cascata)
  • Redis está sem resposta ou mostrando avisos de AOF
  • Filas estão crescendo, mas tarefas não estão progredindo
  • Nós mostram DiskPressure, MemoryPressure ou PID pressure
  • Build-bot não consegue alcançar o daemon Docker (falhas DinD)
  • Scheduler está travado e não avançando o estado da tarefa
  • Sondas de verificação de integridade estão falhando inesperadamente
  • Valores de Helm implantados não correspondem à configuração real do pod

Quando NÃO Usar

  • Implantando ou atualizando Buttercup (use guias de Helm e de implantação)
  • Depurando problemas fora do namespace Kubernetes crs
  • Ajuste de desempenho que não envolve um sintoma de falha

Namespace e Serviços

Todos os pods rodam no namespace crs. Serviços principais:

Camada Serviços
Infra redis, dind, litellm, registry-cache
Orquestração scheduler, task-server, task-downloader, scratch-cleaner
Fuzzing build-bot, fuzzer-bot, coverage-bot, tracer-bot, merger-bot
Análise patcher, seed-gen, program-model, pov-reproducer
Interface competition-api, ui

Fluxo de Trabalho de Triagem

Sempre comece com a triagem. Execute estes três comandos primeiro:

# 1. Pod status - look for restarts, CrashLoopBackOff, OOMKilled
kubectl get pods -n crs -o wide

# 2. Events - the timeline of what went wrong
kubectl get events -n crs --sort-by='.lastTimestamp'

# 3. Warnings only - filter the noise
kubectl get events -n crs --field-selector type=Warning --sort-by='.lastTimestamp'

Em seguida, restrinja:

# Why did a specific pod restart? Check Last State Reason (OOMKilled, Error, Completed)
kubectl describe pod -n crs <pod-name> | grep -A8 'Last State:'

# Check actual resource limits vs intended
kubectl get pod -n crs <pod-name> -o jsonpath='{.spec.containers[0].resources}'

# Crashed container's logs (--previous = the container that died)
kubectl logs -n crs <pod-name> --previous --tail=200

# Current logs
kubectl logs -n crs <pod-name> --tail=200

Problemas Históricos vs. Atuais

Altas contagens de reinicialização não significam necessariamente que um problema está em andamento -- reinicializações se acumulam ao longo da vida útil de um pod. Sempre distinga:

  • --tail mostra o final do buffer de log, que pode conter mensagens antigas. Use --since=300s para confirmar que os problemas estão acontecendo ativamente agora.
  • --timestamps na saída do log ajuda a correlacionar eventos entre serviços.
  • Verifique os carimbos de data/hora de Last State em describe pod para ver quando o crash mais recente realmente ocorreu.

Detecção de Cascata

Quando muitos pods reiniciam aproximadamente ao mesmo tempo, verifique uma falha de dependência compartilhada antes de investigar pods individuais. A cascata mais comum: Redis cai -> todo serviço recebe ConnectionError/ConnectionRefusedError -> reinicializações em massa. Procure o mesmo erro em vários logs de --previous -- se todos disserem redis.exceptions.ConnectionError, depure o Redis, não os serviços individuais.

Análise de Logs

# All replicas of a service at once
kubectl logs -n crs -l app=fuzzer-bot --tail=100 --prefix

# Stream live
kubectl logs -n crs -l app.kubernetes.io/name=redis -f

# Collect all logs to disk (existing script)
bash deployment/collect-logs.sh

Pressão de Recursos

# CPU/memória por pod
kubectl top pods -n crs

# Nível do nó
kubectl top nodes

# Condições do nó (pressão de disco, pressão de memória, pressão de PID)
kubectl describe node <node> | grep -A5 Conditions

# Uso de disco dentro de um pod
kubectl exec -n crs <pod> -- df -h

# O que está consumindo disco

…
Perguntas frequentes

O que são 'pods'?

'Pods' são como pequenos contêineres onde os programas rodam em um sistema de computação. Se um 'pod' não funciona, o programa dentro dele para.

O que é o 'crs'?

'crs' é o nome de um grupo específico de programas ou um ambiente onde eles estão rodando. Esta ferramenta é focada em resolver problemas dentro desse grupo.

O que é 'CrashLoopBackOff' ou 'OOMKilled'?

São mensagens de erro que indicam que um programa travou ('CrashLoopBackOff') ou que ficou sem memória e foi encerrado ('OOMKilled').

Detalhes

Descrição original do autor

All pods run in namespace crs. Use when pods in the crs namespace are in CrashLoopBackOff, OOMKilled, or restarting, multiple services restart simultaneously (cascade failure), or redis is unresponsive or showing AOF warnings.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2737
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas