Os plugins de processamento de campos adicionam, excluem, modificam, agrupam, expandem e extraem campos.
Exemplo de processamento de campos
A tabela a seguir detalha a estrutura de dados de um log bruto armazenado no SLS. Ela compara o uso do plugin de extração de campos no modo âncora com a ausência de plugin. O uso do plugin de extração de campos estrutura seus dados, simplificando consultas subsequentes.
|
Log bruto |
Sem plugin |
Modo âncora |
|
Content: "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}" |
Use o modo âncora para extrair valores de campo e defina os nomes dos campos como time, val_key1, val_key2, val_key3, value_key4_inner1 e value_key4_inner2.
|
Plugins de processamento de campos
O SLS oferece os seguintes tipos de plugins de processamento de campos. Selecione aquele que atende às suas necessidades.
|
Nome do plugin |
Tipo |
Descrição |
|
Extrair campos |
Estendido |
Suporta os seguintes modos:
|
|
Adicionar campos |
Estendido |
Adiciona novos campos a um log. |
|
Descartar campos |
Estendido |
Remove campos especificados. |
|
Renomear campos |
Estendido |
Renomeia campos. |
|
Agrupar campos |
Estendido |
Agrupa vários campos em um único objeto JSON. |
|
Expandir campos JSON |
Estendido |
Expande um campo de string JSON em campos separados. |
|
Mapear valores de campo |
Estendido |
Substitui ou transforma valores de campo com base em uma tabela de mapeamento. |
|
Substituir strings |
Estendido |
Executa substituição de texto completo, substituição baseada em expressão regular ou remoção de caracteres de escape em logs de texto. |
Ponto de entrada
Para usar um plugin do Logtail no processamento de logs, adicione-o ao criar ou modificar uma configuração do Logtail. Para mais informações, consulte Visão geral.
Limitações
Logs de texto e saída padrão de contêiner suportam apenas configuração baseada em formulário, enquanto todas as outras fontes de entrada suportam apenas configuração baseada em JSON.
-
As limitações a seguir se aplicam à extração de campos no modo regex.
O mecanismo de expressões regulares Go, baseado em RE2, apresenta as seguintes limitações em comparação ao mecanismo PCRE:
-
Diferenças na sintaxe de grupos nomeados
O Go usa a sintaxe
(?P<name>...)em vez da sintaxe PCRE(?<name>...). -
Padrões de expressão regular não suportados
Asserção:
(?=...),(?!...),(?<=...)e(?<!...).Expressão condicional:
(?(condition)true|false).Correspondência recursiva:
(?R)e(?0).Referência de sub-rotina:
(?&name)e(?P>name).Grupo atômico:
(?>...).
Ao depurar expressões regulares com ferramentas como Regex101, evite os padrões não suportados listados acima, pois o plugin não consegue processar logs que os utilizam.
-
Plugin de extração de campos
Extrai um campo de log usando modo regex, modo âncora, modo CSV, modo delimitador de caractere único, modo delimitador de múltiplos caracteres, modo par chave-valor ou modo Grok.
Modo Regex
Modo Âncora
Modo CSV
Modo de delimitador de caractere único
Modo de delimitador de múltiplos caracteres
Modo de pares chave-valor
Modo Grok
Plugin de adição de campos
Utilize o plugin processor_add_fields para adicionar campos de log. Este tópico descreve os parâmetros do plugin e fornece exemplos de configuração.
Configuration
O plugin processor_add_fields é suportado no Logtail 0.16.28 e versões posteriores.
Form
-
Parâmetros
Defina o Processor Type como Add Field. A tabela a seguir descreve os parâmetros.
Parameter
Description
Add Field
Pares chave-valor a serem adicionados como novos campos de log.
Ignore New Fields with Same Name
Quando ativado, impede que um novo campo sobrescreva um campo existente com o mesmo nome.
-
Exemplo de configuração
Este exemplo mostra como adicionar os campos
aaa2e aaa3.-
Log bruto
"aaa1":"value1" Configuração do plugin Logtail: Adicione dois campos:
aaa2com o valorvalue2eaaa3com o valorvalue3.-
Resultado
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3"
-
JSON
-
Parâmetros
Defina
typecomoprocessor_add_fields. A tabela a seguir descreve os parâmetros no objetodetail.Parameter
Type
Required
Description
Fields
Map
Sim
Campos de log a serem adicionados, especificados como um mapa de pares chave-valor.
IgnoreIfExist
Boolean
Não
Define o comportamento quando um campo a ser adicionado tem o mesmo nome de um campo existente.
-
true: O novo campo é ignorado.
-
false (padrão): O campo existente é sobrescrito pelo novo campo.
-
-
Exemplo de configuração
Este exemplo mostra como adicionar os campos aaa2 e aaa3.
-
Log bruto
"aaa1":"value1" -
Configuração do plugin Logtail
{ "processors":[ { "type":"processor_add_fields", "detail": { "Fields": { "aaa2": "value2", "aaa3": "value3" } } } ] } -
Resultado
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3"
-
Plugin de remoção de campos
O plugin processor_drop remove campos de log especificados. Este tópico aborda os parâmetros do plugin e fornece exemplos de configuração.
Configuration
O plugin processor_drop é suportado no Logtail 0.16.28 e versões posteriores.
Form
-
Parâmetros
Defina o Processor Type como Drop Field.
Parameter
Description
Drop Field
Campos de log a serem removidos. É possível especificar vários campos.
-
Exemplo de configuração
Para remover os campos
aaa1eaaa2de um log, configure o plugin da seguinte forma:-
Log bruto
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" Configuração do plugin Logtail: Remova os campos
aaa1eaaa2.-
Resultado
"aaa3":"value3"
-
JSON
-
Parâmetros
Defina type como processor_drop. A tabela a seguir descreve o parâmetro detail.
Parameter
Type
Required
Description
DropKeys
string array
Sim
Chaves dos campos de log a serem removidos. É possível especificar várias chaves.
-
Exemplo de configuração
Para remover os campos aaa1 e aaa2 de um log, configure o plugin da seguinte forma:
-
Log bruto
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" -
Configuração do plugin Logtail
{ "processors":[ { "type":"processor_drop", "detail": { "DropKeys": ["aaa1","aaa2"] } } ] } -
Resultado
"aaa3":"value3"
-
Plugin de renomeação de campos
Use o plugin processor_rename para renomear campos. Este tópico descreve os parâmetros e exemplos de configuração do plugin processor_rename.
Configuration
O plugin processor_rename requer o Logtail 0.16.28 ou posterior.
Console
-
Parâmetros
Defina o Processor Type como Rename Fields e configure os parâmetros descritos na tabela a seguir.
Parameter
Description
Original Field
Campo original a ser renomeado.
New Field
Novo nome para o campo.
Report Original Field Missing Error
Especifica se um erro deve ser relatado caso o campo original especificado não seja encontrado no log.
-
Exemplo
Este exemplo renomeia o campo
aaa1para bbb1 e o campo aaa2 para bbb2.-
Log bruto
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" Configuração do plugin Logtail: Renomeie
aaa1parabbb1eaaa2parabbb2.-
Resultado
"bbb1":"value1" "bbb2":"value2" "aaa3":"value3"
-
JSON
-
Parâmetros
Defina
typecomoprocessor_renamee configure os parâmetros do objetodetailconforme descrito na tabela a seguir.Parameter
Type
Required
Description
NoKeyErrorBoolean
Não
Especifica se um erro deve ser relatado caso o campo original especificado não seja encontrado no log.
-
true: Relata um erro.
-
false (padrão): Não relata erro.
SourceKeysString array
Sim
Campos originais a serem renomeados.
DestKeysString array
Sim
Novos nomes para os campos.
-
-
Exemplo
Este exemplo renomeia o campo
aaa1parabbb1e o campoaaa2parabbb2.-
Log bruto
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" -
Configuração do plugin Logtail
{ "processors":[ { "type":"processor_rename", "detail": { "SourceKeys": ["aaa1","aaa2"], "DestKeys": ["bbb1","bbb2"], "NoKeyError": true } } ] } -
Resultado
"bbb1":"value1" "bbb2":"value2" "aaa3":"value3"
-
Plugin de empacotamento de campos
Utilize o plugin processor_packjson para empacotar um ou mais campos de origem em um campo de destino como um objeto JSON. Este tópico descreve os parâmetros do plugin processor_packjson e fornece exemplos de configuração.
Configuration
O plugin processor_packjson é suportado no Logtail 0.16.28 e versões posteriores.
Console
-
Parâmetros
Defina o Processor Type como Encapsulate Fields. A tabela a seguir descreve os parâmetros.
Parameter
Description
Original Field
Campos de origem a serem empacotados.
New Field
Campo de destino para o objeto JSON empacotado.
Retain Original Field
Ao selecionar esta opção, os campos de origem são mantidos no log analisado.
Report Original Field Missing Error
Ao selecionar esta opção, o plugin relata um erro se um campo de origem especificado não for encontrado no log bruto.
-
Exemplo
Este exemplo mostra como empacotar os campos a e b em um campo de destino chamado d_key.
-
Log bruto
"a":"1" "b":"2" Configuração do plugin Logtail: Defina o Source Field como
aeb, e defina o Destination Field comod_key.-
Resultado
"a":"1" "b":"2" "d_key":"{\"a\":\"1\",\"b\":\"2\"}"
-
JSON
-
Parâmetros
Defina type como processor_packjson. A tabela a seguir descreve os parâmetros do objeto detail.
Parâmetro
Tipo
Obrigatório
Descrição
SourceKeys
String array
Sim
Os campos de origem a serem compactados.
DestKey
String
Não
O campo de destino para o objeto JSON compactado.
KeepSource
Boolean
Não
Define se os campos de origem devem ser mantidos no log analisado.
-
true (padrão): Os campos de origem são mantidos.
-
false: Os campos de origem são removidos após a compactação.
AlarmIfIncomplete
Boolean
Não
Indica se um erro deve ser relatado caso um campo de origem especificado não seja encontrado no log bruto.
-
true (padrão): Um erro é relatado.
-
false: Nenhum erro é relatado.
-
-
Exemplo
Este exemplo demonstra como compactar os campos a e b em um campo de destino chamado d_key.
-
Log bruto
"a":"1" "b":"2" -
Configuração do plugin do Logtail
{ "processors":[ { "type":"processor_packjson", "detail": { "SourceKeys": ["a","b"], "DestKey":"d_key", "KeepSource":true, "AlarmIfIncomplete":true } } ] } -
Resultado
"a":"1" "b":"2" "d_key":"{\"a\":\"1\",\"b\":\"2\"}"
-
Plugin de expansão de campo JSON
Utilize o plugin processor_json para expandir um campo JSON. Este tópico descreve os parâmetros do plugin processor_json e fornece exemplos de configuração.
Configuração
O plugin processor_json é suportado no Logtail 0.16.28 e versões posteriores.
Console
-
Parâmetros
Defina Processor Type como Expand JSON Field. A tabela a seguir descreve os parâmetros.
Parâmetro
Descrição
Original Field
Nome do campo de origem a ser expandido.
JSON Expansion Depth
Profundidade máxima para expansão do objeto JSON. O valor padrão é 0, o que significa que não há limite de profundidade. O valor 1 expande apenas os campos de nível superior.
Character to Concatenate Expanded Keys
Caractere utilizado para conectar chaves aninhadas. O valor padrão é o sublinhado (_).
Name Prefix of Expanded Keys
Prefixo para os nomes dos campos expandidos.
Expand Array
Define se arrays devem ser expandidos. Este parâmetro é suportado no Logtail 1.8.0 e versões posteriores.
Retain Original Field
Indica se o campo de origem deve ser mantido no log após a análise.
Report Original Field Missing Error
Especifica se um erro deve ser relatado quando o campo de origem definido não for encontrado no log bruto.
Use Name of Original Field as Name Prefix of Expanded Keys
Determina se o nome do campo de origem será usado como prefixo para todos os nomes de campos expandidos.
Retain Raw Logs If Parsing Fails
Define se o log bruto deve ser preservado em caso de falha na análise.
-
Exemplo
Neste cenário, o campo
s_keyé expandido usandojcomo prefixo personalizado e o nome do campo de origems_keycomo prefixo adicional para os nomes dos campos expandidos. Veja abaixo um exemplo de configuração:-
Log bruto (caminho do arquivo lido pelo Logtail)
{"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"} -
Configuração do plugin do Logtail
Defina SourceKey como
s_key, ative NoKeyError, defina ExpandDepth como0(ilimitado), configure ExpandConnector com um hífen (-), defina Prefix comoj, ative UseSourceKeyAsPrefix e desative KeepSource. -
Resultado
O log expandido contém os seguintes campos:
j_s_key-k1-k2-k3-k4-k51com o valor51,j_s_key-k1-k2-k3-k4-k52com o valor52ej_s_key-k1-k2-k3-k41com o valor41. O campo de origems_keyé removido.
-
JSON
-
Parâmetros
Defina
typecomoprocessor_json. A tabela a seguir descreve os parâmetros do objetodetail.Parâmetro
Tipo
Obrigatório
Descrição
SourceKey
String
Sim
Nome do campo de origem a ser expandido.
NoKeyError
Boolean
Não
Indica se um erro deve ser relatado caso o campo de origem não seja encontrado no log bruto.
-
true (padrão): Um erro é relatado.
-
false: Nenhum erro é relatado.
ExpandDepth
Int
Não
Profundidade máxima para expansão do objeto JSON. O valor padrão é 0, indicando ausência de limite de profundidade. O valor 1 expande somente os campos de nível superior.
ExpandConnector
String
Não
Caractere usado para conectar chaves aninhadas. O valor padrão é o sublinhado (_).
Prefix
String
Não
Prefixo a ser adicionado aos nomes dos novos campos após a expansão.
KeepSource
Boolean
Não
Define se o campo de origem deve ser mantido no log após a análise.
-
true (padrão): O campo de origem é mantido.
-
false: O campo de origem não é mantido.
UseSourceKeyAsPrefix
Boolean
Não
Especifica se o nome do campo de origem deve ser usado como prefixo para todos os nomes de campos expandidos.
KeepSourceIfParseError
Boolean
Não
Determina se o log bruto deve ser mantido caso a análise falhe.
-
true (padrão): O log bruto é mantido.
-
false: O log bruto não é mantido.
ExpandArray
Boolean
Não
Define se arrays devem ser expandidos. Este parâmetro é suportado no Logtail 1.8.0 e versões posteriores.
-
false (padrão): Arrays não são expandidos.
-
true: Expande arrays. Por exemplo,
{"k":["1","2"]}é expandido para{"k[0]":"1","k[1]":"2"}.
-
-
Exemplo
Neste cenário, o campo
s_keyé expandido usandojcomo prefixo personalizado e o nome do campo de origems_keycomo prefixo adicional para os nomes dos campos expandidos. Veja abaixo um exemplo de configuração:-
Log bruto (caminho do arquivo lido pelo Logtail)
{"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"} -
Configuração do plugin do Logtail
{ "processors":[ { "type":"processor_json", "detail": { "SourceKey": "s_key", "NoKeyError":true, "ExpandDepth":0, "ExpandConnector":"-", "Prefix":"j", "KeepSource": false, "UseSourceKeyAsPrefix": true } } ] } -
Resultado
O log expandido contém os seguintes campos:
j_s_key-k1-k2-k3-k4-k51com o valor51,j_s_key-k1-k2-k3-k4-k52com o valor52ej_s_key-k1-k2-k3-k41com o valor41. O campo de origems_keyé removido.
-
Plugin de mapeamento de valores de campo
O plugin processor_dict_map realiza o mapeamento de valores de campo. Este tópico descreve os parâmetros do plugin e fornece exemplos de configuração.
Configuração
Form
Defina processor type como Field Value Mapping. A tabela a seguir descreve os parâmetros.
|
Parâmetro |
Descrição |
|
Original Field |
Nome do campo de origem. |
|
New Field |
Nome do campo mapeado. |
|
Mapping Dictionary |
Dicionário que mapeia valores de origem para valores de destino. Para dicionários pequenos, configure os mapeamentos diretamente neste campo em vez de usar um arquivo de dicionário local. Importante
Se você definir Local Dictionary, a configuração de Mapping Dictionary será ignorada. |
|
Local Dictionary |
Arquivo CSV contendo o dicionário de mapeamento. No arquivo, os campos devem estar entre aspas duplas (") e separados por vírgulas (,). |
|
advanced parameters>process missing source field |
Quando selecionado, se um log bruto não tiver o campo de origem, o plugin preenche o campo mapeado com o valor de Value to Fill New Field. |
|
advanced parameters>Maximum Mapping Dictionary Size |
Número máximo de regras permitidas no dicionário de mapeamento. O padrão é 1.000. Reduza este valor para limitar o uso de memória do servidor pelo plugin. |
|
advanced parameters>Method to Process Raw Log |
Define o comportamento quando o campo mapeado já existe em um log bruto.
|
JSON
Defina type como processor_dict_map. A tabela a seguir descreve os parâmetros de detail.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
SourceKey |
String |
Sim |
Nome do campo de origem. |
|
MapDict |
Map |
Não |
Dicionário que mapeia valores de origem para valores de destino. Para dicionários pequenos, configure os mapeamentos diretamente aqui em vez de usar o parâmetro DictFilePath. Importante
Se você definir o parâmetro DictFilePath, o parâmetro MapDict será ignorado. |
|
DictFilePath |
String |
Não |
Caminho para um arquivo CSV contendo o dicionário de mapeamento. No arquivo, os campos devem estar entre aspas duplas (") e separados por vírgulas (,). |
|
DestKey |
String |
Não |
Nome do campo mapeado. |
|
HandleMissing |
Boolean |
Não |
Define se uma ação deve ser tomada quando o campo de origem estiver ausente em um log bruto.
|
|
Missing |
String |
Não |
Valor para o campo mapeado quando o campo de origem está ausente. O padrão é Este parâmetro entra em vigor quando HandleMissing é definido como true. |
|
MaxDictSize |
Int |
Não |
Número máximo de regras permitidas no dicionário de mapeamento. O padrão é 1.000. Reduza este valor para limitar o uso de memória do servidor pelo plugin. |
|
Mode |
String |
Não |
Define o comportamento quando o campo mapeado (especificado por DestKey) já existe em um log bruto.
|
Substituição de strings
Utilize o plugin processor_string_replace para realizar substituições baseadas em texto completo ou expressões regulares, ou ainda para remover caracteres de escape de logs brutos.
Configuração
O plugin processor_string_replace é compatível com o Logtail versão 1.6.0 e posteriores.
Form
Defina Processor Type como String Replacement. A tabela a seguir descreve os parâmetros.
|
Parâmetro |
Descrição |
|
Original Field |
Nome do campo source. |
|
Match Mode |
Método utilizado para localizar o conteúdo a ser substituído. Valores válidos:
|
|
Matched Content |
Padrão ou string a ser correspondido.
|
|
Match Mode |
String utilizada na substituição.
|
|
Match Mode |
Campo onde o resultado será armazenado. Se omitido, o campo source será sobrescrito. |
JSON
Configure type como processor_string_replace. A tabela abaixo detalha os parâmetros dentro do objeto detail.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
String |
Sim |
Nome do campo source. |
|
|
String |
Sim |
Método de substituição. Valores válidos:
|
|
|
String |
Não |
Padrão ou string para correspondência.
|
|
|
String |
Não |
String de substituição. O padrão é uma string vazia ("").
|
|
|
String |
Não |
Campo de destino para o resultado. Caso não especificado, o campo source será sobrescrito. |
Exemplos de configuração
Substituição de conteúdo via correspondência de string
Neste exemplo, utiliza-se correspondência de string para substituir Error: no campo content por uma string vazia.
Form
-
Log bruto:
"content": "2023-05-20 10:01:23 Error: Unable to connect to database." Configuração do plugin Logtail: Defina match mode como String Match, configure source field para
content, defina match content comoError:e deixe replacement content vazio.-
Resultado:
"content": "2023-05-20 10:01:23 Unable to connect to database."
JSON
-
Log bruto:
"content": "2023-05-20 10:01:23 Error: Unable to connect to database." -
Configuração do plugin Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "const", "Match": "Error: ", "ReplaceString": "" } } ] } -
Resultado:
"content": "2023-05-20 10:01:23 Unable to connect to database."
Substituição de conteúdo via expressão regular
O exemplo a seguir demonstra o uso de expressão regular para substituir strings no campo content que correspondam a \\u\w+\[\d{1,3};*\d{1,3}m|N/A por uma string vazia.
Form
-
Log bruto:
"content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r" Configuração do plugin Logtail: Selecione Regex Match em match mode, indique
contentcomo source field, preencha match content com\\u\w+\[\d{1,3};*\d{1,3}m|N/Ae mantenha replacement content vazio.-
Resultado:
"content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"
JSON
-
Log bruto:
"content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r" -
Configuração do plugin Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "regex", "Match": "\\\\u\\w+\\[\\d{1,3};*\\d{1,3}m|N/A", "ReplaceString": "" } } ] } -
Resultado:
"content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"
Substituição usando grupos de captura
Este cenário emprega um grupo de captura de expressão regular para trocar 16 no campo content por */24, salvando a saída em um novo campo chamado new_ip.
Ao utilizar grupos de captura, a string de substituição não pode conter {}. Adote formatos como $1 e $2.
Form
-
Log bruto:
"content": "10.10.239.16" Configuração do plugin Logtail: Escolha Regex Match para match mode, aponte source field para
content, use(\d.*\.)\d+em match content, defina replacement content como$1*/24e especifiquenew_ipno destination field.-
Resultado:
"content": "10.10.239.16", "new_ip": "10.10.239.*/24"
JSON
-
Log bruto:
"content": "10.10.239.16" -
Configuração do plugin Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "regex", "Match": "(\\d.*\\.)\\d+", "ReplaceString": "$1*/24", "DestKey": "new_ip" } } ] } -
Resultado:
"content": "10.10.239.16", "new_ip": "10.10.239.*/24"
Remoção de caracteres de escape
Form
-
Log bruto:
"content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}" Configuração do plugin Logtail: Configure match mode para Remove Escape Characters e defina source field como
content.-
Resultado:
"content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"
JSON
-
Log bruto:
"content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}" -
Configuração do plugin Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "unquote" } } ] } -
Resultado:
"content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"
Documentação relacionada
-
Configurar pipelines do Logtail via API:
-
Configurar plugins de processamento no console:
Coletar logs de contêineres do cluster (saída padrão e arquivos) usando CRD do Kubernetes