Объедините два запроса Splunk без предопределенных полей - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь присоединиться к 2 разрозненным запросам. Однако в этом случае общая строка между двумя запросами не является предопределенным дополнительным полем и регистрируется другим способом. Я создал регулярное выражение, которое индивидуально идентифицирует строку, но когда я пытаюсь объединить, используя соединение, я не получаю результат.

У меня есть такие журналы -

Логлайн 1 -

21-04-2019 11:01:02.001 server1 app1    1023456789 1205265352567565 1234567Z-1234-1234-1234-123456789123    Application Completed 

Logline 2 -

21-04-2019 11:00:00.000 journey_ends server1    app1 1035625855585989 .....(lots of text) commonID:1234567Z-1234-1234-1234-123456789123 .....(lots of text) status(value) OK

второй логлайн также может быть NOTOK

Logline 2 -

21-04-2019 11:00:00.000 journey_ends server1    app1 1035625855585989 .....(lots of text) commonID:1234567Z-1234-1234-1234-123456789123 .....(lots of text) status(value) NOTOK 

Я пробовал несколько вещей, но лучшее, что я могу придумать, это -

index=test "journey_ends" | rex "status(value) (?<StatusType>[A-Z][A-Z]*)" | rex "commonID\:(?<commonID>[^\t]{37})" | table StatusType, commonID | join type=inner commonID [ search index=test "Application Completed" | rex "^(?:[^\t\n]*\t){7}(?P<commonID>[^\t]+)" | table _time, commonID] | chart count over StatusType by commonID 

Однако приведенный выше запрос не предоставляет мне статистику. В подробном режиме я просто вижу события запроса 1. Обратите внимание, что вышеупомянутые 2 запроса выполняются правильно по отдельности.

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

Ожидаемый результат (в таблице):

StatusType commonID OK  1234567Z-1234-1234-1234-123456789123 NOTOK  1234567Z-1234-1234-1234-985625623541 

1 Ответ

0 голосов
/ 21 апреля 2019

Можете ли вы попробовать следующий запрос,

index=main "Application Completed" | rex "(?<common_id>[[:alnum:]]+-[[:alnum:]]+-[[:alnum:]]+-[[:alnum:]]+-[[:alnum:]]+)" | table _time, common_id| join type=inner common_id [ search index=main | rex "status\(value\)\s+(?<status>.+)$" | rex "(?<common_id>[[:alnum:]]+-[[:alnum:]]+-[[:alnum:]]+-[[:alnum:]]+-[[:alnum:]]+)" | table status, common_id]
...