# Solucionar problemas de Real-Time Events

Esta página lista os sintomas que uma busca do [Real-Time Events](/pt-br/documentacao/plataforma/real-time-events/) mostra, cada um com sua causa e sua correção. Quatro classes de sintoma são cobertas: uma busca que não retorna registros, uma consulta que um limite recusou, um endpoint que não responde nada e um campo que um dataset não tem. Toda correção desta página muda a consulta, nunca a configuração do produto que escreveu os registros.

---

## Uma consulta não retorna registros de um evento que acabou de acontecer

Uma busca que cobre uma requisição enviada há poucos instantes volta sem registros, embora a requisição tenha sido atendida.

Real-Time Events torna um registro consultável em até 30 segundos depois do evento que o produziu, e não no instante dele. Uma busca executada de imediato lê, portanto, um período em que o registro ainda não entrou.

- **Execute a mesma busca de novo**: o registro aparece assim que fica consultável, sem nenhuma mudança na consulta.
- **Defina o fim do período como o momento atual**: um intervalo que terminou antes de a requisição ser atendida nunca a cobre.
- **Confirme que existe algum registro**: um produto que não processou nenhum trabalho não escreve nenhum, como [Como Real-Time Events funciona](/pt-br/documentacao/plataforma/real-time-events/como-funciona/) explica.
- **Espere o atraso passar antes de concluir qualquer coisa**: consulte [Limites](/pt-br/documentacao/plataforma/real-time-events/limites/) para este limite ao lado de todos os outros.

A busca então retorna o registro, com todas as variáveis que sua fonte de dados define.

---

## O endpoint responde 204 com corpo vazio

Uma consulta à API GraphQL do Real-Time Events responde com o status HTTP `204` e sem corpo algum, sem dados e sem erro.

A requisição chegou a `https://api.azion.com/events/graphql`, o caminho sem `/v4`. Esse caminho responde `204` com corpo vazio para toda requisição que recebe, portanto uma consulta correta enviada para lá é indistinguível de uma busca que não encontrou nada.

- **Envie a consulta para `https://api.azion.com/v4/events/graphql`**: este é o caminho em que a API GraphQL do Real-Time Events responde.
- **Leia a linha de status antes do corpo**: um `204` não carrega mensagem, portanto um cliente que inspeciona apenas o corpo informa um resultado vazio e esconde a causa.
- **Corrija o caminho em todos os lugares onde ele está guardado**: um cliente salvo, um script e uma integração guardam cada um a sua cópia da URL.

O caminho v4 responde com um corpo JSON, que carrega os registros que a consulta selecionou ou um erro que nomeia o que está errado nela.

---

## Uma consulta é recusada com A query limit was exceeded

Uma busca falha e retorna `A query limit was exceeded. Try to refine your filter parameters or query a smaller period for a more precise search.`

O banco de dados de logs limita quantas linhas uma consulta pode ler antes de responder, e ele conta as linhas lidas, não as linhas retornadas. Uma busca sobre um período amplo sem nenhum outro filtro lê todas as linhas desse período, portanto alcança o limite enquanto retorna quase nada.

- **Adicione um filtro**: um host, um endereço IP, um código de status HTTP ou outro parâmetro da busca reduz a leitura antes que o período precise reduzi-la.
- **Encurte o período**: um intervalo mais estreito lê menos linhas, embora um filtro mude mais o resultado do que o período muda.
- **Faça várias perguntas estreitas**: duas buscas filtradas retornam o que uma busca sem filtro é recusada por pedir.
- **Peça um limite maior**: a Azion aumenta um limite padrão conforme o seu plano, pelo [suporte técnico](/pt-br/documentacao/suporte/).

A consulta então retorna suas linhas em vez do erro. Para o limite que essa mensagem informa, consulte [Limites](/pt-br/documentacao/plataforma/real-time-events/limites/).

---

## Uma consulta não retorna registros de um evento mais antigo

Uma busca sobre um período de semanas ou meses atrás não retorna nada, enquanto a mesma busca sobre um período recente retorna registros.

Real-Time Events mantém um registro de evento por 7 dias e depois o remove, e nada recupera um registro depois que ele some. Um período que alcança mais atrás que a retenção não retorna nada para a parte que cai fora da janela, porque não resta nada para ler lá.

- **Consulte dentro da janela de retenção**: [Limites](/pt-br/documentacao/plataforma/real-time-events/limites/) carrega o período pelo qual cada fonte de dados mantém seus registros.
- **Consulte Activity History para uma ação na conta**: essa fonte de dados mantém seus registros por 2 anos, muito mais que as outras sete, como [Fontes de dados](/pt-br/documentacao/plataforma/real-time-events/fontes-de-dados/) registra.
- **Envie os registros para um armazenamento seu antes que eles sejam removidos**: [Data Stream](/pt-br/documentacao/plataforma/data-stream/) entrega os mesmos registros continuamente a um endpoint que você controla, onde vale a sua própria retenção.

Uma busca dentro da janela retorna seus registros, e uma pergunta sobre um evento mais antigo é respondida pelo armazenamento para onde os registros foram enviados.

---

## Um campo é rejeitado ou não retorna valor

Uma consulta falha no nome de um campo, ou ela roda e esse campo volta vazio em todos os registros.

Azion Console nomeia um campo como variável e a API GraphQL do Real-Time Events nomeia o mesmo campo em camelCase, portanto a variável `Remote Address` é o campo `remoteAddress`. Um campo também pertence a um dataset, portanto um nome tirado de outro dataset não é um campo daquele que a consulta lê.

- **Tire a grafia da própria lista de campos do dataset**: [Campos da API GraphQL do Real-Time Events](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-events/) dá o nome do campo e o tipo que cada dataset aceita.
- **Não reutilize uma grafia do Data Stream**: um payload do [Data Stream](/pt-br/documentacao/plataforma/data-stream/) escreve o mesmo campo em snake\_case, que uma consulta GraphQL não aceita.
- **Confirme que o campo pertence à fonte de dados que você selecionou**: [Fontes de dados](/pt-br/documentacao/plataforma/real-time-events/fontes-de-dados/) nomeia o dataset de cada fonte de dados ao lado das suas variáveis.

A consulta então é interpretada sem erro, e o campo retorna um valor em todo registro que carrega um.

---

## Uma consulta é recusada por selecionar campos demais ou pedir linhas demais

Uma consulta é recusada com uma resposta de erro que nomeia um limite nos campos que ela selecionou ou nas linhas que ela pediu.

A API GraphQL limita tanto o número de campos que uma consulta seleciona quanto o número de linhas que uma consulta retorna. Os dois limites pertencem à própria API e valem para todos os datasets que ela serve, portanto nenhuma escolha de fonte de dados os evita.

- **Selecione menos campos**: peça os campos de que a pergunta precisa e leia o resto em uma segunda consulta sobre o mesmo período.
- **Reduza o `limit`**: o campo `limit` define quantas linhas uma consulta retorna, e um valor menor mantém a consulta dentro do limite de linhas.
- **Leia o corpo que o erro carrega**: consulte [Mensagens de erro da API GraphQL](/pt-br/documentacao/devtools/graphql/mensagens-erro/).

Uma consulta dentro dos dois limites retorna suas linhas. Para os dois valores, consulte [Limites](/pt-br/documentacao/plataforma/real-time-events/limites/) e [Limites da API GraphQL](/pt-br/documentacao/devtools/graphql/limites/).

---

## Recursos relacionados

- [Limites de Real-Time Events](/pt-br/documentacao/plataforma/real-time-events/limites.md): Todos os limites citados nesta página, com seu valor e a resposta que uma consulta recebe além dele.
- [Como Real-Time Events funciona](/pt-br/documentacao/plataforma/real-time-events/como-funciona.md): Por que uma busca sem filtro sobre um período amplo é a consulta que o banco de dados de logs recusa.
- [Campos do Real-Time Events](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-events.md): O nome e o tipo de campo que cada dataset aceita, para uma consulta que um nome de campo recusou.
- [Suporte técnico](/pt-br/documentacao/suporte.md): Como pedir um limite padrão maior, ou relatar um sintoma que nenhuma entrada daqui cobre.
