Gérer les exceptions en matière de mappage de données
Dans IBM Cloud Logs, vous pouvez obtenir une exception de mappage de données lorsque les données qui sont ingérées par le pipeline de données Informations de priorité détectent le même champ envoyé par différents enregistrements de log avec différents types.
Par exemple, dans un journal ingéré à partir d'une application, vous voyez une zone avec une chaîne de type et dans un autre journal généré par une application différente, la même zone est ajoutée sous la forme d'un nombre ou d'un type différent. Cela provoque une exception de mappage.
Une exception de mappage peut se produire si de nouveaux champs de journal sont ingérés avec des noms de champs qui ont été précédemment ingérés par IBM Cloud Logs, mais qui ont un type de valeur différent. Lorsque IBM Cloud Logs indexe les données ingérées, il tente de faire correspondre les champs à l'un des types suivants :
StringNumericObjectArray
Si, par exemple, le champ user a été ingéré et que la première valeur reçue est "nom d'utilisateur", IBM Cloud Logs créera un index de type string pour le champ user:
"user": “username”`
Si, par la suite, un nouveau journal est ingéré, il contient également un champ nommé "user" qui est formaté comme suit :
"user": {
“email”: “username@yourcompany.com”,
”login”: “username”`
}
Une exception est créée dans IBM Cloud Logs. Toute recherche sur Informations de priorité d'un champ nommé user devrait avoir une valeur string sur la base du premier journal ingéré avec un champ user.
Toute recherche sur Informations de priorité visant à trouver un user avec le type array (user.email ou user.login) n'aboutira à aucun résultat en raison de l'exception de mappage.
Vérification du nombre d'exceptions de mappage
Pour vérifier le nombre d'exceptions de mappage, dans la barre de navigation, cliquez sur l'icône Utilisation > Statistiques de mappage.
Vous pouvez obtenir le nombre total quotidien d'exceptions de mappage dans la section Exceptions de mappage-Nombre d'aujourd'hui.
Identification des zones avec des exceptions de mappage
Pour identifier les zones à l'origine des exceptions de mappage, vous pouvez exécuter la requête suivante:
_exists_:"coralogix.failed_reason"
Recherche de données comprenant des exceptions de cartographie
Lorsque vous effectuez une recherche dans Informations de priorité, les enregistrements qui comportent une exception de mappage ne peuvent être recherchés qu'à l'aide d'une requête en texte libre.
Si vous avez un panier de données associé à l'instance, vous pouvez rechercher des journaux dans Tous les journaux. Vous pouvez effectuer une recherche à l'aide d'un texte libre ou de paires clé/valeur.
Alertes
Les alertes ne sont pas affectées par les exceptions de mappage de données et continueront à être déclenchées normalement.
Correction des zones avec des exceptions de mappage
Pour corriger une exception de mappage, identifiez la zone qui signale une exception de mappage et les applications qui envoient la même zone avec des types différents. Ensuite, essayez de résoudre le problème à la source.
Pour identifier les exceptions en matière de cartographie, procédez comme suit :
-
Vérifiez dans l'interface utilisateur IBM Cloud Logs la présence d'une icône à côté du nombre de logs :
Icône de cartographie des exceptions En survolant l'icône, le nombre de journaux contenant des exceptions de cartographie dans les résultats de la requête pour la période sélectionnée s'affiche.
-
Pour identifier les journaux spécifiques qui n'ont pas été correctement indexés, activez l'option
Show Mapping errors
Sélectionner comment afficher les erreurs de cartographie -
Après avoir activé cette option, actualisez votre navigateur.
Un point d'exclamation s'affiche sur les champs qui présentent des exceptions de mappage et qui n'ont pas été indexés.
Détection des champs présentant des exceptions de cartographie Une autre façon d'identifier rapidement les champs présentant une exception de mappage est d'exécuter la requête :
_exists_: coralogix.failed_reason
Requête pour afficher les exceptions de mappage. Cette requête ne renvoie que les lignes de journal qui présentent une exception de mappage pour la période sélectionnée.
Vous pouvez résoudre les exceptions de mappage de deux manières :
-
Option 1 : Recherche sans indexation.
Si vous ne trouvez pas un champ lors d'une requête en raison d'exceptions de mappage, vous pouvez rechercher dans
All Logsau lieu dePriority Insights. Lors d'une recherche dansAll Logs, les exceptions d'indexation et de mappage sont contournées par la recherche. -
Option 2 : Fixer les enregistrements du journal lors de l'ingestion.
Vous pouvez corriger les nouveaux enregistrements qui sont ingérés avec les mêmes noms de champs mais avec des types de données différents.
-
Créer une expression RegEx pour remplacer le nom du champ par le préfixe approprié. Exemple :
field_obj- Si IBM Cloud Logs attend une chaîne, mais trouve un objet :
- Expression régulière :
("field"\s*:\s*{) - Remplacer par :
"field_obj":{
- Expression régulière :
field_arr- Si IBM Cloud Logs attend une chaîne, mais trouve un tableau :
- Expression régulière :
("field"\s*:\s*[) - Remplacer par :
"field_arr":[
- Expression régulière :
field_str- Si IBM Cloud Logs attend un objet, mais trouve une chaîne :
- Expression régulière :
("field"\s*:\s*") - Remplacer par :
"field_str":"
- Expression régulière :
-
Créer une règle d'analyse remplacement pour corriger les nouveaux enregistrements à l'aide du RegEx.
-