Solucionar problemas de Real-Time Events
Descubra a causa quando uma consulta não retorna registros, passa de um limite, responde 204 sem corpo ou usa um campo que o dataset não tem.
Esta página lista os sintomas que uma busca do 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 explica.
- Espere o atraso passar antes de concluir qualquer coisa: consulte 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
204nã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.
A consulta então retorna suas linhas em vez do erro. Para o limite que essa mensagem informa, consulte 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 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 registra.
- Envie os registros para um armazenamento seu antes que eles sejam removidos: 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 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 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 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 campolimitdefine 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.
Uma consulta dentro dos dois limites retorna suas linhas. Para os dois valores, consulte Limites e Limites da API GraphQL.