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

# Monitoramento & Debug

> Acompanhe as execuções das suas integrações no app e solucione problemas usando os canais de log do Slack

## Visão geral

Para verificar se sua integração está executando corretamente ou diagnosticar falhas em **Extração**, **Transformação** ou **Envio**, use os canais de log do Slack criados para seu tenant. A RWS Integration publica logs de execução como **arquivos json** nesses canais.

## Página de status da integração

Em workspaces onde ela está habilitada, abrir uma integração mostra uma página de status em vez do formulário editável. Ela dá uma visão rápida da saúde da integração sem sair do app:

* A **execução atual ou a última execução** e seu resultado
* Quanto tempo cada fase levou: **Extração**, **Transformação** e **Envio**
* Quantos registros cada fase processou

A partir dessa página você também pode:

* Clicar em **Executar agora** para iniciar uma execução imediatamente. A página é somente leitura, então não há nada para salvar: após confirmar no diálogo, a execução começa na hora.
* Clicar em **Editar Integração** para abrir o formulário editável.

<Note>
  A página de status é habilitada por workspace. Se você não a vê, seu workspace ainda abre o formulário editável. Fale com a equipe RWS se quiser habilitá-la.
</Note>

## Canais do Slack

No Slack, você verá quatro canais para seu tenant:

<CardGroup cols={2}>
  <Card title="Extração com Sucesso" icon="check-circle" href="#extração-com-sucesso">
    `{{ tenant }}`-extract-success Logs para **extrações bem-sucedidas** de todas as integrações
  </Card>

  <Card title="Erro de Extração" icon="x-circle" href="#erro-de-extração">
    `{{ tenant }}`-extract-error Logs para **extrações com falha** de todas as integrações
  </Card>

  <Card title="Erro de Transformação" icon="exclamation-triangle" href="#erro-de-transformação">
    `{{ tenant }}`-transform-error Logs para **erros de transformação** de todas as integrações
  </Card>

  <Card title="Erro de Envio" icon="x-circle" href="#erro-de-envio">
    `{{ tenant }}`-load-error Logs para **erros de envio** de todas as integrações
  </Card>
</CardGroup>

## Entendendo os logs

Cada arquivo de log contém dados estruturados em JSON que ajudam você a diagnosticar problemas. Abaixo estão exemplos de cenários comuns de sucesso e erro e como interpretá-los.

### Extração com Sucesso

Quando uma extração é bem-sucedida, você verá um log como este:

```json theme={null}
{
  "type": "Error",
  "category": "Integration Extract - Success",
  "timestamp": "2025-12-09T23:39:05.458Z",
  "message": "Extract Success",
  "data": {
    "merchant": "tenant",
    "integrationName": "integration",
    "integrationId": "682693a60de87c17bbea7d85",
    "hasDatapoints": true,
    "total": 69376,
    "iterations": 1,
    "fail": 0,
    "success": 1
  }
}
```

#### Campos principais para Extração com sucesso:

| Campo                | Descrição                                                                                                                                                                                                                                                                                                             |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data.hasDatapoints` | Se a integração conseguiu extrair algum datapoint                                                                                                                                                                                                                                                                     |
| `data.total`         | Número de datapoints extraídos                                                                                                                                                                                                                                                                                        |
| `data.iterations`    | Número de tentativas de extração realizadas. Este é sempre a **soma de `data.fail` e `data.success`** para a execução. Também reflete o número de parâmetros de paralelização usados; por exemplo, se a paralelização estiver definida como `123,456` (2 parâmetros), então `iterations` será 2 para essa integração. |
| `data.fail`          | Número de tentativas de extração com falha                                                                                                                                                                                                                                                                            |
| `data.success`       | Número de tentativas de extração bem-sucedidas                                                                                                                                                                                                                                                                        |

### Erro de Extração

Quando uma extração falha, você verá um log como este:

```json theme={null}
{
  "type": "Error",
  "category": "Integration Extract - Failed",
  "timestamp": "2025-12-10T23:34:49.768Z",
  "message": "Extract Error",
  "data": {
    "merchant": "tenant",
    "integrationName": "integration",
    "integrationId": "682693a60de87c17bbea7d81",
    "total": 0,
    "iterations": 1,
    "fail": 1,
    "success": 0,
    "errors": ["HTTP status error @ ApiPage.extract(): status=500 response=\"Internal Server Error\""]
  }
}
```

#### Campos principais para erros de Extração:

| Campo             | Descrição                                                                                                                                                                                                                                                                                                             |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data.total`      | Número de datapoints extraídos                                                                                                                                                                                                                                                                                        |
| `data.iterations` | Número de tentativas de extração realizadas. Este é sempre a **soma de `data.fail` e `data.success`** para a execução. Também reflete o número de parâmetros de paralelização usados; por exemplo, se a paralelização estiver definida como `123,456` (2 parâmetros), então `iterations` será 2 para essa integração. |
| `data.fail`       | Número de tentativas de extração com falha                                                                                                                                                                                                                                                                            |
| `data.success`    | Número de tentativas de extração bem-sucedidas                                                                                                                                                                                                                                                                        |
| `data.errors`     | Mensagens de erro retornadas/levantadas durante a extração (geralmente inclui status HTTP + resposta)                                                                                                                                                                                                                 |

<Tip>
  Erros de Extração frequentemente incluem códigos de status HTTP e mensagens de resposta, que podem ajudá-lo
  a identificar problemas de conectividade de API ou problemas de endpoint.
</Tip>

### Erro de Transformação

Quando uma transformação falha, você verá um log como este:

```json theme={null}
{
  "type": "Error",
  "category": "Datapoint Transform",
  "timestamp": "2025-11-22T09:51:24.400Z",
  "message": "There was an error in transform-record operation",
  "data": {
    "merchant": "tenant",
    "integrationName": "integration",
    "integrationId": "6733572df58838c37514d907",
    "total": 1,
    "success": 0,
    "failed": 1,
    "errors": [
      "Error while executing the business rule example-doc with id 67570b4a1891fa735a486ae2: Cannot read property of undefined/null. Data is: {{ datapoint }}"
    ]
  }
}
```

#### Campos principais para erros de Transformação:

| Campo          | Descrição                                                                                                                                                                |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `data.total`   | Número de datapoints processados pela transformação                                                                                                                      |
| `data.failed`  | Número de datapoints que falharam na transformação                                                                                                                       |
| `data.success` | Número de datapoints transformados com sucesso                                                                                                                           |
| `data.errors`  | Detalhes do erro de transformação (aponta para a regra que falhou), também inclui o datapoint que causou o erro que pode ser identificado por `Data is: {{ datapoint }}` |

<Note>
  Transformações simples não geram logs de erro de transformação, certifique-se de que o mapeamento está
  correto e corresponde exatamente aos nomes dos campos na origem
</Note>

<Warning>
  Erros de Transformação apontam para regras de negócio específicas que estão causando problemas. Verifique a
  mensagem de erro para o ID exato da regra.
</Warning>

### Erro de Envio

Quando uma operação de envio falha, você verá um log como este:

```json theme={null}
{
  "type": "Error",
  "category": "Datapoint Load",
  "timestamp": "2025-12-10T17:03:30.527Z",
  "message": "There was an error processing requests",
  "data": {
    "merchant": "tenant",
    "integrationName": "integration",
    "integrationId": "6733572df58838c37514d902",
    "failed": 1,
    "errors": [
      "HTTP status error @ LoadService.load(): status=404 response={\"error\":{\"code\":\"OMS007\",\"message\":\"Register Not Found\",\"exception\":null}}"
    ],
    "requests": ["{{ request }}"]
  }
}
```

#### Campos principais para erros de Envio:

| Campo           | Descrição                                                                            |
| --------------- | ------------------------------------------------------------------------------------ |
| `data.failed`   | Número de requisições de envio com falha                                             |
| `data.errors`   | A resposta/erro retornado pela API de destino durante o envio                        |
| `data.requests` | O payload da requisição enviado para a API de destino (útil para reproduzir/debugar) |

## Buscar logs de uma integração específica

Para encontrar logs de uma execução de integração específica em todos os canais:

1. **Copie o ID da integração:**\
   Copie o `integrationId` da interface de integração no seu dashboard.

2. **Busque no Slack:**\
   Cole o ID na barra de busca do Slack.

3. **Filtre para arquivos:**\
   Filtre a busca para **Arquivos** para ver apenas arquivos de log JSON.

4. **Revise os logs:**\
   Abra o(s) arquivo(s) correspondente(s) para visualizar o log JSON completo dessa execução de integração.

<Check>
  Você pode buscar em todos os quatro canais simultaneamente usando o ID da integração, facilitando o
  rastreamento de uma execução completa de integração desde a extração até o envio.
</Check>
