Todos os produtos
Search
Central de documentação

Simple Log Service:Sintaxe de consulta baseada em varredura

Última atualização: Sep 22, 2026

A consulta baseada em varredura permite pesquisar logs por valores de campo sem configurar índices. Combinada com instruções SPL (Simple Log Service Processing Language), ela permite filtrar, transformar e analisar resultados diretamente dos dados brutos de log.

Como funciona

Ao executar uma consulta baseada em varredura, o SLS:

  1. Execute a instrução de pesquisa para recuperar logs.

    Importante

    A instrução de pesquisa no pipeline de primeiro nível depende de consultas baseadas em índices. Use * se nenhuma filtragem por índice for necessária. Por exemplo, antes de executar status:200 | WHERE userId = '123' | extend host=upper(hostname), crie um índice para o campo status, mas não para os campos userId ou hostname.

  2. Aplica instruções SPL aos resultados da pesquisa para filtrar, converter e analisar dados e, em seguida, retorna a saída final.

Sintaxe básica

A consulta baseada em varredura oferece suporte a SPL syntax. O SPL extrai informações estruturadas, executa operações em campos e filtra dados brutos. O SLS aceita cascatas de pipeline de vários níveis: o primeiro nível é o filtro de índice, seguido por instruções SPL nos níveis subsequentes.

Index-based search statement | <spl-cmd> ... | <spl-cmd> ...

Amostra de log

  • Campos brutos: rotulados com [R], aplicáveis à pesquisa por varredura.

  • Campos de índice: rotulados com [I], aplicáveis à pesquisa por índice.

[I] __topic__: nginx-access-log
[I] Status: 200
[I] Host: api.abc.com
[R] Method: PUT
[R] ClientIp: 192.168.1.1
[R] Payload: {"Item": "1122", "UserId": "112233", "Operation": "AddCart"}
[R] BeginTime: 1705029260
[R] EndTime: 1705028561
[R] RT: 87
[R] Uri: /request/path-3/file-1
[R] UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; ar) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Exemplos

Nota
  • Nas instruções SPL, as strings constantes ficam entre aspas simples ('), como em * | where ClientIp = '192.168.1.1'.

  • Se o nome de um campo incluir caracteres especiais, coloque-o entre aspas duplas ("), como em * | project-away "user-agent".

Filtrar por diferentes condições

  • Comparação de igualdade

    Status: 200 | where ClientIp = '192.168.1.1'
  • Pesquisa sem distinção entre maiúsculas e minúsculas

    __topic__: nginx-access-log | where lower(Method) != 'put'
  • Correspondência aproximada

    Status: 200 | where UserAgent like '%Macintosh%'
  • Comparação numérica

    Por padrão, os campos têm o tipo varchar. Converta-os para bigint ao comparar valores numéricos.

    Status: 200 |  where cast(RT as bigint) > 50
  • Correspondência de expressão regular

    # Find URIs that contain "path-number"
    Status: 200 | where regexp_like(Uri, 'path-\d+')

Calcular novos campos

Calcule novos campos a partir dos existentes usando a instrução extend instruction.

  • Extraia campos usando expressões regulares

    # Extract the file number from the Uri field
    * not Status: 200 | extend fileNumber=regexp_extract(Uri, 'file-(\d+)', 1)
  • Extraia campos de JSON

    Status:200 | extend Item = json_extract_scalar(Payload, '$.Item')
  • Extraia campos com base em um separador

    Status:200 | extend urlParam=split_part(Uri, '/', 3)
  • Calcule novos campos a partir de vários valores de campo

    # Calculate the time difference based on BeginTime and EndTime
    Status:200 | extend timeRange = cast(BeginTime as bigint) - cast(EndTime as bigint)

Manter, remover e renomear campos

  • Mantenha apenas campos específicos e remova os demais

    Status:200 | project Status, Uri
  • Remova campos específicos e mantenha os demais

    Status:200 | project-away UserAgent
  • Renomeie campos

    Status:200 | project-rename Latency=RT

Expandir dados não estruturados

  • Expanda todos os campos em JSON

    # Filter non-empty Payloads and expand all JSON fields
    __topic__: nginx-access-log | where Payload is not null | parse-json Payload
  • Expanda os campos JSON e descarte os originais

    status:200 
    | parse-json body 
    | project-away body
  • Extraia vários campos usando expressões regulares

    Status:200 | parse-regexp Uri, 'path-(\d+)/file-(\d+)' as pathIndex, fileIndex

Cascata de pipeline de vários níveis

Combine as operações acima em uma única instrução usando cascatas de pipeline de vários níveis, executadas em sequência.

Status:200 
| where Payload is not null 
| parse-json Payload 
| project-away Payload 
| where Host='api.qzzw.com' and cast(RT as bigint) > 80 
| extend timeRange=cast(BeginTime as bigint) - cast(EndTime as bigint)
| where timeRange > 500
| project UserId, Uri

Limites

  1. A execução de SPL em consultas baseadas em varredura tem limites. Para mais informações, consulte SPL syntax.

  2. Não há suporte para paginação aleatória.

Consulta baseada em índice versus consulta baseada em varredura

Item

Consulta baseada em índice

Consulta baseada em varredura

Sintaxe

Instrução de pesquisa. Para mais informações, consulte Search syntax and functions.

Instrução de pesquisa | Instrução SPL 1 | Instrução SPL 2 | .... Para mais informações, consulte SPL syntax.

Configuração de índice necessária

Sim.

A instrução de pesquisa baseada em índice requer índices, enquanto as outras instruções não.

Suporte a instruções analíticas

Sim.

Sim.

Suporte a paginação aleatória

Sim.

Não.

Há suporte apenas para paginação contínua (para frente ou para trás).

Histograma de log

Exibido com base nos resultados da instrução de pesquisa.

Exibido com base nos resultados da instrução de pesquisa e no progresso da varredura.

Operadores e funções

Oferece suporte a cálculos lógicos e matemáticos e a pesquisas aproximadas, mas não a funções SQL.

Para obter detalhes, consulte SPL instructions and functions e SPL-supported SQL functions.

Tipos de campo

Definidos pelos data types especificados nas configurações de índice.

O SPL trata todos os campos como texto, independentemente da configuração de índice. Para mais informações, consulte Data type conversion.

Tamanho do resultado

Configurável no console do SLS ou via SDK ou API REST. Máximo: 100.

A varredura para e retorna os resultados quando uma das seguintes condições é atendida:

  • A contagem de logs identificados atinge o limite de retorno especificado.

    Defina isso no console do SLS ou via SDK ou API REST.

  • A contagem de logs examinados excede o limite superior calculado automaticamente (padrão: 100.000, derivado dos resultados da instrução de pesquisa).

  • A duração da varredura excede 45 segundos.

Custos

São cobrados tráfego e armazenamento de índice. Para mais informações, consulte Pay-by-feature billable items.

A cobrança baseia-se no tráfego de varredura (volume de dados retornado pela varredura). A identificação de logs utiliza os resultados da consulta baseada em índice.