Todos os produtos
Search
Central de documentação

Simple Log Service:Sintaxe básica

Última atualização: Jul 03, 2026

Este tópico descreve a sintaxe básica da linguagem específica de domínio (DSL) do Simple Log Service.

Comentários

Inicie o comentário de uma etapa com o caractere cerquilha (#). Exemplos:

# Specify the default topic. This is a comment at the beginning of a step. 
e_set("__topic__", "access_log")   # Specify the default topic. This is a comment at the end of a step. 

Quebra de linha

Se a lista de parâmetros ou a string de uma função não couber em uma única linha, separe-as.

  • Se a lista de parâmetros contiver uma vírgula (,), divida-a imediatamente após esse caractere.

  • Para dividir uma string, use uma barra invertida (\) para indicar que ela continua na próxima linha.

Exemplos:

e_set("__topic__", "v1",
        "type", "v2",       # Use a comma (,) as a line feed. 
        "length", 100)
e_set("__topic__", "this is a very long long long .........." \
                            "......long text") # Use a backslash (\) as a line feed. 

Invocação de funções

  • Invoque as funções básicas

    e_set("abc", "xyz")
    Nota

    Ao escrever uma instrução de transformação de dados, os tipos de dados e o número de parâmetros passados a uma função devem obedecer à sintaxe dela.

  • Passe os parâmetros variáveis básicos

    str_replace(value, old [,new [,count] ]) 
    Nota

    Os parâmetros entre colchetes [] são opcionais. Por exemplo, os parâmetros new e count na função anterior são opcionais. Não passe esses parâmetros como parâmetros nomeados; informe-os em sequência.

    # Invalid examples
    str_replace("a-b-c", "-", new='%')
    str_replace("a-b-c", "-", new='%', count=1)
    # Valid examples
    str_replace("a-b-c", "-", '%')
    str_replace("a-b-c", "-", '%', 2)
  • Passe os parâmetros nomeados

    Um parâmetro com valor padrão é chamado de parâmetro nomeado. Por exemplo, o parâmetro mode na função e_set("abc", "xyz", mode="fill") é um parâmetro nomeado.

    • Em funções específicas, passe os valores dos parâmetros nomeados conforme as condições exigidas. Para mais informações, consulte a descrição de parâmetros de cada função.

    • Defina o valor de um parâmetro nomeado no formato mode=....

    • Passe múltiplos parâmetros nomeados em ordem aleatória. Por exemplo, e_csv("data", ["f1", "f2", "f3"], sep='#', quote="|") equivale a e_csv("data", ["f1", "f2", "f3"], quote="|", sep='#').

    Nota

    Os parâmetros nomeados devem vir após os parâmetros não nomeados.

  • Invoque uma combinação de funções

    Passe o valor retornado por uma função como valor de parâmetro para outra. Nesse caso, garanta que o valor retornado tenha o mesmo tipo de dados do parâmetro de destino. Exemplos:

    e_set("abc", v("xyz"))
    e_set("abc", str_lower(v("xyz")))
  • Parâmetros variáveis

    Algumas funções aceitam parâmetros variáveis. A função v("f1", ....) indica que é possível passar múltiplos parâmetros. Exemplo: v("f1", "f2", "f3").

    Caso seja necessário passar parâmetros variáveis e nomeados simultaneamente, posicione os nomeados após os variáveis. Exemplo: v("f1", "f2", "f3", "f4", mode="fill").

Operadores

  • Operadores de comparação

    A DSL do Simple Log Service suporta os seguintes operadores de comparação no modo padrão: >, <,>=, <=,! =,==. Alternativamente, utilize as funções de comparação fornecidas pelo Log Service para executar essas operações.

    • Uso de operadores de comparação

      # The following examples show how to use comparison operators. If the comparison condition is evaluated to True, the related log is discarded. 
      e_if(3 > 2, DROP)       # If 3 is greater than 2, the log is discarded. 
      e_if(3 < 2, DROP)       # If 3 is less than 2, the log is discarded. 
      e_if(3 >= 2, DROP)      # If 3 is greater than or equal to 2, the log is discarded. 
      e_if(3 <= 2, DROP)      # If 3 is less than or equal to 2, the log is discarded. 
      e_if(3 == 2, DROP)      # If 3 is equal to 2, the log is discarded. 
      e_if(3 != 2, DROP)      # If 3 is not equal to 2, the log is discarded. 
      e_if(1 < 2 < 3, DROP)   # If 2 is greater than 1 and 2 is less than 3, the log is discarded. 
      e_if(0 < ct_int(v('x')) < 100, DROP) # If the value of the x field is greater than 0 and less than 100, the log is discarded. 
    • Uso das funções de comparação do Simple Log Service

      Operação

      Função

      Exemplo

      Igual a (==)

      op_eq

      op_eq(v("name"), "xiao ming")

      Diferente de (!

      op_ne

      op_ne(v("name"), "xiao ming")

      Maior que (>)

      op_gt

      op_gt(ct_int(v("age")), )

      Maior ou igual a (>=)

      op_ge

      op_ge(ct_int(v("age")), 18)

      Menor que (<)

      op_lt

      op_lt(ct_int(v("age")), 18)

      Menor ou igual a (<=)

      op_le

      op_le(ct_int(v("age")), 18)

  • Operadores lógicos

    No modo padrão, a DSL do Simple Log Service suporta os operadores lógicos AND, OR e NOT. Também é possível utilizar as funções lógicas fornecidas pelo Simple Log Service para realizar essas operações.

    • Uso de operadores lógicos

      # The following examples show how to use logical operators. If the logical condition is evaluated to True, the related log is discarded. 
      e_if(True and False, DROP)     # False is returned.
      e_if(True or False, DROP)      # True is returned.
      e_if(True and not False, DROP) # True is returned.
      e_if(3 > 2 and 1 < 3, DROP)    # True is returned.
      e_if(ct_int(v('x')) > 100 or ct_int(v('y')) < 100, DROP) # If the value of the x field is greater than 100 or the value of the y field is less than 100, True is returned.
    • Uso das funções lógicas do Simple Log Service

      Operação

      Função

      Exemplo

      Operador lógico AND (and)

      op_and

      op_and(op_gt(v("age"), 18), op_lt(v("age"), 31))

      Operador lógico OR (or)

      op_or

      op_or(op_le(v("age"), 18), op_gt(v("age"), 65))

      Operador lógico NOT (not)

      op_not

      op_not(op_gt(v("age"), 18))

  • Outros operadores

    Certos operadores da DSL não podem ser usados diretamente no modo padrão. O Simple Log Service fornece funções específicas para executar essas operações. A tabela a seguir descreve os operadores e suas funções correspondentes.

    Operação

    Função

    Exemplo

    Adição (+)

    op_add

    op_add(v("age"), 2)

    Subtração (-)

    op_sub

    op_sub(v("age"), 2)

    Multiplicação (*)

    op_mul

    op_mul(v("size"), 2)

    Exponenciação (**)

    op_pow

    op_pow(v("size"), 2)

    Divisão inteira (//)

    op_div_floor

    op_div_floor(v("bytes"), 1024)

    Módulo (%)

    op_mod

    op_mod(v("age"), 10)

    Negação (-)

    op_neg

    op_neg(v("profit"))

    Verificação de existência (in)

    op_in

    op_in(["pass", "ok"], v("result"))

    Verificação de inexistência (not in)

    op_not_in

    op_not_in(["pass", "ok"], v("result"))

    Fatiamento de string ([ ...])

    op_slice

    op_slice(v("message"), 0, 20)

    Neste exemplo, o valor do campo a é 3600 * 6. Os exemplos a seguir mostram uma função inválida e uma válida para definir esse valor.

    # * 
    e_set("a", 3600 * 6)           # Invalid
    e_set("a", op_mul(3600, 6))    # Valid
    
    # /
    e_set("bytes_kb", v("bytes") / 1024)                 # Invalid
    e_set("bytes_kb", op_div_floor(v("bytes"), 1024))    # Valid

Avaliação de verdadeiro ou falso

Algumas funções verificam se uma condição é verdadeira ou falsa para determinar a lógica de processamento de eventos. Essa condição pode ser um valor fixo ou um valor retornado por uma função de expressão.

A orquestração da DSL do Simple Log Service permite avaliar qualquer tipo de dado como verdadeiro ou falso. A tabela abaixo descreve as regras para essa avaliação.

Tipo de dado

Verdadeiro

Falso

Booleano

True, true

False, false

None

N/A

Sempre falso

Numérico

Diferente de 0 ou 0,0

0 ou 0,0

String

Não vazia

String vazia

Bytes

Não vazio

Bytes vazios

Tupla

Não vazia

Tupla vazia

Lista

Não vazia

Lista vazia

Dicionário

Não vazio

Dicionário vazio

Tabela

Uma ou mais tabelas existem

Nenhuma tabela existe

Datetime

Um ou mais objetos datetime existem

Nenhum objeto datetime existe

As funções a seguir descartam logs com base nas condições avaliadas:

e_if(True, DROP)                     # If the value of the first parameter is True, the log is discarded. 
e_if(1, DROP)                        # If the value of the first parameter is 1, the log is discarded. 
e_if(v("abc"), DROP)                 #If the abc field exists and the value of this field is not empty, the log is discarded. 
e_if(str_isdigit(v("abc")), DROP)    # If the abc field exists and the value of this field contains only digits, the log is discarded.