Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3709

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/observability-and-instrumentation/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/observability-and-instrumentation/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-instrumentation

Ou 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.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.

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.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas