Real⁠-⁠Time Events

Preview

Real-Time Events é um produto de Observe que fornece dados brutos, logs, de outros produtos da Azion em tempo real.

Um conjunto de variáveis pré-organizadas estão disponíveis para fazer consultas manuais utilizando diferentes fontes de dados, permitindo que você obtenha informações extensas e detalhadas sobre comportamentos, ocorrências e desempenho de suas aplicações por meio de logs.

Você pode usar o Real-Time Events para:

  • Realizar pesquisas complexas.
  • Inspecionar possíveis ataques.
  • Executar investigações de debugging.
  • Analisar o desempenho de aplicações.
  • Analisar economia de aplicações e plataformas.
  • Aumentar a confiabilidade dos seus dados.
  • Diminuir o tempo de resolução de problemas.
  • Melhorar a entrega de conteúdo com base em dados reais.
TarefaGuia
Primeiros passosPrimeiros passos do Real-Time Events

O Real-Time Events armazena logs de eventos das últimas 168 horas, equivalente a 7 dias. Você pode consultar dados detalhados durante esse período.


Data Source representa o produto ou serviço da Azion que gerou os eventos que você consultará. Ao enviar uma consulta, o data source representa o índice de onde você deseja coletar dados.

A seleção de um data source no menu suspenso é obrigatória. Você pode escolher entre:

Cada data source tem um conjunto específico de variáveis disponíveis, representando as informações específicas que você pode receber em sua consulta. Veja os pré-requisitos e as variáveis de cada data source e suas descrições a seguir.

Requer: Data Streaming

Exibe os registros de eventos de dados enviados para seus endpoints configurados.

VariávelDescrição
$client_idIdentificador exclusivo de cliente Azion. Exemplo: 4529r
$data_streamedQuantidade total de dados transmitidos em bytes para o endpoint configurado (attempt/sink/send). Exemplo: 1270
$endpoint_typeTipo de endpoint usado no data streaming configurado. Pode ser: HTTP_POST, S3, ELASTICSEARCH, QRADAR, AWS_KINESIS_FIREHOSE, KAFKA, DATADOG, BIG_QUERY, SPLUNK, AZURE_MONITOR, AZURE_BLOB_STORAGE
$job_nameIdentificador exclusivo da Azion para o tipo de streaming criado. Exemplo: Data Streaming HTTP, Data Streaming WAF
$status_codeCódigo de status HTTP da requisição. Exemplo: 200
$streamed_linesQuantidade total de linhas transmitidas para o endpoint configurado. Valor máximo de 2000. Exemplo: 837
$timeData e hora em que os dados foram enviados para o endpoint configurado. Exemplo: 31 October, 2023, 21:10:55
$urlURL para a qual os dados do cliente foram enviados/sink. Exemplo: https://s3.amazonaws.com

Exibe os registros de eventos de requisições feitas para suas edge applications.

VariávelDescrição
$asnAutonomous System Number Allocation (ASN), que são redes de endereços IP gerenciadas por uma ou mais operadoras de rede que têm uma política de roteamento clara e exclusiva. Exemplo: AS52580
$bytes_sentNúmero de bytes enviados para o cliente. Exemplo: 191
$clientIdentificador exclusivo de cliente Azion. Exemplo: 4529r
$cityNome da cidade do cliente remoto detectado pela geolocalização de endereço IP. Exemplo: Chicago, Boston
$countryPaís do cliente remoto detectado pela geolocalização de endereço IP. Exemplo: United States, Russian Federation
$hostInformação de host enviada na linha da requisição. Armazena: nome do host da linha da requisição, ou o nome do host do cabeçalho Host, ou o nome do servidor correspondente à requisição. Exemplo: website.com.br
$http_referrerEndereço da página da qual o usuário fez a requisição. Exemplo: https://domain.com
$http_user_agentIdentificação da aplicação, do sistema operacional, do fornecedor e/ou da versão do usuário final. Valor do cabeçalho User-Agent. Exemplo: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
$proxy_statusCódigo de status de erro HTTP ou da origem quando nenhuma resposta é obtida da origem. Exemplo: 520. Em caso de cache, a resposta é -.
$remote_addrEndereço IP da origem que gerou a requisição. Exemplo: 54.233.153.15
$remote_portPorta remota da origem que gerou a requisição. Exemplo: 26081
$request_idIdentificador exclusivo da requisição. Exemplo: 5f222ae5938482c32a822dbf15e19f0f
$request_lengthTamanho da requisição em bytes, incluindo a linha da requisição, cabeçalhos e corpo. Exemplo: 1133
$request_methodMétodo da requisição. Exemplo: GET or POST
$request_timeTempo de processamento da requisição decorrido desde que os primeiros bytes foram lidos a partir do cliente com resolução de milisegundos. Exemplo: 1.19
$request_uriURI da requisição realizada pelo usuário, sem a informação do host e de protocolo e com argumentos. Exemplo: /v1?v=%20d boim
$schemeEsquema da requisição. Exemplo: HTTP ou HTTPS
$sent_http_content_typeCabeçalho Content-Type enviado na resposta da origem. Exemplo: text/html; charset=UTF-8
$server_addrEndereço IP do servidor que recebeu a requisição. Exemplo: 179.191.169.73
$server_portPorta remota do servidor que recebeu a requisição. Exemplo: 443
$server_protocolProtocolo da requisição. Exemplo: HTTP/1.1, HTTP/2.0, HTTP/3.0
$ssl_cipherString de cifra utilizada para estabelecimento de conexão TLS. Exemplo: TLS_AES_256_GCM_SHA384
$ssl_protocolProtocolo de uma conexão TLS estabelecida. Exemplo: TLS v1.2
$stateEstado do cliente detectado pela geolocalização de endereço IP. Exemplo: CA, RS
$statusCódigo de status HTTP da requisição. Exemplo: 200
$timeData e hora da requisição. Exemplo: 31 October, 2023, 21:10:55
$tracebackInforma os nomes das rules criadas pela Rules Engine da sua edge application ou do seu edge firewall executadas pela requisição. Exemplo: export NODE_OPTIONS="--max-old-space-size=4096"{\"edge_firewall\":[\"BODY DS\",\"WAF Rules\"]}
$upstream_addrEndereço IP e porta do cliente. Também pode armazenar múltiplos servidores ou grupos de servidores. Exemplo: 192.168.1.1:80. Quando a resposta é 127.0.0.1:1666, o upstream é o Azion Cells Runtime.
$upstream_bytes_receivedNúmero de bytes recebidos pelo edge da origem, se o conteúdo não estiver em cache. Exemplo: 8304
$upstream_bytes_sentNúmero de bytes enviados para a origem. Exemplo: 2733
$upstream_cache_statusStatus do cache local do edge. Pode ser: MISS, BYPASS, EXPIRED, STALE, UPDATING, REVALIDATED ou HIT
$upstream_response_timeTempo, em milissegundos, para o edge receber uma resposta padrão da origem, incluindo cabeçalhos e corpo. Exemplo: 0,876. Em caso de cache, a resposta é -.
$upstream_statusCódigo de status HTTP da origem. Se um servidor não pode ser selecionado, a variável mantém o código de status 502 (Bad Gateway). Exemplo: 200. Em caso de cache, a resposta é -.
$waf_attack_actionInforma a ação do WAF em relação à ação. Pode ser: $BLOCK, $PASS, $LEARNING_BLOCK ou $LEARNING_PASS
$waf_attack_familyInforma a classificação da família do ataque, que são categorias identificadas pelo WAF e classificadas de acordo com OWASP Top 10. Exemplo: $XSS. Veja as categorias.
$waf_blockInforma se o WAF bloqueou ou não a ação. 0 quando a ação não foi bloqueada e 1 quando a ação foi bloqueada. Quando estiver em Learning Mode, ele não será bloqueado, independentemente do retorno.
$waf_headersQuando os cabeçalhos de requisição enviados pelo usuário são analisados pelo módulo WAF e marcados como bloqueados com $waf_block = 1, ele contém uma string codificada em base64. Caso contrário, ele contém um caractere de traço -. Aplica-se aos modos WAF Learning ou Blocking.
$waf_learningInforma se o WAF está em Learning Mode. Pode ser 0 ou 1
$waf_matchLista de infrações encontradas na requisição do usuário final. É formada por elementos chave-valor: a chave é referente ao tipo de infração detectada; o valor apresenta a string que gerou a infração. Exemplo: 0:1311:BODY:ctl00_cph_jp1_dados_container_clientstate. Saiba mais sobre as Allowed Rules do WAF.
$waf_scoreInforma a pontuação que será incrementada em caso de match com as regras criadas para o WAF.

A variável $traceback pode ser utilizada se você tem ativada a opção de Debug rules em sua aplicação. Saiba mais sobre Como fazer o debug de regras criadas com Rules Engine.


Requer: Edge Functions

Exibe os registros de eventos de requisições feitas às suas edge functions.

VariávelDescrição
$client_idIdentificador exclusivo de cliente Azion. Exemplo: 4529r
$configuration_idIdentificador exclusivo de configuração Azion. Exemplo: 1595368520
$function_idNúmero identificador exclusivo da função Azion. Pode ser encontrado no caminho da URL da função no RTM ou via requisição de API. Exemplo: 1111
$message_contentCampo aberto com uma mensagem usada no console.log para debugging. Exemplo: [Send event to endpoint] Generic error handler; TypeError: error sending request for url (https://http-intake.logs.datadoghq.com/v1/input): connection closed before message completed
$message_levelMensagem com o tipo de nível para a função. Pode ser: MDN, DEBUG, INFO, ERROR, LOG ou WARN
$message_sourceFonte da mensagem. Pode ser: CONSOLE quando as mensagens são geradas pela API do Console ou RUNTIME quando está relacionado a uma mensagem de erro.
$timeData e hora da requisição. Exemplo: 31 October, 2023, 21:10:55

Exibe os registros de eventos de requisições feitas ao seu edge pulse utilizando os dados de desempenho medidos no navegador do usuário.

VariávelDescrição
$browserUUID gerado para o navegador do cliente usado na requisição. Exemplo: 2648698a-61cb-45ad-bbb5-c569313185d4
$client_idIdentificador exclusivo de cliente Azion. Exemplo: 4529r
$contentdownloadTempo levado para baixar o conteúdo solicitado. Exemplo: 5
$dnsTempo de resolução de DNS. Exemplo: 0
$downlinkRetorna o volume médio de dados recebidos em Mb/s. Exemplo: 10
$effectivetypeO tipo efetivo da conexão. Exemplo: 3g, 4g, 5g
$hostnameNome do host da URL atual. Exemplo: website.com.br
$locationhrefA URL completa da página atual. Exemplo: https://www.azion.com/pt-br/sobre-nos/
$navigation.contentDownloadTempo levado para baixar o conteúdo solicitado.
$navigation.dnsTempo de resolução de DNS.
$navigation.networkDurationDuração sem espera da consulta do navegador.
$navigation.PageLoadTimeTempo desde o início da navegação até o carregamento total da página.
$navigation.redirectCountNúmero de redirecionamentos desde a última navegação sem redirecionamento no contexto da navegação atual.
$navigation.renderTimeHora em que o navegador foi renderizado após a navegação.
$navigation.sslProtocolo de uma conexão TLS estabelecida.
$navigation.tcpProtocolo de Internet que retorna os dados que compõem a página.
$navigation.ttfbTempo até a chegada do primeiro byte da página solicitada.
$navigation.typeTipo de navegação sem redirecionamento.
$navigation.typeBackForwardTipo de navegação através do histórico da sessão.
$navigation.typeNavigateTipo da última navegação sem redirecionamento. Exemplo: clicando em um link, inserindo a URL na barra de endereço ou enviando um formulário.
$navigation.typeReloadTipo de navegação para a operação de recarga: quando a página foi recarregada.
$navigation.typeReservedQualquer tipo de navegação não definida por outras variáveis específicas (navigation.typeNavigate e navigation.typeReload).
$networkApi.downlinkVolume médio de dados recebidos em Mb/s.
$networkdurationDuração sem espera da consulta do navegador. Exemplo: 52
$pageloadtimeTempo desde o início da navegação até o carregamento total da página. Exemplo: 1267
$platformArquitetura do sistema operacional. Exemplo: Linux x86_64, Iphone
$redirectcountNúmero de redirecionamentos desde a última navegação sem redirecionamento no contexto da navegação atual. Exemplo: 0
$referrerEndereço da página da qual o usuário fez a requisição. A URL pelo qual o usuário chegou ao “locationHref”. Se o acesso se originou diretamente da página (por exemplo, através de um marcador), o valor será uma string vazia. Ele não fornece acesso DOM à página de referência. Exemplo: https://www.azion.com/pt-br/
$rendertimeQuantidade de tempo levada para renderizar a página. Exemplo: 1242
$rttInformação do Round-Trip Time (RTT). Exemplo: 250
$sslProtocolo de uma conexão TLS estabelecida. Exemplo: 0. Se a URL solicitada tiver uma conexão segura, retornará o tempo necessário para a autenticação.
$tcpProtocolo de Internet que retorna os dados que compõem a página. O tempo que leva para o handshake TCP é o tempo entre o início da conexão e o final da conexão. Exemplo: 0
$timeData e hora da requisição. Exemplo: 31 October, 2023, 21:10:55
$timestampData e hora da requisição. Exemplo: 31 October, 2023, 21:10:55
$ttfbTime To First Byte: tempo até a chegada do primeiro byte da página solicitada em milissegundos. Inclui 1 round trip de latência e o tempo que o servidor leva para preparar a resposta. Exemplo: 1
$typeTipo de navegação sem redirecionamento. Indica como a navegação para esta página/script foi feita. Exemplo: navigation, reload
$typebackforwardTipo de navegação através do histórico da sessão. Exemplo: 2
$typenavigateTipo da última navegação sem redirecionamento. Exemplo: clicando em um link, inserindo a URL na barra de endereço ou enviando um formulário. Exemplo: 0
$typereloadTipo de navegação para a operação de recarga: quando a página foi recarregada. Exemplo: 1
$typereservedQualquer tipo de navegação não definida por outras variáveis específicas (navigation.typeNavigate e navigation.typeReload). Exemplo: 1
$userAgentIdentificação da aplicação, do sistema operacional, do fornecedor e/ou da versão do usuário final. Valor do cabeçalho User-Agent. Exemplo: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
$versionA versão de Azion Log utilizada. Exemplo: v5

Requer: Web Application Firewall

Exibe os registros de eventos de requisição analisados pelo WAF para permitir que você mapeie a pontuação atribuída à requisição, as regras correspondentes do WAF, o motivo do bloqueio e muito mais.

VariávelDescrição
$attack_familyInforma a classificação da infração de WAF detectada na requisição e sua classificação de acordo com o OWASP Top 10. Exemplo: $XSS. Veja as categorias.
$blockedInforma se o WAF bloqueou ou não a ação. 0 quando a ação não foi bloqueada e 1 quando a ação foi bloqueada. Quando estiver em Learning Mode, ela não será bloqueada, independentemente do retorno.
$client_idIdentificador exclusivo de cliente Azion. Exemplo: 4529r
$geoloc_country_namePaís do cliente remoto detectado pela geolocalização de endereço IP. Exemplo: United States, Russian Federation
$hostInformação de host enviada na linha da requisição. Armazena: nome do host da linha da requisição, ou o nome do host do campo do cabeçalho Host, ou o nome do servidor correspondente à requisição. Exemplo: website.com.br
$remote_addressEndereço IP da origem que gerou a requisição. Exemplo: 54.233.153.15
$server_protocolO protocolo de conexão estabelecido. HTTP/1.1, HTTP/2.0, HTTP/3.0
$timeData e hora da requisição. Exemplo: 31 October, 2023, 21:10:55
$total_blockedInforma o número total de requisições bloqueadas pelo WAF. Exemplo: 2
$total_processedInforma o número total de requisições processadas pelo WAF. Exemplo: 1
$waf_actionInforma a ação do WAF em relação à ação. Pode ser: $BLOCK, $PASS, $LEARNING_BLOCK ou $LEARNING_PASS.
$waf_argsOs argumentos da requisição. Exemplo: quantidade_periodos=10
$waf_learningInforma se o WAF está em Learning Mode. Pode ser 0 ou 1
$waf_matchLista de infrações encontradas na requisição do usuário final. É formada por elementos chave-valor: a chave é referente ao tipo de infração detectada; o valor apresenta a string que gerou a infração. Exemplo: 0:1311:BODY:ctl00_cph_jp1_dados_container_clientstate. Saiba mais sobre as Allowed Rules do WAF.
$waf_scoreInforma a pontuação que será incrementada em caso de match com as regras criadas para o WAF.
$waf_serverNome do host usado na solicitação WAF. Exemplo: api-login.azion.com.br
$waf_uriURI usado na requisição do WAF. Exemplo: /access/v2/after-login

O Time Filter possibilita que você refine o período para o resultado da busca de eventos. Ele é selecionado por padrão para Last 15 minutes.

Você pode filtrar por:

  • Last 15 minutes (últimos 15 minutos)
  • Last 30 minutes (últimos 30 minutos)
  • Last 1 hour (última hora)
  • Last 3 hours (últimas 3 horas)
  • Last 6 hours (últimas 6 horas)
  • Last 12 hours (últimas 12 horas)
  • Last day (último dia)
  • Last 2 days (últimos 2 dias)
  • Last 3 days (últimos 3 dias)
  • Last 5 days (últimos 5 dias)
  • Last 7 days (últimos 7 dias)
  • Custom (personalizado)

Ao usar o campo Custom, você pode personalizar sua busca selecionando um intervalo de data e hora durante as últimas 168 horas.

Você pode alterar o intervalo de tempo quantas vezes quiser para investigar seus logs.


No campo Filter by, você filtra seus resultados de busca utilizando uma palavra-chave ou frase. Isso torna sua pesquisa mais específica e facilita a localização dos logs que você deseja analisar.

Ao fazer uma busca com um campo Filter by em branco, você obterá todos os registros existentes para as variáveis do data source selecionado disponíveis durante o filtro de tempo selecionado.

O campo usa a linguagem SQL para consultar resultados. Sua busca deve estar em um dos dois formatos:

key='value'

  • Correspondência exata, onde:
    • key: uma das variáveis do data source que você está consultando.
    • =: significa que a pesquisa deve consultar o valor passado exato.
    • value: um valor em formato de string ou integer.

key like '%value%'

  • Valor similar, onde:
    • key: uma das variáveis do data source que você está consultando.
    • like: significa que a busca deve consultar um valor semelhante ao passado.
    • value: um valor cercado em formato de string ou integer.

No segundo formato, você pode usar com valor:

  • %value%: filtra para valores que contêm todo o valor especificado.
  • %value: filtra os valores que terminam com o valor especificado.
  • value%: filtra os valores que começam com o valor especificado.

Você também pode fazer consultas mais complexas com as notações AND, OR e NOT para combinar os campos.

Alguns exemplos de consultas SQL:

VariávelConsulta SQL
$statusstatus='404'
$status + $schemestatus='200' AND scheme='https'
$endpoint_typeendpoint_type='datadog'
$geoloc_country_namegeoloc_country_name='Brazil'
$message_contentmessage_content like '%unavailable%'
$message_contentmessage_content like '%available%'

Depois de concluir os filtros e buscar resultados, seus registros aparecerão em uma tabela.

Cada linha representa um log diferente, o que equivale a uma ação diferente realizada pelo edge. Se você clicar em um dos logs, a linha se expandirá e fornecerá informações mais detalhadas sobre ele. As informações apresentadas variam de acordo com as especificidades de cada variável.

A interface pagina por uma determinada quantidade de resultados no início, mas continuará carregando todos os resultados disponíveis à medida que você percorrer a página.


Depois de realizar uma consulta, você pode usar o botão Refresh para atualizar os dados retornados. O Real-Time Events repetirá a última pesquisa realizada, atualizando os dados, mas mantendo o filtro de tempo e o filtro SQL que você utilizou.

Se você tinha o filtro de tempo para os últimos 30 minutos, por exemplo, e fosse 4h, você teria registros das 3h30 às 4h. Se você usar o botão Refresh às 16h45, terá registros das 16h15 às 16h45.

A busca continua retornando os resultados ordenados do mais recente ao mais antigo.


Dependendo do tamanho dos seus dados, o limite de consulta pode ser excedido. Neste caso, filtre os dados por um período de tempo menor.


Contribuidores