Envie logs para o AWS Kinesis Data Firehose
Crie um stream que envia os logs das suas aplicações para um delivery stream do Amazon Kinesis Data Firehose, pelo Azion Console ou pela Azion API.
Você pode enviar os logs de um stream para um delivery stream do Amazon Kinesis Data Firehose pelo Azion Console ou com a Azion API. Para gravar os logs diretamente em um bucket do Amazon S3, sem um delivery stream no caminho, consulte Envie logs para o Amazon S3.
O Data Stream envia as linhas de log ao delivery stream em lotes. No formulário do stream, o endpoint é definido no campo Connector, e a opção do Kinesis nesse campo é AWS Kinesis Data Firehose. Para cada campo e os respectivos limites, consulte Endpoints.
O exemplo coleta as requisições de um workload com a fonte de dados Applications.
Selecione sua 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 conhecer as permissões, consulte Configurações do stream.
- Um workload na conta que receba requisições.
- Uma conta AWS com um delivery stream do Amazon Kinesis Data Firehose. O delivery stream precisa usar Direct PUT como origem e precisa de um destino, como um bucket do Amazon S3.
- O nome do delivery stream, com até 64 caracteres.
- O código da região onde o delivery stream roda, como
us-east-1. - Uma access key da AWS: um access key ID e a secret access key correspondente, criados no AWS Identity and Access Management (IAM).
- Acesso ao Azion Console. Para entrar, consulte Acessar Azion Console.
Crie o stream
Um filtro de workloads limita o stream ao workload que você escolher. O sampling desativaria os seus outros streams, e um filtro de workloads os mantém 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 os valores do delivery stream pelos seus:
A fonte de dados workloads é Applications no Console, e o template 2 é Applications Event Collector. 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/12353. Para cada chave do corpo, consulte Configurações do stream.
A API e o Console salvam o stream sem contatar a AWS. Um nome de delivery stream, uma região ou uma access key errados só aparecem quando o stream faz um envio. Uma ativação entra em vigor depois de um a dois minutos.
Confirme a entrega
O Real-Time Events registra cada envio de um stream, entregue ou não, com o status code que o endpoint retornou. Envie algumas requisições ao workload e aguarde cerca de um minuto. Um stream envia um lote ao Kinesis a cada 60 segundos, ou antes, quando chega a 500 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 ao Kinesis traz AWS_KINESIS_FIREHOSE em endpointType. Um statusCode 200 significa que o endpoint aceitou o lote, e streamedLines e dataStreamed dão o tamanho dele em linhas de log e em bytes. Uma lista dataStreamedEvents vazia significa que o stream não fez envios no intervalo. Para cada campo, consulte Campos GraphQL do Real-Time Events.
Um status diferente de 200 é a resposta do endpoint, e 503 significa que o Data Stream encontrou o endpoint indisponível. Para conhecer as causas, consulte Solucionar problemas de Data Stream.