Splunk Search

How to get a count with dedup?

tazzvon
Engager

i have the following in a statistical table on a dashboard

index=* <do search> | dedup B C | table _time B C D E F J | sort-_time

I would like to have a count at the end of each row telling how many it deduped.

Labels (1)
0 Karma
1 Solution

ITWhisperer
SplunkTrust
SplunkTrust

Actually, dedup will give you the first event it finds in the event pipeline for each unique set of values.

This is often the same as latest because the events returned by the search are often in descending time order (but it depends on what else is in the search before the dedup).

The other thing is that _time (and other fields beginning with _) as not included in * so these should be explicitly catered for.

A more accurate way to do this might be

index=* <do search> 
| stats first(*) as * first(_time) as _time count as duplicates by B C
| table _time B C D E F J duplicates
| eval duplicates = duplicates - 1
| sort - _time

 

View solution in original post

bowesmana
SplunkTrust
SplunkTrust

In order to get the count of events and do dedup at the same time, you could do

index=* <do search> 
| stats latest(*) as * count as duplicates by B C 
| table _time B C D E F J duplicates
| eval duplicates = duplicates - 1
| sort - _time

 This should give you what you want - remember that dedup will normally give you the latest event from any duplicates, hence using latest(*).

 

ITWhisperer
SplunkTrust
SplunkTrust

Actually, dedup will give you the first event it finds in the event pipeline for each unique set of values.

This is often the same as latest because the events returned by the search are often in descending time order (but it depends on what else is in the search before the dedup).

The other thing is that _time (and other fields beginning with _) as not included in * so these should be explicitly catered for.

A more accurate way to do this might be

index=* <do search> 
| stats first(*) as * first(_time) as _time count as duplicates by B C
| table _time B C D E F J duplicates
| eval duplicates = duplicates - 1
| sort - _time

 

bowesmana
SplunkTrust
SplunkTrust

Good clarification @ITWhisperer about event ordering rather than the simple _time based default

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Deep Dive: Accelerate threat investigation with Splunk’s AI Assistant in Security

AI is one of the biggest topics in the market today, and for security teams, its value goes far beyond the ...

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...

Detection Engineering Office Hours: Real-World Troubleshooting & Q&A

[REGISTER HERE] This thread is for the Community Office Hours session on Detection Engineering Office Hours: ...