Если заявления и извлечения значений - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть набор результатов, который выглядит как

{add=[44961373 (1645499799657512961), 44961374 (1645499799658561538), 44962094 (1645499799659610114), 44962095 (1645499799659610117), 44962096 (1645499799660658689), 44962097 (1645499799660658691), 44962098 (1645499799661707264), 44962099 (1645499799661707267), 44962100 (1645499799662755840), 44962101 (1645499799662755843), ... (592 adds)]}

Если массив add = [содержит более 10 элементов.Затем он ставит (х добавлений) в конце оператора, чтобы показать, сколько было фактических добавлений.Если у него меньше 10, он не будет помещать оператор (x добавление).Я хочу график времени, а также одно значение этих выходов на приборной панели (отдельные модули).

Я могу получить одно или другое, но я хотел бы использовать из логики, чтобы выяснить, какой из них сообщить.

index="index" host="host*" path=/update | eval count=mvcount(add) | stats count

получит счетчик массива

index="index" host="host*"  path=/update | stats sum(Adds)

получит значение (х добавляет).Добавляет это «извлеченное поле».

Как мне получить или?Если добавить массив> 10, используйте sum (Adds) на одном дыхании.

1 Ответ

0 голосов
/ 26 сентября 2019
index="index" host="host*" path=/update | eval count=mvcount(add)
| eval first_ten="{add=[".mvjoin(mvindex(add,0,9), ",")." (" (count-10)." adds)}"
| eval msg=if(count<10,_raw,first_ten)

Вы можете сделать что-то вроде этого.Получить счетчик adds, создать новую строку только с первыми 10 элементами, с сообщением count-10 adds в конце.Затем, в зависимости от фактического количества, используйте либо оригинальное (_raw), либо новое сообщение.

...