Envie logs para o Google BigQuery
Crie um stream que grava os logs das suas aplicações como linhas de uma tabela do Google BigQuery, no Azion Console ou com a Azion API, e confirme a entrega.
Você pode enviar os logs de um stream para uma tabela do Google BigQuery pelo Azion Console ou com a Azion API.
Data Stream envia as linhas de log como linhas de uma tabela de um dataset do BigQuery. No formulário do stream, o endpoint é definido no campo Connector, e o BigQuery é a opção Google BigQuery desse campo. Para ver todos os campos e os limites deles, consulte Endpoints.
O stream se autentica no Google com uma chave de service account que você fornece. Data Stream faz a autenticação OAuth 2.0 do Google e gera os JSON Web Tokens, então a chave é a única credencial que você define. 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.
- Um projeto do Google Cloud com a BigQuery API ativada e o ID do projeto.
- Faturamento ativado no projeto. O free tier não aceita linhas inseridas por streaming em uma tabela. O Google Cloud lista as tarifas dessas inserções em Streaming Inserts na tabela de preços do BigQuery.
- Um dataset no projeto e o ID dele. O ID do dataset diferencia maiúsculas de minúsculas.
- Uma tabela no dataset, com um schema para os dados que o stream envia, e o ID dela. O ID da tabela é o nome que você dá à tabela.
- Uma service account do Google Cloud com o papel BigQuery Admin e uma chave da service account no formato JSON. O Google Cloud baixa a chave como um arquivo JSON quando você a cria.
O arquivo da chave traz as chaves JSON abaixo. Data Stream usa todo o conteúdo do arquivo:
- 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 os valores da tabela pelos seus. Substitua [SERVICE ACCOUNT KEY] pelo conteúdo do arquivo da chave como uma única string JSON, com cada aspa e cada barra invertida do arquivo escapada com uma \:
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/12350. Para ver todas as chaves do corpo, consulte Configurações do stream.
A API e o Console salvam o stream sem contatar o Google Cloud. Um projeto, um dataset, uma tabela ou uma chave errada 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 o BigQuery traz BIG_QUERY em endpointType. Um statusCode 200 significa que o endpoint aceitou o lote, e 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 endpoint, e 503 significa que Data Stream encontrou o endpoint indisponível. Para ver as causas, consulte Solucionar problemas de Data Stream.