> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aciona.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Prometheus Alertmanager

> Conecte o Alertmanager ao aciona.me com um receiver webhook e send_resolved.

## Visão geral

O Alertmanager envia os alertas por um **receiver do tipo webhook**. Cada item de `alerts[]` vira um alerta no aciona.me, e o estado nativo `resolved` do Alertmanager resolve o acionamento automaticamente.

|                    |                               |
| ------------------ | ----------------------------- |
| **Tipo de fonte**  | `Prometheus`                  |
| **Mecanismo**      | `webhook_configs` no receiver |
| **Correlação**     | `fingerprint` do Alertmanager |
| **Auto-resolução** | ✅                             |

## Pré-requisitos

* Alertmanager acessível e permissão para editar sua configuração.
* Um serviço criado no aciona.me e vinculado a um time com escala ativa.

## 1. Crie a fonte de alerta no aciona.me

Em **Fontes de alerta**, crie uma fonte do tipo **Prometheus**.

## 2. Copie a URL e o token

```bash theme={null}
POST https://ingress.aciona.me/webhooks/<idDaFonte>
X-Aciona-Token: <tokenDaFonte>
```

## 3. Configure o receiver no Alertmanager

```yaml alertmanager.yml theme={null}
receivers:
  - name: aciona-me
    webhook_configs:
      - url: https://ingress.aciona.me/webhooks/<idDaFonte>
        send_resolved: true
        http_config:
          http_headers:
            X-Aciona-Token:
              value: '<tokenDaFonte>'

route:
  receiver: aciona-me
  group_by: ['alertname', 'service']
  group_wait: 10s
  group_interval: 5m
  repeat_interval: 4h
```

<Warning>
  **`send_resolved: true` é obrigatório para a auto-resolução.** Sem ele, o Alertmanager só envia itens `firing` e os acionamentos ficam abertos até alguém resolver manualmente.
</Warning>

Recarregue a configuração do Alertmanager depois de salvar.

## 4. Envie um alerta de teste

```bash theme={null}
curl -X POST http://<seu-alertmanager>:9093/api/v2/alerts \
  -H "Content-Type: application/json" \
  -d '[{
    "labels": {
      "alertname": "TesteAcionaMe",
      "severity": "critical",
      "service": "api-pagamentos"
    },
    "annotations": { "description": "Alerta de teste do aciona.me" }
  }]'
```

## 5. Confirme o acionamento

O acionamento deve aparecer em **Acionamentos** com o título vindo da label `alertname`.

## 6. Como os campos são traduzidos

| Campo no aciona.me | Origem no Alertmanager                     |
| ------------------ | ------------------------------------------ |
| Estado             | `alerts[].status` (`firing` / `resolved`)  |
| Correlação         | `alerts[].fingerprint`                     |
| Severidade         | label `severity` (padrão: `warning`)       |
| Título             | label `alertname`                          |
| Descrição          | annotation `description`, depois `summary` |
| Serviço            | labels `service` → `job` → `instance`      |
| Link externo       | `alerts[].generatorURL`                    |

<Note>
  O aciona.me usa o `status` de **cada item** de `alerts[]`, nunca o status do grupo. Isso evita que um grupo parcialmente resolvido feche acionamentos que ainda estão disparando.
</Note>

## Compatibilidade

O mesmo formato de payload é usado pelo Thanos Ruler, VictoriaMetrics Alertmanager e Grafana Mimir — a integração tende a funcionar com essas ferramentas sem ajustes.

## Solução de problemas

<AccordionGroup>
  <Accordion title="O acionamento abre, mas nunca fecha sozinho" icon="triangle-alert">
    `send_resolved: true` está ausente no receiver. Adicione e recarregue a configuração.
  </Accordion>

  <Accordion title="Resposta 401" icon="lock">
    O header `X-Aciona-Token` não está chegando. Verifique a indentação do bloco `http_headers` e a versão do Alertmanager — versões antigas usam sintaxe diferente para headers customizados.
  </Accordion>

  <Accordion title="Severidade sempre warning" icon="gauge">
    As regras não têm a label `severity`, ou usam valores não reconhecidos. Veja [Severidades](/pt-br/referencia/severidades).
  </Accordion>

  <Accordion title="Serviço errado" icon="server">
    Adicione a label `service` nas regras, com o nome exato do serviço no aciona.me.
  </Accordion>
</AccordionGroup>
