This product is not supported for your selected Datadog site. ().
利用可能な対象:

ログ

概要

このプロセッサーは Extensible Markup Language (XML) をパースし、データを処理してさまざまな送信先に送信できるようにします。XML は、構造化データを保存および転送するために使用されるログ形式です。ツリーのような構造で構成されており、ネストされた情報を表現し、タグと属性を使用してデータを定義します。たとえば、次の XML データではタグ (<recipe>、<type>、<name>) のみを使用しており、属性はありません。

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

次の XML の例では、タグ recipe に属性 type があります。

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

次の画像は、XML 形式の Windows イベント 4625 のログと、それをパースして JSON 形式で出力した同じログを示しています。XML ログをパースすることで、ログイベントのサイズが約 30% 削減されています。

XML ログとそれをパースした JSON 形式のログ

セットアップ

このプロセッサーをセットアップするには:

  1. filter queryを定義します。詳細については、ログ検索構文を参照してください。
    • フィルターに一致するログのみが処理されます。
    • フィルタークエリに一致するかどうかに関係なく、すべてのログがパイプラインの次のステップに送信されます。
  2. XML をパースするログフィールドへのパスを入力します。サブフィールドを照合するには、パス表記 <OUTER_FIELD>.<INNER_FIELD> を使用します。下記のパス表記の例を参照してください。
  3. 必要に応じて、Enter text key フィールドに、XML 属性が付加されたときにテキストノードに使用するキー名を入力します。テキストキーの例を参照してください。フィールドを空のままにすると、value がキー名として使用されます。
  4. 必要に応じて、属性が存在しない場合でもテキストキーを使用してオブジェクト内にテキストを格納する場合は Always use text key を選択します。
  5. 必要に応じて、XML 属性を含める場合は Include XML attributes をオンに切り替えます。その後、使用する属性プレフィックスを追加するかどうかを選択できます。属性プレフィックスの例を参照してください。フィールドを空のままにすると、元の属性キーが使用されます。
  6. 必要に応じて、データ型を数値、ブール値、または null に変換するかどうかを選択します。
    • Numbers が選択されている場合、数値が整数および浮動小数点数としてパースされます。
    • Booleans が選択されている場合、true および false がブール値としてパースされます。
    • Nulls が選択されている場合、文字列 null が null としてパースされます。

パス表記の例

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"}.

[Always use text key] (常にテキストキーを使用する) の例

Always use text key が選択されている場合に、テキストキーがデフォルト (value) で、次の XML があるとします。

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

この XML は次のように変換されます。

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

テキストキーの例

キーが text で、次の XML があるとします。

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

この XML は次のように変換されます。

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

属性プレフィックスの例

Include XML attributes を有効にすると、属性が各 XML 属性にプレフィックスとして追加されます。たとえば、属性プレフィックスが @ で、次の XML があるとします。

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

この場合、JSON に次のように変換されます。

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

ヘルスメトリクス

すべてのプロセッサーから出力されるコンポーネントメトリクスおよびプロセッサーバッファメトリクスについては、Pipelines 使用状況メトリクスのドキュメントを参照してください。解析プロセッサーのメトリクスでフィルタリングまたはグループ化するには、タグ component_type:parse を使用します。

参考資料