Envie logs para um endpoint HTTP
Crie um stream que envia os logs das suas aplicações para uma URL HTTP ou HTTPS, no Azion Console ou com a Azion API, e confirme a entrega.
Você pode enviar os logs de um stream para qualquer URL que receba requisições POST HTTP ou HTTPS pelo Azion Console ou com a Azion API. Para alterar o corpo de cada requisição, por exemplo para enviar um array JSON, consulte Personalize o payload do HTTP POST.
Data Stream envia as linhas de log de cada lote no corpo de requisições POST para a sua URL. No formulário do stream, o endpoint é definido no campo Connector, e o endpoint HTTP é a opção Standard HTTP/HTTPS POST desse campo. Use-o para uma plataforma que não tem opção própria nessa lista. Para ver todos os campos e os limites deles, consulte Endpoints.
O exemplo coleta as requisições de um workload com a fonte de dados Applications.
Selecione a interface uma vez. Os pré-requisitos e todas as tarefas abaixo mostram só esse caminho.
Pré-requisitos
- Uma conta Azion com a permissão Edit Data Stream. Para ver as permissões, consulte Configurações do stream.
- Um workload na conta que recebe requisições.
- A URL que recebe os logs. Ela precisa começar com
http://ouhttps://e aceitar requisiçõesPOST. - Os headers que a sua plataforma exige para aceitar as requisições, como uma chave de acesso. O Data Stream os envia em todas as requisições.
- Um endpoint que receba cada lote em até 20 segundos. Depois de 20 segundos, o envio termina com o status
504. Para ver o timeout, consulte Limites de Data Stream.
- Acesso ao Azion Console. Para entrar, consulte Acessar Azion Console.
Crie o stream
O stream coleta do workload que você escolher, por meio de um filtro de workloads. Ao contrário do sampling, um filtro de workloads mantém seus outros streams ativos.
Para criar o stream com a API, envie uma requisição POST para https://api.azion.com/v4/workspace/stream/streams. Substitua [TOKEN VALUE] pelo seu personal token, <workload-id> pelo ID do seu workload e a URL e o header pelos seus:
A fonte de dados workloads é Applications no Console, e o template 2 é Applications Event Collector. A API exige a chave headers: para não enviar nenhum header, defina-a como {}. A API responde 201 com o stream armazenado:
Guarde o id: ele identifica o stream em todas as requisições seguintes, como /v4/workspace/stream/streams/12347. Uma url com outro esquema é recusada com 32006 Invalid URL Scheme. Para ver todas as chaves do corpo, consulte Configurações do stream.
A API e o Console salvam o stream sem contatar a URL. Uma URL ou um header errado só aparece quando o stream envia. Uma ativação entra em vigor depois de um a dois minutos.
Confirme a entrega
Real-Time Events registra todos os envios de um stream, entregues ou não, com o status code que o endpoint retornou. Envie algumas requisições ao workload e espere cerca de um minuto: um stream envia um lote a cada 60 segundos, ou antes, quando chega a 2.000 linhas de log.
Para ler os envios com a API, consulte o dataset dataStreamedEvents da API GraphQL do Real-Time Events. Substitua as datas por um intervalo que cubra a ativação do stream:
A API responde 200 com um registro para cada envio, do mais recente para o mais antigo:
Um envio para um endpoint HTTP traz HTTP_POST em endpointType. Um statusCode 200 significa que o seu endpoint aceitou o lote, e streamedLines e dataStreamed mostram o tamanho dele em linhas de log e em bytes. Uma lista dataStreamedEvents vazia significa que o stream não enviou nada no intervalo. Para ver todos os campos, consulte Campos da API GraphQL do Real-Time Events.
Um status diferente de 200 é a resposta do seu endpoint, com duas exceções. 503 significa que o Data Stream encontrou o endpoint indisponível, e 504 significa que o endpoint não recebeu o lote em até 20 segundos. Uma URL que não aceita requisições POST responde a cada envio com o próprio erro, como 405. Para ver as causas, consulte Solucionar problemas de Data Stream.