Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().
Disponible pour:

Logs

Présentation

Ce processeur analyse le langage de balisage extensible (XML) afin que les données puissent être traitées et envoyées vers différentes destinations. Le XML est un format de log utilisé pour stocker et transporter des données structurées. Il est organisé dans une structure arborescente pour représenter des informations imbriquées et utilise des tags et des attributs pour définir les données. Par exemple, voici des données XML utilisant uniquement des tags (<recipe>, <type> et <name>) et aucun attribut :

<recipe>
    <type>pasta</type>
    <name>Carbonara</name>
</recipe>

Voici un exemple XML où le tag recipe possède l’attribut type :

<recipe>
    <recipe type="pasta">
    <name>Carbonara</name>
</recipe>

L’image suivante montre un log d’événement Windows 4625 au format XML, à côté du même log analysé et généré au format JSON. En analysant le log XML, la taille de l’événement de log a été réduite d’environ 30 %.

Le log XML et le log analysé résultant au format JSON

Configuration

Pour configurer ce processeur :

  1. Définissez un filter query. Consultez Logs Search Syntax pour plus d’informations.
    • Seuls les logs correspondant au filtre sont traités.
    • Tous les logs, qu’ils correspondent ou non à la requête de filtrage, sont envoyés à l’étape suivante du pipeline.
  2. Saisissez le chemin d’accès au champ de log sur lequel vous souhaitez analyser le XML. Utilisez la notation de chemin <OUTER_FIELD>.<INNER_FIELD> pour faire correspondre les sous-champs. Consultez l’exemple de notation de chemin ci-dessous.
  3. Optionnellement, dans le champ Enter text key, saisissez le nom de clé à utiliser pour le nœud de texte lorsque des attributs XML sont ajoutés. Consultez l’exemple de clé de texte. Si le champ est laissé vide, value est utilisé comme nom de clé.
  4. Optionnellement, sélectionnez Always use text key si vous souhaitez stocker du texte à l’intérieur d’un objet en utilisant la clé de texte même lorsqu’aucun attribut n’existe.
  5. Optionnellement, activez Include XML attributes si vous souhaitez inclure les attributs XML. Vous pouvez ensuite choisir d’ajouter le préfixe d’attribut que vous souhaitez utiliser. Voir l’exemple de préfixe d’attribut. Si le champ est laissé vide, la clé d’attribut d’origine est utilisée.
  6. Optionnellement, sélectionnez si vous souhaitez convertir les types de données en nombres, booléens ou valeurs nulles.
    • Si Numbers est sélectionné, les nombres sont analysés en tant qu’entiers et nombres à virgule flottante.
    • Si Booleans est sélectionné, true et false sont analysés en tant que booléens.
    • Si Nulls est sélectionné, la chaîne null est analysée en tant que valeur nulle.

Exemple de notation de chemin

For this log structure example:

{
    "outer_key": {
        "inner_key": "inner_value",
        "a": {
            "double_inner_key": "double_inner_value",
            "b": "b value"
        },
        "c": "c value"
    },
    "d": "d value"
}

Follow these reference rules:

  • Use outer_key.inner_key to reference the key with the value inner_value.
  • Use outer_key.a.double_inner_key to reference the key with the value double_inner_value.

To specify a nested field with a literal . in the attribute key, wrap the key in escaped quotes in the search query. For example, the search query "service.status":disabled matches the event {"service.status": "disabled"}.

Toujours utiliser l’exemple de clé de texte

Si Always use text key est sélectionné, la clé de texte est la valeur par défaut (value), et vous avez le XML suivant :

<recipe>
    <recipe type="pasta">
    <name>Carbonara</name>
</recipe>

Le XML est converti en :

{
    "recipe": {
        "type": "pasta",
        "value": "Carbonara"
        }
}

Exemple de clé de texte

Si la clé est text et que vous avez le XML suivant :

<recipe>
    <recipe type="pasta">
    <name>Carbonara</name>
</recipe>

Le XML est converti en :

{
    "recipe": {
        "type": "pasta",
        "text": "Carbonara"
        }
}

Exemple de préfixe d’attribut

Si vous activez Include XML attributes, l’attribut est ajouté en tant que préfixe à chaque attribut XML. Par exemple, si le préfixe d’attribut est @ et que vous avez le XML suivant :

<recipe type="pasta">Carbonara</recipe>

Il est alors converti en JSON :

{
    "recipe": {
        "@type": "pasta",
        "<text key>": "Carbonara"
        }
}

Métriques de santé

Pour les métriques de composants et les métriques de tampon de processeur émises par tous les processeurs, consultez la documentation sur les Métriques d’utilisation des pipelines. Pour filtrer ou grouper par métriques de processeur d’analyse, utilisez le tag component_type:parse.

Pour aller plus loin