observability-and-instrumentation
Torna o comportamento do código visível e diagnosticável. Adiciona logs, métricas e alertas para garantir que tudo funcione em produção.
O que ela faz
Esta ferramenta ajuda a entender o que seu código está fazendo quando está funcionando. Ela adiciona "sinais" (como registros e métricas) para que você possa ver e diagnosticar problemas.
Quando usar
- ✓Ao criar qualquer nova funcionalidade que irá para produção.
- ✓Quando um problema na produção demorou muito para ser resolvido.
- ✓Ao adicionar novas partes ao seu sistema, como serviços ou conexões.
Exemplo do que pedir para a IA
“Como posso ver se a nova funcionalidade de login está funcionando corretamente em produção?”
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
Mensagem pronta para colar
Como funciona
O código é modificado para enviar informações sobre seu funcionamento. Essas informações são coletadas e podem ser consultadas para entender o comportamento do sistema.
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 observability-and-instrumentationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/observability-and-instrumentation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Observabilidade e Instrumentação
Visão Geral
Código que você não consegue observar é código que você não consegue operar. Observabilidade é a capacidade de responder "o que o sistema está fazendo e por quê?" de fora, usando a telemetria que o código emite. A instrumentação não é um complemento pós-lançamento — ela é escrita junto com o recurso, da mesma forma que os testes. Se um recurso for lançado sem telemetria, o primeiro bug reportado pelo usuário se torna arqueologia em vez de uma consulta.
Quando Usar
- Construindo qualquer recurso que rodará em produção
- Adicionando um novo serviço, endpoint, job em background ou integração externa
- Um incidente de produção demorou muito para ser diagnosticado ("não conseguimos dizer o que aconteceu")
- Configurando ou revisando regras de alerta
- Revisando um PR que adiciona I/O, retentativas, filas ou chamadas entre serviços
NÃO para:
- Diagnosticar uma falha acontecendo agora — use a habilidade
debugging-and-error-recovery(a observabilidade é o que torna essa habilidade rápida da próxima vez) - Profiling e otimização de lentidão medida — use a habilidade
performance-optimization - Checklists de monitoramento no dia do lançamento e gatilhos de rollback — veja a habilidade
shipping-and-launch; essa habilidade cobre a instrumentação que os alimenta
Processo
1. Defina "funcionando" antes de instrumentar
Telemetria sem uma pergunta é ruído. Antes de adicionar qualquer instrumentação, escreva 2–4 perguntas que um engenheiro de plantão fará sobre este recurso:
FEATURE: checkout payment retry
QUESTIONS ON-CALL WILL ASK:
1. What fraction of payments succeed on first attempt vs after retry?
2. When a payment fails permanently, why? (provider error? timeout? validation?)
3. Is the payment provider slower than usual?
→ Every signal below must help answer one of these.
Se você não consegue nomear as perguntas, você não está pronto para instrumentar — você registrará tudo e não aprenderá nada.
2. Escolha o sinal certo para cada pergunta
| Sinal | Respostas | Perfil de Custo | Exemplo |
|---|---|---|---|
| Log Estruturado | "O que aconteceu neste caso específico?" | Por evento; cresce com o tráfego | payment_failed com código de erro do provedor |
| Métrica | "Com que frequência / quão rápido, em agregado?" | Fixo por série; barato de consultar | latência p99 de chamadas ao provedor |
| Trace | "Onde o tempo foi gasto entre serviços?" | Por requisição; geralmente amostrado | Um checkout lento, detalhado por salto |
Regra de ouro: métricas dizem que algo está errado, traces dizem onde, logs dizem por quê.
3. Logging Estruturado
Registre eventos, não prosa. Cada linha de log é um objeto JSON com um nome de evento estável e campos legíveis por máquina:
// BAD: string interpolation — unqueryable, inconsistent
logger.info(`Payment ${id} failed for user ${userId} after ${n} retries`);
// GOOD: stable event name + structured fields
logger.warn({
event: 'payment_failed',
paymentId: id,
provider: 'stripe',
errorCode: err.code,
attempt: n,
}, 'payment failed');
Níveis de log — use-os consistentemente:
| Nível | Significado | Ação de plantão |
|---|---|---|
error |
Invariante quebrada; alguém pode precisar agir | Investigar |
warn |
Degradado, mas tratado (retentativa bem-sucedida, fallback usado) | Observar tendências |
info |
Evento de negócio significativo (pedido feito, job concluído) | Nenhum |
debug |
Detalhe de diagnóstico | Desativado em produção por padrão |
IDs de Correlação são obrigatórios. Gere (ou aceite) um ID de requisição na fronteira do sistema e anexe-o a cada linha de log, span e chamada de saída. Sem ele, você não consegue reconstruir uma única requisição a partir de logs intercalados:
// Express: child logger per request, ID propagated downstream
app.use((req, res, next) => {
const suppliedId = req.headers['x-request-id'];
req.id = typeof suppliedId === 'string' && /^[A-Za-z0-9_-]{1,64}$/.test(suppliedId)
? suppliedId
: crypto.randomUUID();
req.log = logger.child({ requestId: req.id });
res.setHeader('x-request-id', req.id);
next();
});
Nunca registre segredos, tokens, senhas ou PII completos. Esta é uma regra rígida da habilidade security-and-hardening — pipelines de telemetria são um caminho clássico de vazamento de dados. Permita campos por lista de permissões; não registre corpos de requisição inteiros.
4. Métricas
Para serviços orientados a requisições, instrumente RED em cada endpoint e cada dependência externa: Rate (requisições/segundo), Errors (taxa de falha), Duration (histograma de latência, não média). Para recursos (filas, pools, hosts), use USE: Utilization (Utilização), Saturation (Saturação), Errors (Erros).
…
Perguntas frequentes
O que são 'sinais'?
São dados que o código envia sobre o que está acontecendo, como registros de eventos (logs), contadores (métricas) ou rastros de requisições (traces).
Por que não posso adicionar isso depois que o código já está funcionando?
É muito mais fácil e eficaz adicionar esses sinais enquanto o código está sendo escrito. Adicionar depois pode ser complicado e não capturar todas as informações importantes.
O que são 'logs estruturados'?
São registros de eventos organizados em um formato que computadores entendem facilmente, com campos definidos, em vez de texto livre.
Detalhes
Descrição original do autor
Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3709
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC