Pourquoi ne vois-je pas les résultats de mes recherches sur Informations de priorité?

Lorsque j'effectue une recherche dans IBM® Cloud Logs en utilisant Informations de priorité, je n'obtiens pas les résultats escomptés. Je sais que les champs que je recherche dans mes journaux existent, mais IBM Cloud Logs ne semble pas les trouver avec mes recherches.

La recherche de valeurs de champs ne donne pas les résultats escomptés.

Le problème est souvent lié à une exception de cartographie.

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 :

  • String
  • Numeric
  • Object
  • Array

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.

Vous pouvez déterminer s'il existe des exceptions de mappage en utilisant l'interface utilisateur IBM Cloud Logs.

Pour identifier les exceptions en matière de cartographie, procédez comme suit :

  1. 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
    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.

  2. Pour identifier les journaux spécifiques qui n'ont pas été correctement indexés, activez l'option Show Mapping errors

     Sélection de l'affichage des erreurs de mappage. Cliquez sur Paramètres, puis sur Afficher les erreurs de mappage.
    Sélectionner comment afficher les erreurs de cartographie

  3. 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
    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
    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 Logs au lieu de Priority Insights. Lors d'une recherche dans All 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.

    1. 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":{
      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":[
      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":"
    2. Créer une règle d'analyse remplacement pour corriger les nouveaux enregistrements à l'aide du RegEx.