Splunk: поиск строки, если она найдена, а затем поиск другого журнала с таким же идентификатором запроса. - PullRequest
0 голосов
/ 04 мая 2020

Я хочу найти строку (фактор движения) и, если найден, только потом искать другую строку с тем же x-request-id и извлечь из нее некоторые детали.

x-request-id=12345 "InterestingField=7850373" [this one is subset of very specific request]
x-request-id=12345 "veryCommonField=56789" [this one is a superSet of all kind of requests]

Что я ' мы пробовали:

index=myindex "InterestingField" OR "veryCommonField"
| transition x-request-id

Но проблема с вышесказанным заключается в том, что этот запрос объединяет все те запросы, в которых есть только veryCommonField. Я хочу избежать объединения, так как они довольно низки в производительности.

Что мне нужно: list InterestingField, veryCommonField

Пример: Ниже представлено начало всех видов запросов. Мы получаем тысячи таких запросов в день.

index=myIndex xrid=12345 "Request received for this. field1: 123 field2: test"

Из всех вышеперечисленных запросов ниже категории подпадает под 100.

index=myIndex xrid=12345 "I belong to blahBlah category. field3: 67583, field4: testing"

Я не хочу искать в супер набор 1000k +, но только при совпадении 100 запросов. Поскольку с увеличением промежутка времени этот поисковый запрос займет очень много времени.

1 Ответ

1 голос
/ 04 мая 2020

Если я понимаю ваш сценарий использования, может быть полезно следующее:

Использование статистики

index=myindex "InterestingField" OR "veryCommonField" | stats values(InterestingField), values(veryCommonField) by x-request-id

Использование подзапроса

index=myindex [ index=myindex InterestingField=* | fields x-request-id | format  ]

В зависимости от число результатов, соответствующих InterestingField, вы также можете использовать map, https://docs.splunk.com/Documentation/Splunk/8.0.3/SearchReference/Map

index=myindex InterestingField="*" | map maxsearches=0 "search index=myindex x-request-id=$x-request-id$ | stats values(InterestingField), values(veryCommonField) by x-request-id"

Если вы предоставите более подробные примеры событий, мы можем помочь вам в дальнейшем.

...