Configurações do stream
Consulte cada campo de um stream no Azion Console e na Azion API, com valores, padrões e limites, da fonte de dados ao endpoint.
Um stream é o objeto do Data Stream que coleta os logs de uma fonte de dados, formata cada linha de log com um template e envia as linhas para um endpoint. Azion Console e Azion API gravam o mesmo objeto, por isso cada tabela desta página mostra o rótulo do Console ao lado do campo da API. Os campos da API são escritos como caminhos dentro do corpo da requisição, como inputs[0].attributes.data_source.
Objeto do stream
O corpo JSON abaixo é um stream completo. Ele envia todos os eventos do Activity History, formatados pelo template Activity History Collector, para um bucket pelo protocolo S3:
Os três arrays carregam as partes do stream:
inputscontém uma fonte de dados.transformcontém um itemrender_templatee exatamente um entresamplingefilter_workloads. Cada item tem umtypeeattributes, entãotransform[sampling].attributes.rateindica a chaveattributes.ratedo item cujotypeésampling.outputscontém um endpoint. A API mantém a primeira entrada e descarta qualquer outra entrada sem retornar erro.
O caminho da API é /v4/workspace/stream/streams, e um stream específico é /v4/workspace/stream/streams/<stream-id>. Toda requisição leva o header Authorization: Token [TOKEN VALUE], com um personal token da conta. Um POST responde 201 com "state": "executed" e o objeto armazenado, que acrescenta os campos somente leitura id, last_editor, created, last_modified e product_version. Um PATCH altera apenas as chaves que você envia: {"active": true} ativa um stream e o retorna com a fonte de dados, os transforms e o endpoint inalterados. Um PUT exige as mesmas chaves obrigatórias de uma criação. Para cada operação, consulte a referência da Azion API. Para o token e a primeira requisição, consulte Azion API.
Um stream salvo não tem etapa de implantação. Uma mudança do estado ativo entra em vigor depois de um a dois minutos, e durante esse intervalo o stream que estava ativo continua enviando. Uma conta com 3.000 workloads ou mais gerencia seus streams apenas pela API, porque o Console bloqueia os formulários de criação e edição a partir desse número.
General
A seção General dá nome ao stream. A API exige name, inputs, transform e outputs em toda criação.
| Console | Campo da API | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|
| Name | name | string | Sim | nenhum | De 1 a 100 caracteres. Um nome mais longo é recusado com 10046. |
Input
A seção Input escolhe a fonte de dados da qual o stream coleta. Cada fonte de dados tem suas próprias variáveis, listadas em Fontes de dados e variáveis.
| Console | Campo da API | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|
| Data Source | inputs[0].attributes.data_source | enum | Sim | nenhum na API, Applications no Console | activity_history, workloads, functions_console ou waf. Qualquer outro valor é recusado com 10039. |
| nenhum | inputs[0].type | enum | Sim | nenhum | raw_logs, o único valor. |
O Console nomeia cada fonte de dados de forma diferente do seu slug na API:
| Opção no Console | Slug na API | Variáveis |
|---|---|---|
| Activity History | activity_history | Activity History |
| Applications | workloads | Applications |
| Functions | functions_console | Functions |
| WAF Events | waf | WAF Events |
Activity History carrega o Activity History da conta. Functions requer Functions na conta, e WAF Events requer Firewall com WAF.
Transform
A seção Transform define de quais workloads o stream coleta e qual parcela dos eventos deles ele envia.
O botão de opção Option escolhe o escopo. Cada escolha envia um item diferente:
| Option | O que o stream coleta | Item da API |
|---|---|---|
| All Current and Future Workloads, o padrão | Todos os workloads da conta, inclusive os criados depois. Mostra Sampling. | sampling |
| Filter Workloads | Apenas os workloads que você move para Chosen Workload. | filter_workloads |
Um stream carrega exatamente um dos dois itens. Sem nenhum deles, a API o recusa com 32002, qualquer que seja a fonte de dados. Com os dois, a API o recusa com 32007. A API não define padrão para os campos abaixo; os padrões são os do Console.
| Console | Campo da API | Padrão no Console | Valores |
|---|---|---|---|
| Workloads | transform[filter_workloads].attributes.workloads | Nenhum | Os workloads em Chosen Workload: um array de 1 a 600 IDs de workload, cada um de um workload da conta. Um ID de outra conta é recusado com 32003. |
| Sampling | transform[sampling] | Ligado | Ligado envia um objeto sampling. Desligado não envia nenhum e redefine Sampling Rate (%) para 100. |
| Sampling Rate (%) | transform[sampling].attributes.rate | 100 | Inteiro de 1 a 100, obrigatório em um item sampling: a porcentagem de eventos que o stream envia. 0 é recusado com 10050, e 101 com 10068. |
Os eventos do Activity History pertencem à conta, e não a um workload, por isso um stream de Activity History usa sampling. Em algumas contas, o Console mostra All Current and Future Domains e Filter Domains no lugar dessas opções.
Salvar um stream ativo com um item sampling desativa todos os outros streams da conta, e a API não retorna erro. Uma taxa de 100 conta como sampling. Antes de salvar, o Console mostra After activating and saving these settings, all other Data Streams will be disabled. e acrescenta When multiple Data Streams have different sampling rates, the system uses the lowest percentage. Para manter vários streams ativos ao mesmo tempo, dê a cada um deles um item filter_workloads em vez de sampling.
Render Template
A seção Render Template escolhe o template que transforma cada evento em uma linha de log. O Console agrupa as opções de Template em Azion’s Templates e Custom Templates, e mostra as variáveis do template selecionado no campo somente leitura Data Set.
| Console | Campo da API | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|
| Template | transform[render_template].attributes.template | inteiro, ID do template | Sim | nenhum na API, o primeiro template por nome no Console | O ID de um template predefinido ou de um template personalizado da conta. Sem o item, a requisição é recusada com 32008, e um ID que não existe, com 32004. |
A Azion oferece cinco templates predefinidos:
| Template predefinido | template |
|---|---|
| Activity History Collector | 251 |
| Applications Event Collector | 2 |
| Applications + WAF Event Collector | 184 |
| Functions Event Collector | 86 |
| WAF Event Collector | 4 |
Create Custom Template abre um drawer que cria um template personalizado na conta, listado em Custom Templates. Para as variáveis de cada template predefinido e o formato de um template personalizado, consulte Templates e payload.
Output
A seção Output define o endpoint que recebe as linhas de log. O Console chama o campo de Connector, e a API carrega a escolha em outputs[0].type.
| Console | Campo da API | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|
| Connector | outputs[0].type | enum | Sim | nenhum na API, Standard HTTP/HTTPS POST no Console | Um dos 11 valores abaixo. Os campos próprios do endpoint vão em outputs[0].attributes. |
| Opção no Console | type na API | Campos |
|---|---|---|
| Standard HTTP/HTTPS POST | standard | Standard HTTP/HTTPS POST |
| Apache Kafka | kafka | Apache Kafka |
| Simple Storage Service (S3) | s3 | Simple Storage Service (S3) |
| Google BigQuery | big_query | Google BigQuery |
| Elasticsearch | elasticsearch | Elasticsearch |
| Splunk | splunk | Splunk |
| AWS Kinesis Data Firehose | aws_kinesis_firehose | AWS Kinesis Data Firehose |
| Datadog | datadog | Datadog |
| IBM QRadar | qradar | IBM QRadar |
| Azure Monitor | azure_monitor | Azure Monitor |
| Azure Blob Storage | azure_blob_storage | Azure Blob Storage |
Status
A seção Status liga ou desliga o stream. A lista de streams mostra cada um como Active ou Inactive.
| Console | Campo da API | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|
| Active | active | boolean | Não | true, e ligado no Console | false para o stream e mantém as configurações dele. true o inicia de novo. |
Uma mudança do estado ativo entra em vigor depois de um a dois minutos. Ativar um stream que tem um item sampling desativa todos os outros streams da conta.
Permissões
As permissões da conta decidem quem pode alterar um stream. Para saber como as permissões são concedidas, consulte Teams and permissions. View Data Stream mostra os streams da conta, mas não permite criá-los, editá-los nem excluí-los. Criar, editar e excluir exigem Edit Data Stream.
Apenas com View Data Stream, o Console desativa + Stream e todos os campos do formulário, e a página de edição não mostra Save. Seis campos de chave são mascarados, com um ícone que revela o valor: Access Key, Secret Key e Object Key Prefix do S3; Access Key e Secret Key do AWS Kinesis Data Firehose; e Shared Key do Azure Monitor. Sem a permissão de edição, um ícone de cadeado substitui o ícone de revelar.
Erros
A API recusa cada requisição abaixo com HTTP 400, exceto 10002, com 401, e não cria nada. O array errors carrega o código, o título e um source.pointer para o campo; o número em um pointer é a posição do item no seu array.
| Código | Título | Pointer | Causa | O que fazer |
|---|---|---|---|---|
10002 | Not Authenticated | source.headers Authorization | A requisição não tem token: Authentication credentials were not provided. | Envie Authorization: Token [TOKEN VALUE]. |
10046 | Max Length | /data/name | name tem mais de 100 caracteres. | Reduza o nome para 100 caracteres ou menos. |
10039 | Invalid Choice | /data/inputs/0/attributes/data_source | data_source não é um slug conhecido, como "nope". | Envie activity_history, workloads, functions_console ou waf. |
32002 | Workloads Must Be Provided | /data/transform | transform não tem item sampling nem item filter_workloads: If sampling is disabled, workloads must be provided. | Adicione um item sampling, ou um item filter_workloads com IDs de workload. |
32007 | Sampling And Workloads Are Exclusive | /data/transform | transform tem um item sampling e um item filter_workloads: If sampling is enabled, workloads must not be provided. | Mantenha apenas um deles: sampling para todos os workloads, ou o filtro de workloads. |
32003 | Workloads Not Belong Account | /data/transform/0/attributes/workloads | Um ID de workload não pertence à conta. meta.invalid_workloads lista os IDs, como [1]. | Envie IDs de workloads da conta. |
10050 | Min Value | /data/transform/0/attributes/rate | rate é 0. | Envie uma taxa de 1 a 100. |
10068 | Max Value | /data/transform/0/attributes/rate | rate é maior que 100. | Envie uma taxa de 1 a 100. |
32008 | Template Must Be Provided | /data/transform | transform não tem item render_template. | Adicione um item render_template com um ID de template. |
32004 | Template Does Not Exist | /data/transform/1/attributes/template | template não é o ID de um template predefinido nem de um template personalizado da conta. | Envie um ID da lista de templates. |
10050 | Min Value | /data/outputs/0/max_size | Um endpoint standard tem max_size menor que 1000000. | Envie 1000000 ou mais, ou omita max_size. |
10059 | Required Field | /data/outputs/0/headers | Um endpoint standard não tem headers. | Envie headers, ou {} para nenhum. |
10059 | Required Field | /data/outputs/0/kafka_topic | Um endpoint kafka não tem kafka_topic. | Envie kafka_topic. |
32006 e 10032 | Invalid URL Scheme e Invalid Url | /data/outputs/0/url | Um endpoint standard tem uma url que não é uma URL http ou https, como not-a-url. | Envie uma URL completa que comece com http:// ou https://. |
Dois comportamentos não retornam erro. Uma segunda entrada em outputs é descartada, e o stream mantém a primeira. Salvar um stream ativo com um item sampling desativa todos os outros streams da conta.