Conceitos fundamentais

Glossário e conceitos-chave do Dodo Aegies: hosts, spans, traces, logs, SLOs e IA agente.

Host

Um host é qualquer servidor, VM ou nó físico que executa o agente Dodo Aegies. Containers não são cobrados como hosts separados — você paga pelo host que os executa.

O agente coleta de cada host: métricas de sistema (CPU, memória, disco, rede), processos em execução e metadados de infraestrutura.

Serviço

Um serviço é uma unidade lógica de software que você nomeia ao inicializar o SDK:

aegies.init({ service: 'payments-api' });

Serviços agrupam traces, logs e métricas relacionados. Um host pode executar vários serviços.

Span

Um span representa uma operação individual dentro de um sistema distribuído — por exemplo, uma chamada HTTP, uma query SQL ou um job de fila. Cada span registra:

CampoDescrição
trace_idIdentifica a requisição de ponta a ponta
span_idIdentifica este span específico
parent_span_idSpan que originou este (se houver)
nameNome da operação (GET /users, SELECT users)
duration_msTempo de execução
statusok, error ou unset
attributesChave-valor customizável (db.system, http.route)

Trace

Um trace é a coleção de todos os spans gerados por uma requisição única atravessando múltiplos serviços. O trace_id propaga entre serviços via headers HTTP (traceparent) ou mensagens de fila.

Requisição do usuário
  └── payments-api (span: 120ms)
        ├── auth-service (span: 8ms)
        ├── db-primary (span: 45ms)     ← query lenta detectada
        └── notification-svc (span: 5ms)

Log

Um log é um registro textual ou estruturado de um evento em um ponto específico no tempo. O Aegies ingere logs de qualquer formato e os correlaciona automaticamente com o trace_id ativo:

{
  "timestamp": "2025-06-13T18:00:00Z",
  "level": "error",
  "message": "Query timeout after 30s",
  "trace_id": "abc123",
  "service": "payments-api"
}

Métrica

Uma métrica é uma medição numérica coletada em intervalos regulares (ex: cpu.usage_percent, http.requests_per_second, jvm.heap_used). O Aegies coleta métricas sem amostragem — todos os pontos são armazenados e consultáveis.

SLO (Service Level Objective)

Um SLO é uma meta de confiabilidade expressa como porcentagem de requisições “boas” em uma janela de tempo:

“99,9% das requisições respondem em menos de 200ms nos últimos 30 dias”

O SLO define o que conta como “bom” (ex: status 2xx, latência abaixo de threshold) e a janela de avaliação (7, 14 ou 30 dias).

Error Budget

O error budget é o volume de falhas ou lentidões que você ainda pode ter antes de violar o SLO. Com um SLO de 99,9%, o error budget é 0,1% — cerca de 43 minutos de downtime por mês.

O Aegies exibe o error budget restante em tempo real e aciona alertas e rollbacks quando o consumo acelera.

Burn Rate

O burn rate é a velocidade de consumo do error budget. Um burn rate de 1× significa que você esgotará o budget exatamente no fim do período. Um burn rate de 10× significa que o budget acabará 10 vezes mais rápido que o planejado.

O Aegies usa alertas multi-burn-rate para diferenciar incidentes críticos (burn alto em janela curta) de degradações graduais (burn moderado em janela longa).

Anomalia

Uma anomalia é um desvio estatístico do comportamento normal — não apenas a violação de um threshold estático. O Aegies aprende o baseline de cada métrica e detecta padrões incomuns mesmo que ainda dentro dos limites configurados.

Causa raiz

A causa raiz é o evento ou condição original que desencadeou um incidente. O Aegies correlaciona sinais de diferentes fontes (spike de latência + aumento de error rate + deploy recente) para isolar a causa raiz entre dezenas de serviços simultaneamente.

Runbook

Um runbook é um procedimento operacional documentado para resolver um tipo específico de problema. O Aegies gera runbooks automaticamente com base no incidente detectado e os executa após aprovação humana. Veja AI Runbooks.

Modos do Aegies AI

ModoComportamento
LeituraDetecta e informa; sem propor ações
Propor + AprovarGera fix e aguarda aprovação com 1 clique
Auto-pilotExecuta automaticamente para classes pré-aprovadas

Configurado via ai.mode no SDK ou em Settings → AI Policies na UI.