> ## 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.

# Public Endpoint - JSON Metrics

Este endpoint da API é fornecido para adicionar métricas adicionais ao AppSignal, onde uma integração existente não pode ser usada ou a linguagem usada ainda não é suportada.

Este endpoint é destinado a integrações que enviam métricas agregadas em um curto período; é preferível enviar uma requisição a cada 5 segundos com 100 métricas do que 100 requisições a cada 5 minutos com uma métrica cada.

## Endpoint

Método da requisição: `POST`

| Endpoint                                                                                   | Descrição                       |
| ------------------------------------------------------------------------------------------ | ------------------------------- |
| [https://appsignal-endpoint.net/metrics/json](https://appsignal-endpoint.net/metrics/json) | Aceita dados formatados em JSON |

## Parâmetros de URL

| Parâmetro | Tipo   | Descrição                                                                                                                  |
| --------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| api\_key  | String | Chave de API **Front-end**, pode ser encontrada nas [configurações do App](https://appsignal.com/redirect-to/app?to=info). |

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

## Parâmetros do corpo

O corpo do post deve conter métricas formatadas em JSON separadas por uma nova linha, ou como um corpo json completo.

| Parâmetro  | Tipo                     | Descrição                                                                                                       |
| ---------- | ------------------------ | --------------------------------------------------------------------------------------------------------------- |
| name       | String                   | Nome da métrica, não deve conter espaços ou caracteres especiais, ex.: somente (`[a-zA-Z0-9-_]`)                |
| metricType | String                   | Tipo da métrica, pode ser um de `[gauge, counter, timing, histogram]`                                           |
| value      | Float                    | Valor (Float)                                                                                                   |
| tags       | `Object<String, String>` | Objeto contendo tags. Tanto chave quanto valor devem ser uma string, por exemplo: `{ "hostname": "frontend1" }` |

Exemplo de corpo JSON

<CodeGroup>
  ```json JSON theme={null}
  [
    {
      "name": "traffic_gauge",
      "metricType": "gauge",
      "value": 19.8,
      "tags": { "hostname": "frontend1" }
    },
    {
      "name": "error_counter",
      "metricType": "counter",
      "value": 10,
      "tags": { "hostname": "frontend1", "disk": "vda" }
    },
    {
      "name": "duration_timing",
      "metricType": "timing",
      "value": 19,
      "tags": { "lambda": "login" }
    },
    {
      "name": "duration_timing",
      "metricType": "histogram",
      "value": 5,
      "tags": { "lambda": "login" }
    }
  ]
  ```
</CodeGroup>

Exemplo de corpo separado por nova linha:

```json JSON theme={null}
{"name": "traffic_gauge", "metricType": "gauge", "value": 19.8, "tags": {"hostname": "frontend1"}}\n
{"name": "error_counter", "metricType": "counter", "value": 10, "tags": {"hostname": "frontend1", "disk": "vda"}}\n
{"name": "duration_timing", "metricType": "timing", "value": 19, "tags": {"lambda": "login"}}\n
{"name": "duration_timing", "metricType": "histogram", "value": 5, "tags": {"lambda": "login"}}\n
```

<Tip>
  **Nota**: Este endpoint é otimizado para grandes volumes de tráfego e não
  valida a chave da API ou o payload, uma resposta `200` (`OK`) é retornada quando o
  tamanho do corpo está dentro do limite de `200k`. Isso não significa que a requisição é
  aceita ao ser recebida.
</Tip>
