Este tópico descreve a sintaxe e os parâmetros das funções de processamento de campos. Também são apresentados exemplos de uso dessas funções.
Funções
|
Função |
Descrição |
|
Extrai o valor de um campo de um log. Se você especificar os nomes de vários campos para a função, ela retornará o valor do primeiro campo que existir no log. É possível usar esta função em conjunto com outras funções. Para obter mais informações, consulte Limpar dados chamando funções. |
|
|
Adiciona um campo ou define um novo valor para um campo existente. Esta função pode ser combinada com outras funções. Para obter mais informações, consulte Limpar dados chamando funções. |
|
|
Exclui os campos de log que atendem a uma condição especificada. Use esta função junto com outras funções quando necessário. Para obter mais informações, consulte Transformar dados JSON complexos. |
|
|
Mantém os campos de log que atendem a uma condição especificada. |
|
|
Agrupa campos de log e atribui esses campos como valor a um novo campo. |
|
|
Renomeia os campos de log que atendem a uma condição especificada. Mais indicado para cenários em que se utiliza esta função em conjunto com outras. Para obter mais informações, consulte Limpar dados chamando funções. |
v
A função v extrai o valor de um campo de um log. Caso você especifique os nomes de vários campos para a função, ela retorna o valor do primeiro campo existente no log.
-
Sintaxe
v(key, ..., default=None) -
Parâmetros
Parâmetro
Tipo
Obrigatório
Descrição
key
String
Sim
O nome do campo.
default
Arbitrário
Não
Se o campo não existir, a função retorna o valor deste parâmetro. Valor padrão: None.
-
Resposta
O valor do primeiro campo existente no log é retornado. Se o campo não existir, o valor do parâmetro default será retornado.
-
Exemplos
Atribua o valor do campo content ao campo test_content.
-
Log bruto:
content: hello -
Regra de transformação:
e_set("test_content", v("content")) -
Resultado:
content: hello test_content: hello
-
-
Referências
Esta função pode ser usada em conjunto com outras funções. Para obter mais informações, consulte Limpar dados chamando funções.
e_set
A função e_set adiciona um campo ou define um novo valor para um campo existente.
-
Sintaxe
e_set(key1, value1, key2, value2, mode="overwrite")ImportanteEspecifique os parâmetros key1 e value1 em pares.
-
Ao usar a função e_set para definir um valor para um campo de tempo, como F_TIME ou __time__, o valor deve ser uma string numérica.
e_set(F_TIME, "abc") # Invalid syntax. e_set(F_TIME, "12345678") # Valid syntax.
-
Parâmetros
Parâmetro
Tipo
Obrigatório
Descrição
key
String
Sim
O nome do novo campo que você deseja adicionar ou o nome do campo existente para o qual deseja definir um novo valor. É possível obter um nome com base em uma expressão de string. Para obter mais informações sobre como especificar nomes de campos especiais, consulte Tipos de eventos.
value
Arbitrário
Sim
O valor do novo campo ou o novo valor do campo existente. Se o valor deste parâmetro não for uma string, a função converterá automaticamente o valor para uma string. Por exemplo, se você definir este parâmetro com um valor do tipo tupla, lista ou dicionário, a função converterá automaticamente o valor para uma string JSON. Para obter mais informações sobre as regras de conversão de strings, consulte Conversão automática de tipo durante a atribuição.
NotaSe você definir este parâmetro como None, a função retornará o log bruto.
mode
String
Não
O modo de sobrescrita de campos. Valor padrão: overwrite. Para obter mais informações, consulte Verificação de extração de campo e modos de sobrescrita.
-
Resposta
O log atualizado é retornado.
-
Exemplos
-
Exemplo 1: Definir um valor fixo para um campo.
Adicione um novo campo chamado city e defina o valor como Shanghai.
e_set("city", "Shanghai") -
Exemplo 2: Extrair o valor de um campo existente e atribuir o valor a um novo campo.
Chame uma função de expressão para extrair o valor de um campo existente chamado ret e atribua o valor a um novo campo chamado result.
e_set("result", v("ret")) -
Exemplo 3: Definir um valor dinâmico para um campo.
Chame várias funções de expressão em sequência para obter o valor em minúsculas do primeiro campo existente e atribua o valor ao campo result.
e_set("result", str_lower(v("ret", "return"))) -
Exemplo 4: Definir valores diferentes para um campo.
-
Defina um valor para o campo event_type.
e_set("event_type", "login event", "event_info", "login host") -
Se o valor do campo ret for fail, defina o campo event_type como login failed event.
e_if(e_search('ret==fail'), e_set("event_type", "login failed event" ))
-
-
Referências
Esta função pode ser usada em conjunto com outras funções. Para obter mais informações, consulte Limpar dados chamando funções.
-
e_drop_fields
A função e_drop_fields exclui os campos de log que atendem a uma condição especificada.
-
Sintaxe
e_drop_fields(key1, key2, ....,regex=False) -
Parâmetros
Parâmetro
Tipo
Obrigatório
Descrição
key
String
Sim
O nome do campo de log. O valor deste parâmetro pode ser uma expressão regular. Se o nome do campo atender completamente à condição especificada, o campo será excluído. Caso contrário, o campo será mantido. Para obter mais informações sobre expressões regulares, consulte Expressões regulares.
Especifique pelo menos um campo de log.
regex
Booleano
Não
Se você definir este parâmetro como False, as expressões regulares não serão usadas para correspondência. Valor padrão: True.
-
Resposta
O log do qual o campo foi excluído é retornado.
-
Exemplos
Se o valor do campo content for 123, exclua os campos content e age.
-
Log bruto:
age: 18 content: 123 name: twiss -
Regra de transformação:
e_if(e_search("content==123"), e_drop_fields("content", "age",regex=True)) -
Resultado:
name: twiss
-
-
Referências
Esta função pode ser usada em conjunto com outras funções. Para obter mais informações, consulte Transformar dados JSON complexos.
e_keep_fields
A função e_keep_fields mantém os campos de log que atendem a uma condição especificada.
O Simple Log Service fornece metacampos integrados, como __time__ e __topic__. Se você não mantiver o campo __time__ ao chamar a função e_keep_fields, o horário do log será redefinido para o horário atual do sistema. Para evitar a redefinição do valor de um metacampo, adicione o metacampo a uma lista no formato F_TIME, F_META, F_TAGS, "f1", "f2". Para obter mais informações, consulte Identificadores fixos.
-
Sintaxe
e_keep_fields(key1, key2, ....,regex=False) -
Parâmetros
Parâmetro
Tipo
Obrigatório
Descrição
key
String
Sim
O nome do campo de log. O valor deste parâmetro pode ser uma expressão regular. Se o nome do campo atender completamente à condição especificada, o campo será mantido. Caso contrário, o campo será excluído.
Especifique pelo menos um campo de log.
regex
Booleano
Não
Se você definir este parâmetro como False, as expressões regulares não serão usadas para correspondência. Valor padrão: True.
-
Resposta
O log no qual o campo foi mantido é retornado.
-
Exemplos
Se o valor do campo content for 123, mantenha os campos content e age.
-
Log bruto:
age: 18 content: 123 name: twiss -
Regra de transformação:
e_if(e_search("content==123"), e_keep_fields("content", "age")) -
Resultado:
age: 18 content: 123
-
e_pack_fields
A função e_pack_fields agrupa campos de log e atribui esses campos como valor a um novo campo.
-
Sintaxe
e_pack_fields(output_fields,include=".*",exclude=None,drop_packed=True) -
Parâmetros
Parâmetro
Tipo
Obrigatório
Descrição
output_field
String
Sim
O nome do campo de saída. O valor do campo de saída está no formato JSON.
include
String
Não
A lista de permissões. Os campos que correspondem à expressão regular especificada na lista de permissões são agrupados. Valor padrão: ".*", o que indica que todos os campos em um log são correspondidos e agrupados. Para obter mais informações, consulte Expressões regulares.
exclude
String
Não
A lista de bloqueios. Os campos que correspondem à expressão regular especificada na lista de bloqueios não são agrupados. Valor padrão: None, o que indica que nenhum campo em um log é avaliado. Para obter mais informações, consulte Expressões regulares.
drop_packed
Booleano
Não
Especifica se os campos originais devem ser excluídos após o agrupamento. Valores válidos:
True: Os campos originais agrupados são excluídos no resultado. Este é o valor padrão.
False: Os campos originais agrupados não são excluídos no resultado.
-
Resposta
O log no qual os campos foram agrupados é retornado.
-
Exemplos
-
Exemplo 1: Agrupar todos os campos de log no campo test. Por padrão, os campos originais agrupados são excluídos no resultado.
-
Log bruto:
test1:123 test2:456 test3:789 -
Regra de transformação:
e_pack_fields("test") -
Resultado:
test:{"test1": "123", "test2": "456", "test3": "789"}
-
-
Exemplo 2: Agrupar todos os campos de log no campo test. Os campos originais agrupados não são excluídos no resultado.
-
Log bruto:
test1:123 test2:456 test3:789 -
Regra de transformação:
e_pack_fields("test",drop_packed=False) -
Resultado:
test:{"test1": "123", "test2": "456", "test3": "789"} test1:123 test2:456 test3:789
-
-
Exemplo 3: Agrupar os campos test e abcd no campo content. Os campos originais agrupados não são excluídos no resultado.
-
Log bruto:
abcd@#%:123 test:456 abcd:789 -
Regra de transformação:
e_pack_fields("content", include="\w+", drop_packed=False) -
Resultado:
abcd:789 abcd@#%:123 content:{"test": "456", "abcd": "789"} test:456
-
-
Exemplo 4: Agrupar campos de log brutos, excluindo os campos test e abcd, no campo content. Os campos originais agrupados são excluídos no resultado.
-
Log bruto:
abcd@#%:123 test:456 abcd:789 -
Regra de transformação:
e_pack_fields("content", exclude="\w+", drop_packed=True) -
Resultado:
abcd:789 content:{"abcd@#%": "123"} test:456
-
-
e_rename
A função e_rename renomeia os campos de log que atendem a uma condição especificada.
-
Sintaxe
e_rename("key1", "new key1", "key2", "new key2", ..., regex=False)NotaEspecifique os parâmetros key e new key em pares. Se a nova chave já existir no log bruto, nenhuma operação será executada.
-
Parâmetros
Parâmetro
Tipo
Obrigatório
Descrição
key
String
Sim
O nome do campo de log. O valor deste parâmetro pode ser uma expressão regular. Se o nome do campo atender completamente à condição especificada, o campo será renomeado. Para obter mais informações sobre expressões regulares, consulte Expressões regulares.
Especifique pelo menos um campo de log.
new key
String
Sim
O novo nome do campo.
regex
Booleano
Não
Se você definir este parâmetro como False, as expressões regulares não serão usadas para correspondência. Valor padrão: True.
-
Resposta
O campo renomeado é retornado.
-
Exemplos
-
Exemplo 1: Renomear o campo host para client_host.
-
Log bruto:
host: 1006 -
Regra de transformação:
e_rename("host","client_host") -
Resultado:
client_host: 1006
-
-
Exemplo 2: Não renomear um campo de log se nenhum campo atender à condição especificada.
-
Log bruto:
host: 1006 -
Regra de transformação:
e_rename("url","rename_url") -
Resultado:
host: 1006
-
-
Referências
Esta função pode ser usada em conjunto com outras funções. Para obter mais informações, consulte Limpar dados chamando funções.
-