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% 削減されています。
セットアップ
このプロセッサーをセットアップするには:
- filter queryを定義します。詳細については、ログ検索構文を参照してください。
- フィルターに一致するログのみが処理されます。
- フィルタークエリに一致するかどうかに関係なく、すべてのログがパイプラインの次のステップに送信されます。
- XML をパースするログフィールドへのパスを入力します。サブフィールドを照合するには、パス表記
<OUTER_FIELD>.<INNER_FIELD> を使用します。下記のパス表記の例を参照してください。 - 必要に応じて、
Enter text key フィールドに、XML 属性が付加されたときにテキストノードに使用するキー名を入力します。テキストキーの例を参照してください。フィールドを空のままにすると、value がキー名として使用されます。 - 必要に応じて、属性が存在しない場合でもテキストキーを使用してオブジェクト内にテキストを格納する場合は Always use text key を選択します。
- 必要に応じて、XML 属性を含める場合は Include XML attributes をオンに切り替えます。その後、使用する属性プレフィックスを追加するかどうかを選択できます。属性プレフィックスの例を参照してください。フィールドを空のままにすると、元の属性キーが使用されます。
- 必要に応じて、データ型を数値、ブール値、または 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 を使用します。
参考資料