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

# Configuração HTTP-JSON

<Warning>
  🔐 Não envie <strong>Informações Pessoais Identificáveis (PII)</strong> para a AppSignal. Filtre PII (por exemplo, nomes, e-mails) dos logs e use um ID, hash ou identificador pseudonimizado no lugar. <br /> <br /> Para **entidades cobertas pela HIPAA**, mais informações sobre como assinar um Business Associate Agreement (BAA) podem ser encontradas em nossa [documentação de Business Add-Ons](/support/business-add-ons).
</Warning>

## Endpoint

Você pode fazer `POST` de logs para o AppSignal. Seus logs precisam estar formatados em [`NDJSON`](#ndjson) e enviados para o seguinte endpoint:

<CodeGroup>
  ```shell Shell theme={null}
  https://appsignal-endpoint.net/logs/json?api_key=YOUR_LOG_SOURCE_API_KEY
  ```
</CodeGroup>

## NDJSON

Nosso endpoint HTTP-JSON espera que os logs sejam enviados em formato `NDJSON` para o endpoint.
`NDJSON` significa Newline Delimited JSON, o que quer dizer que cada linha de log é seu próprio objeto JSON, por exemplo:

<CodeGroup>
  ```shell Shell theme={null}
  {"timestamp": "2022-06-02T04:17:25.783Z", "message": "foo", [...]}
  {"timestamp": "2022-06-02T04:17:26.000Z", "message": "bar", [...]}
  ```
</CodeGroup>

### Dados obrigatórios

Abaixo está um exemplo de mensagem `NDJSON` (formatada para leitura). Você pode ler mais sobre os dados que o AppSignal requer na seção [Campos obrigatórios](#required-fields).

#### Exemplo de mensagem

<Warning>
  **Aviso:** Esta mensagem está formatada usando quebras de linha para facilitar
  a leitura. Seu cliente **precisa** enviar a linha de log como uma única linha,
  sem quebras de linha.
</Warning>

<CodeGroup>
  ```json JSON theme={null}
  {
    "timestamp": "2022-06-02T04:17:25.783Z",
    "group": "organisations",
    "severity": "warn",
    "message": "This is a test message",
    "hostname": "frontend1",
    "attributes": {
      "org": "appsignal",
      "step": 1,
      "seen_terms": true,
      "entries": 10.01
    }
  }
  ```
</CodeGroup>

#### Campos obrigatórios

<Warning>
  O AppSignal irá descartar silenciosamente qualquer mensagem que não contenha
  os campos obrigatórios abaixo ou que tenha valores incorretos.
</Warning>

O payload `NDJSON` que você envia ao AppSignal precisa conter os seguintes campos:

#### timestamp

Um timestamp formatado em `RFC 3339` com precisão de nanossegundos de 3 dígitos.

```yaml YAML theme={null}
YYYY-MM-DDThh:mm:ss.sss
2022-01-12T07:20:50.520Z
```

#### group

String de uma palavra que permite ao usuário separar linhas de log por um determinado contexto (por exemplo, logs para uma parte específica da sua aplicação, o group pode ser "admin", "payments", "database" ou "background").

#### severity

O campo severity aceita os seguintes valores: `unknown`, `trace`, `debug`, `info`, `notice`, `warn`, `error`, `critical`, `alert` e `fatal`.

#### message

Mensagem em `Plaintext`.

#### hostname

Hostname do servidor que envia a mensagem.

#### Campos opcionais

Os seguintes campos são opcionais, mas recomendados para dados de log mais ricos:

#### attributes

Atributos que podem ser usados para filtrar ou buscar a mensagem, com as seguintes regras:

* Atributos não podem ser aninhados ou conter arrays
* O tamanho máximo da chave é `50` caracteres
* A quantidade máxima de atributos é `100`
* Os seguintes primitivos são aceitos como valores:
  * String: idealmente usada como "tags", por exemplo, valores de uma palavra, com um máximo de `100` caracteres
  * Integer: `10`
  * Double: `0.01`
  * Boolean: `true`/`false`

#### format

Sobrescreve o formato configurado da fonte de log ao fazer parsing da `message`. Aceita `plaintext`, `logfmt`, `json` ou `autodetect`; valores desconhecidos são ignorados.
