This product is not supported for your selected
Datadog site. (
).
概要
このプロセッサは、ネストされた配列を個別のイベントに分割することで、配列内のデータをクエリ、フィルタリング、アラート、可視化できるようにします。配列はすでに解析済みである必要があります。たとえば、このプロセッサは [item_1, item_2] を処理できますが、"[item_1, item2]" は処理できません。配列内の項目は、JSON オブジェクト、文字列、整数、浮動小数点数、またはブール値にすることができます。変更されていないすべてのフィールドが子イベントに追加されます。たとえば、以下の項目を Observability Pipelines Worker に送信する場合、
{
"host": "my-host",
"env": "prod",
"batched_items": [item_1, item_2]
}
Split Array プロセッサを使用して、batched_items 内の各項目を個別のイベントとして送信します。
{
"host": "my-host",
"env": "prod",
"batched_items": item_1
}
{
"host": "my-host",
"env": "prod",
"batched_items": item_2
}
より詳細な例については、配列分割の例を参照してください。
セットアップ
このプロセッサを設定するには、
Manage arrays to splitをクリックして分割する配列を追加するか、分割する既存の配列を編集します。サイドパネルが開きます。
- まだ配列を作成していない場合は、以下の新しい配列を追加セクションの説明に従って配列パラメータを入力してください。
- すでに配列を作成済みの場合は、テーブル内の配列の行をクリックして編集または削除します。検索バーを使用して特定の配列を見つけ、その配列を選択して編集または削除します。Add Array to Split をクリックして新しい配列を追加します。
新しい配列を追加
- filter query を定義します。詳細については、ログ検索構文を参照してください。
- フィルターに一致するログのみが処理されます。
- フィルタークエリに一致するかどうかにかかわらず、すべてのログがパイプラインの次のステップに送信されます。
- 配列フィールドへのパスを入力します。サブフィールドに一致させるには、パス表記
<OUTER_FIELD>.<INNER_FIELD> を使用します。以下のパス表記の例を参照してください。 - Save をクリックします。
配列分割の例
これはイベントの例です。
{
"ddtags": ["tag1", "tag2"],
"host": "my-host",
"env": "prod",
"message": {
"isMessage": true,
"myfield" : {
"timestamp":14500000,
"firstarray":["one", 2]
},
},
"secondarray": [
{
"some":"json",
"Object":"works"
}, 44]
}
プロセッサが配列 "message.myfield.firstarray" と "secondarray" を分割する場合、"message.myfield.firstarray" と "secondarray", の値がそれぞれの元の配列の単一の項目になる点を除いて、親イベントと同一の子イベントを出力します。各子イベントは2つの配列から取得した項目の一意の組み合わせであるため、この例では4つの子イベント (2項目 * 2項目 = 4通りの組み合わせ) が作成されます。
{
"ddtags": ["tag1", "tag2"],
"host": "my-host",
"env": "prod",
"message": {
"isMessage": true,
"myfield" : {"timestamp":14500000, "firstarray":"one"},
},
"secondarray": {
"some":"json",
"Object":"works"
}
}
{
"ddtags": ["tag1", "tag2"],
"host": "my-host",
"env": "prod",
"message": {
"isMessage": true,
"myfield" : {"timestamp":14500000, "firstarray":"one"},
},
"secondarray": 44
}
{
"ddtags": ["tag1", "tag2"],
"host": "my-host",
"env": "prod",
"message": {
"isMessage": true,
"myfield" : {"timestamp":14500000, "firstarray":2},
},
"secondarray": {
"some":"json",
"object":"works"
}
}
{
"ddtags": ["tag1", "tag2"],
"host": "my-host",
"env": "prod",
"message": {
"isMessage": true,
"myfield" : {"timestamp":14500000, "firstarray":2},
},
"secondarray": 44
}
パス表記の例
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"}.