Pular para o conteúdo
ChatMade

Abrir chamado por alerta

Aponte o webhook do Grafana, do Alertmanager, do Datadog ou do seu próprio script para o ChatMade e o alerta vira chamado com investigação automática.

Esta página é para quem cuida da monitoração. Ligando o webhook de alerta, o problema vira chamado antes de o cliente reclamar — e a investigação automática já começa a rodar.

Como ligar

  1. No painel, abra Settings → Ticketing (“Configurações → Chamados”).
  2. Role até a seção Alert webhook intake (“Entrada de alerta por webhook”).
  3. Marque Enabled (“Ativo”). Vem desmarcado.
  4. Salve. Na primeira vez que você liga, o servidor gera um segredo.
  5. A URL completa aparece numa caixa de código, com um botão Copy (“Copiar”). A confirmação é Webhook URL copied.
  6. Cole essa URL no seu Grafana, Alertmanager, Datadog, CloudWatch ou no que você usar.

A dica que a própria tela dá:

Point Grafana, Datadog or CloudWatch alert webhooks here — alerts open tickets and trigger investigation proactively, before a customer reports the issue. Re-fired alerts attach to the existing open ticket.

O formato da URL

{seu-backend}/api/v1/tickets/webhooks/alerts/{id-da-organização}/{segredo}

O método é POST, o corpo é JSON e a resposta de sucesso é 202.

Atenção: o segredo está na própria URL. Não há cabeçalho de autenticação, não há assinatura e não há token de portador. Quem tiver a URL abre chamado na sua organização. Trate-a como senha: não cole em ticket público, não versione em repositório, não mande por grupo.

E não há botão de rotação. O segredo é criado uma vez, quando você liga a entrada pela primeira vez, e desligar e religar mantém o mesmo segredo. Trocá-lo hoje exige mexer no banco.

Só quem tem a permissão manage_organization consegue ler o segredo. Para os outros, a API devolve o campo em branco.

Qualquer problema — organização inexistente, entrada desligada, segredo errado — devolve o mesmo 404 Not found, de propósito: a resposta não conta qual parte falhou.

Que formatos são entendidos

Grafana, Alertmanager, Datadog e um JSON qualquer que você monte. Não há detecção de fornecedor nem checagem de tipo de conteúdo: o ChatMade lê um JSON só e vai tentando os campos em ordem até achar cada informação.

Título — o primeiro que existir:

titleruleName (Grafana) → alert_name (Datadog) → commonAnnotations.summary (Alertmanager) → commonLabels.alertname (Alertmanager) → e, se nada disso vier, o literal Infrastructure alert.

Descrição — o primeiro que existir:

descriptionmessagebodycommonAnnotations.description → vazio.

Severidade — o primeiro que existir:

severityprioritycommonLabels.severity.

De severidade para prioridade

Severidade recebidaPrioridade do chamado
criticalUrgent
disasterUrgent
errorHigh
warningMedium
infoLow

Atenção: qualquer outro valor — ou nenhum valor — vira High. Um alerta informativo mandado sem o campo severity abre um chamado de prioridade alta. Se o seu sistema usa outra escala (P1, sev2, major), traduza para uma dessas cinco palavras antes de mandar.

O chamado que nasce

  • O título recebe o prefixo [ALERT].
  • A origem é registrada como api.
  • Não há cliente ligado — é chamado de infraestrutura.
  • Se a triagem automática estiver ligada, ela roda em seguida, como em qualquer chamado.

A resposta é {"deduplicated": false, "ticket": "TKT-n"}.

Alerta que dispara de novo

Antes de criar, o ChatMade calcula o vetor do título mais a descrição e compara com os chamados abertos. Passando de 95% de semelhança, não nasce chamado novo: o alerta vira um comentário no chamado existente, com o corpo Alert fired again: {título}.

A resposta muda para {"deduplicated": true, "ticket": "TKT-n"}.

É o que impede que um alerta oscilando de madrugada gere quarenta chamados iguais. Note o “abertos”: um chamado já resolvido ou fechado não absorve o alerta, e o problema voltando abre um chamado novo — que é o comportamento certo.

Um exemplo mínimo

Se você está mandando de um script próprio, o corpo mais simples que funciona bem é:

{
  "title": "Fila de pedidos parada há 10 minutos",
  "description": "worker orders-consumer sem ack desde 03:12 UTC. Backlog em 4.812 mensagens.",
  "severity": "critical"
}

Isso abre um chamado [ALERT] Fila de pedidos parada há 10 minutos com prioridade Urgent.

O que não existe

Não há webhook de saída em lugar nenhum do ChatMade. Este webhook é de entrada: ele recebe alerta e abre chamado. O ChatMade não avisa o seu sistema quando um chamado muda de status, é resolvido ou é fechado.

Se você precisa dessa informação em outro lugar, o caminho hoje é ler a API REST — que é autenticada por sessão de usuário, não por chave de API.

Próximo passo

Com os alertas entrando, ajuste a Investigação automática para que a IA já chegue no chamado com evidência levantada.