Splunk: найдите разницу между 2 событиями - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть сервер с 2 API: / migrate / start и / migrate / end

Для каждого запроса я регистрирую userID (поле usrid = "") пользователя, использующего мой сервис для переносаи вызванный API (поле api = "").

Пользователи вызывают / переносят / запускают, затем вызывают / переносят / заканчивают.Я хотел бы написать упрощенный запрос, чтобы перечислить идентификаторы пользователей, которые переносятся, то есть те, которые вызвали / перенесли / запустили, но еще не вызвали / перенастроили / завершили.Как бы я написал этот запрос?

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Общий метод - получить все начальные и конечные события и сопоставить их по идентификатору пользователя.Возьмите самое последнее событие для каждого пользователя и выбросьте те, которые «мигрируют / заканчивают».Осталось все происходящие миграции.Как то так:

index = foo (api="/migrate/start" OR api="/migrate/end") 
| stats latest(api) by usrid 
| where api="/migrate/start"
0 голосов
/ 12 декабря 2018

Если в журналах есть только 2 вызова API (начало / конец), для этого можно использовать команду stats.

| your_search
| stats values(api) as api by usrid
| where api!="/migrate/end"

Это объединяет все вызовы API, сделанные для пользователя, и удаляетте, которые назвали /migrate/end

...