Хотя transaction
будет работать, это очень неэффективно
Этот stats
должен показать вам, что вы ищете (предполагая, что поля уже извлечены):
(index=ndxA OR index=ndxB) ID=* ("ADD" OR "REMOVE")
| stats min(_time) as when_added max(_time) as when_removed by ID
| eval when_added=strftime(when_added,"%c"), when_removed(when_removed,"%c")
Если у вас нет уже извлечены поля, вам нужно будет изменить таким образом (удалите "\D^
" в регулярное выражение, если значение идентификатора не находится в конце строки):
(index=ndxA OR index=ndxB) ("ADD" OR "REMOVE")
| rex field=_raw "ID \s+:\s+(?<ID>\d+)\D^"
| stats min(_time) as when_added max(_time) as when_removed by ID
| eval when_added=strftime(when_added,"%c"), when_removed(when_removed,"%c")