Я пытаюсь присоединиться к 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