Splunk Search

How to group events based on a fields with predefined values?

ChrisPatin
New Member

I need to group by a field where all possible values should be shown in the result.

For example, the below snippet groups by interface, but rows can be omitted if the query does not return results for an interface.

<search> | stats count(state='success') as count by interface 

For example, three interfaces exist. [A, B, C]. The search has no results for C.

Output
interface      count
A              100
B              200

Missing Record
C              0

How can any missing records be included?  Any option where a lookup table is not used?

Labels (1)
0 Karma

bowesmana
SplunkTrust
SplunkTrust

Something along these lines

| makeresults
| eval _raw="interface      count
A              100
B              200"
| multikv forceheader=1
| stats sum(count) as count by interface
``` Up to here simulates your example ```
``` Use this to append/resolve all expected interfaces ```
| append [ 
  | makeresults
  | fields - _time
  | eval interface = split("A,B,C", ",")
  | mvexpand interface
  | eval count=0
]
| stats max(count) as count by interface

Just append the required interfaces to the and and then resolve them with stats. It's effectively the same as how you do it with a lookup, but here you are just manufacturing the required values.

0 Karma
Get Updates on the Splunk Community!

Stronger Security with Federated Search for S3, GCP SQL & Australian Threat ...

Splunk Lantern is a Splunk customer success center that provides advice from Splunk experts on valuable data ...

Accelerating Observability as Code with the Splunk AI Assistant

We’ve seen in previous posts what Observability as Code (OaC) is and how it’s now essential for managing ...

Integrating Splunk Search API and Quarto to Create Reproducible Investigation ...

 Splunk is More Than Just the Web Console For Digital Forensics and Incident Response (DFIR) practitioners, ...