Skip to main content
POST
Resolve Incident
string
obrigatório
Nome do recurso Issue (ex.: payment-service-oom-kill-1773933600)
string
Namespace do incidente. Se omitido, todos os namespaces são pesquisados e o primeiro incidente com esse nome é resolvido — informe-o explicitamente quando nomes puderem se repetir entre namespaces.
string
Descrição de como o incidente foi resolvido. Se omitido (ou com corpo vazio), o padrão é "Manually resolved via dashboard".Boa prática: sempre informe uma mensagem de resolução significativa para a trilha de auditoria.

Quando Usar Este Endpoint

1. Incidentes Escalados (Ação Humana Necessária)

Quando a remediação automática se esgota — maxRemediationAttempts tentativas (spec.aiops.maxRemediationAttempts da Instance, padrão 5, ou o maxAttempts do Runbook correspondente) — o incidente vai para Escalated. A partir daí:
  • As políticas de notificação e escalonamento configuradas alertam o time de plantão
  • Nenhuma remediação automática adicional é tentada
  • Se o auto-resolve estiver ligado (spec.aiops.enableAutoResolve da Instance, padrão true), o operator verifica o recurso a cada 30 segundos e resolve o incidente sozinho assim que todas as réplicas estiverem saudáveis
  • Caso contrário, o incidente fica Escalated até alguém resolvê-lo por este endpoint ou pelo dashboard web

2. Verificação Manual Após Auto-Remediação

Mesmo quando a remediação automática funciona, operadores podem querer fechar o incidente com o próprio texto de resolução.

3. Falsos Positivos

Quando o incidente se revela um falso positivo, resolva-o com uma resolução como "Falso positivo — pico de métrica causado por job batch agendado".

Fluxo de Resolução para Incidentes Escalados

O Que Acontece na Resolução

  1. Mudança de estado: qualquer estado exceto Resolved (incluindo Escalated, Failed e estados em andamento) vira Resolved; status.resolution e status.resolvedAt são preenchidos. Resolver um incidente já resolvido retorna 409.
  2. Annotations adicionadas:
    • aiops.chatcli.io/resolved-by — a role da API key que chamou (operator ou admin)
    • aiops.chatcli.io/resolved-at — horário da resolução
    • aiops.chatcli.io/manual-resolution — "true"
  3. Resolved é terminal: o controller de Issue para de processar o incidente.
Uma resolução manual não: gera PostMortem (PostMortems só são criados quando um RemediationPlan termina), registra AuditEvent, interrompe um RemediationPlan já em execução, nem limpa a entrada de deduplicação do watcher para o recurso (o gancho existe, mas não está ligado no operator), então uma anomalia recorrente no mesmo recurso pode continuar deduplicada até a entrada expirar (spec.aiops.dedupTTLMinutes da Instance, padrão 30).

Autorizações

X-API-Key
string
header
obrigatório

API key sent in the X-API-Key header. Keys are read from the Secret chatcli-operator-secrets, key api-keys (fallback: ConfigMap chatcli-operator-config, key api-keys) in the operator namespace, as a YAML list of {key, role, name, description} (name is the identity recorded on approval decisions); the operator chart creates it only with apiKeys.create: true. Roles: viewer < operator < admin — any other role string is denied everywhere. Changes are picked up within about 30 seconds; deleting both the Secret and the ConfigMap revokes every key. With no keys configured every /api/ call returns 401, unless CHATCLI_OPERATOR_DEV_MODE=true, which grants admin without a key (development only).

Parâmetros de caminho

name
string
obrigatório

Issue name.

Exemplo:

"payment-service-oom-1710860400"

Parâmetros de consulta

namespace
string

Namespace of the object. When omitted, all namespaces are searched and the first object with this name is used.

Corpo

application/json
resolution
string

How the incident was resolved. Defaults to Manually resolved via dashboard when omitted.

Resposta

Incident resolved

apiVersion
string
Exemplo:

"v1"

kind
string
Exemplo:

"Incident"

spec
object
status
object
resourceMeta
object