I am trying to display, in a panel, 2 single value total counts of messages based on a single field. The first should be the total messages while the second should the number of duplicates based on a single field.
For example, I thought the following would work:
source="/message.stats/tcp/10007"| stats count by id as Total | where count>1
This would display the total count of messages where there are duplicate values for the Id field.
source="/message.stats/tcp/10007"| stats count by id as Total
This should display the total count of messages. I am not sure how to combine the two. If not possible, I could just create 2 separate panels.
Try this
source="/message.stats/tcp/10007" | eventstats count as total | eventstats count as duplicates by id | stats count(eval(duplicates>1)) as no_duplicates values(total) as total | eval msg=no_duplicates." of ".total
You may want to change the count(eval(duplicates>1))
to sum(eval(duplicates>1))
Try this
source="/message.stats/tcp/10007" | eventstats count as total | eventstats count as duplicates by id | stats count(eval(duplicates>1)) as no_duplicates values(total) as total | eval msg=no_duplicates." of ".total
You may want to change the count(eval(duplicates>1))
to sum(eval(duplicates>1))
thanks a million; this worked for me
source="/message.stats/tcp/10007"
|stats count by id
|eval duplicateCount=if(count>1,count,null())
|addcoltotals
|eval singleValue=count+" total messages; "+duplicateCount+" total duplicate messages"
|search id="Total"
|fields singleValue
that should get you the total values for both the total and duplicates.
the stats is counting all events by id, then the eval only brings back the count if each id has more than one. then it's adding up the totals for each column and concatenating them together into a field called singleValue and only bringing back that value/field.
Appreciate the response; when with the first solution.