経過プラグインを使用して時間を計算し、プラグインを集計してから表示しています。経過フィルターにカスタム フィールドを追加しました。以下で確認できます。
add_field => {
"status" => "Status"
"User" => "%{byUser}"
}
1 つは静的で、もう 1 つはイベントに伴う動的です。logstash の出力では、動的な値ではなく静的な値のみが表示されます。
動的な場合は %{byUser} と表示されます。しかし、タスク ID とステータス フィールドは問題なく機能し、適切な値が得られました。
理由はありますか?
もう少しコード
elapsed {
unique_id_field => "assetId"
start_tag => "tag1:tag2"
end_tag => "tag3:tag4"
add_field => {
"wasInStatus" => "tag3"
"User" => "%{byUser}"
}
add_tag => ["CustomTag"]
}
グルク入力:
grok {
match => [
"message", "%{TIMESTAMP_ISO8601:timestamp} %{NUMBER:assetId} %{WORD:event}:%{WORD:event1} User:%{USERNAME:byUser}"]
if "CustomTag" in [tags] and "elapsed" in [tags] {
aggregate {
task_id => "%{assetId}"
code => "event.to_hash.merge!(map)"
map_action => "create_or_update"
}
}
問題は次のものに関連しています: 経過フィルタ:
new_event_on_match => true/false
new_event_on_match を false に変更すると、パイプラインで修正された問題が true になりましたが、それでもなぜか疑問に思います。