Gerenciamento de exceções de mapeamento de dados
Em IBM Cloud Logs, é possível obter uma exceção de mapeamento de dados quando os dados que são ingeridos por meio do pipeline de dados Insights prioritários detectam o mesmo campo enviado por diferentes registros de log com diferentes tipos.
Por exemplo, em um log alimentado de um aplicativo, você vê um campo com sequência de tipos e em outro log gerado por um aplicativo diferente, o mesmo campo é insgested como um número ou um tipo diferente. Isso causa uma exceção de mapeamento.
Uma exceção de mapeamento pode ocorrer se novos campos de registro forem ingeridos com nomes de campo que foram ingeridos anteriormente por IBM Cloud Logs, mas que têm um tipo de valor diferente. Quando o IBM Cloud Logs indexa os dados ingeridos, ele tenta mapear os campos para um dos seguintes tipos:
StringNumericObjectArray
Se, por exemplo, o campo user tiver sido ingerido e o primeiro valor recebido for "username", IBM Cloud Logs criará um índice do tipo string para o campo user:
"user": “username”`
Se, mais tarde, um novo registro for ingerido, ele também terá um campo chamado "user" (usuário), formatado assim:
"user": {
“email”: “username@yourcompany.com”,
”login”: “username”`
}
Uma exceção de mapeamento é criada em IBM Cloud Logs. Qualquer pesquisa em Insights prioritários que procure um campo chamado user deverá ter um valor string com base no primeiro registro ingerido com um campo user.
Qualquer pesquisa em Insights prioritários que procure um user com o tipo array (user.email ou user.login) não retornará nenhum resultado devido à exceção de mapeamento.
Verificando o número de exceções de mapeamento
Para verificar o número de exceções de mapeamento, na barra de navegação, clique no ícone Uso > Estatísticas de Mapeamento. É possível obter o número
total diário de exceções de mapeamento na seção Exceções de Mapeamento-Contagem de Hoje
Identificando campos com exceções de mapeamento
Para identificar os campos que causaram as exceções de mapeamento, é possível executar a seguinte consulta:
_exists_:"coralogix.failed_reason"
Pesquisa de dados que incluem exceções de mapeamento
Quando você pesquisa em Insights prioritários, os registros de log que incluem uma exceção de mapeamento só podem ser pesquisados por meio de uma consulta de texto livre.
Se você tiver um bucket de dados associado à instância, poderá pesquisar os registros em All Logs. Você pode pesquisar usando uma consulta de texto livre ou usando pares de chave:valor.
Alerta
Os alertas não são afetados pelas exceções de mapeamento de dados e continuarão a ser acionados normalmente.
Corrigindo campos com exceções de mapeamento
Para corrigir uma exceção de mapeamento, identifique o campo que relata uma exceção de mapeamento e os aplicativos que estão enviando o mesmo campo com diferentes tipos. Em seguida, tente corrigir o problema na origem
Para identificar exceções de mapeamento, conclua as etapas a seguir:
-
Verifique se há um ícone ao lado da contagem de registros na interface do usuário IBM Cloud Logs:
Icone de mapeamento de exceções Ao passar o mouse sobre o ícone, será exibido o número de registros com exceções de mapeamento nos resultados da consulta no período selecionado.
-
Para identificar os logs específicos que não foram indexados corretamente, ative a opção
Show Mapping errors:
Seleção de como mostrar erros de mapeamento -
Depois de ativar essa opção, atualize seu navegador.
Um ponto de exclamação será exibido nos campos que têm exceções de mapeamento e não foram indexados.
Registro de campos com exceções de mapeamento Outra maneira de identificar rapidamente quais campos têm uma exceção de mapeamento é executar a consulta:
_exists_: coralogix.failed_reason
Consulta para mostrar exceções de mapeamento. Essa consulta retornará apenas as linhas de registro que têm uma exceção de mapeamento para o período de tempo selecionado.
Há duas maneiras de resolver exceções de mapeamento:
-
Opção 1: Pesquisar sem indexação.
Se você não encontrar um campo ao fazer a consulta devido a exceções de mapeamento, poderá pesquisar em
All Logsem vez dePriority Insights. Ao pesquisar emAll Logs, as exceções de indexação e mapeamento são ignoradas pela pesquisa. -
Opção 2: Corrigir registros de log na ingestão.
É possível corrigir novos registros de log que estão sendo ingeridos com os mesmos nomes de campo, mas com tipos de dados diferentes.
-
Crie uma expressão RegEx para substituir o nome do campo pelo sufixo apropriado. Por exemplo:
field_obj- Se IBM Cloud Logs estiver esperando uma cadeia de caracteres, mas encontrou um objeto:
- Expressão regular:
("field"\s*:\s*{) - Substituir por:
"field_obj":{
- Expressão regular:
field_arr- Se IBM Cloud Logs estiver esperando uma string, mas encontrou uma matriz:
- Expressão regular:
("field"\s*:\s*[) - Substituir por:
"field_arr":[
- Expressão regular:
field_str- Se IBM Cloud Logs estiver esperando um objeto, mas encontrou uma cadeia de caracteres:
- Expressão regular:
("field"\s*:\s*") - Substituir por:
"field_str":"
- Expressão regular:
-
Crie uma regra de substituição para corrigir novos registros usando o RegEx.
-