Splunk Search

Use table value in later stats command such as avg, max

bing_zheng
New Member

I have a search which outputs a table such as
apiNAME (-- this is the column head with values as below)
apiA_MS
apiB_MS
apiC_MS

I want to use it passing all the values to search such as:
| stats avg(apiNAME), max(apiNAME), min(apiNAME)

I hope to see output as:
apiNAME avg max min
apiA_MS 234.5 345.6 123.4
apiB_MS 222.3 333.3 111.1
apiC_MS 444.4 555.5 222.2

I tried to use something like
| foreach apiNAME [eval avg=avg(<>)]

Unfortunately it didn't return the number such as 234.5
but return back as avg(apiA_MS), just a string, not the average value I expected.

Please help.

eric

0 Karma
1 Solution

somesoni2
Revered Legend

Try like this
Slight update

index=a sourcetype=somelog  | table api*MS | untable temp apiName response_time
 | stats avg(response_time), max(response_time), min(response_time) by apiName

View solution in original post

0 Karma

somesoni2
Revered Legend

Try like this
Slight update

index=a sourcetype=somelog  | table api*MS | untable temp apiName response_time
 | stats avg(response_time), max(response_time), min(response_time) by apiName
0 Karma

bing_zheng
New Member

It works. Thanks for the solution, though it is kind of mystery to me.

0 Karma

somesoni2
Revered Legend

Best way to learn is to run the search part one by one and check the output. I added field temp so that I can use it in untable command., but it seems it works without adding it.

https://docs.splunk.com/Documentation/Splunk/6.5.2/SearchReference/Untable

0 Karma

bing_zheng
New Member

Here is the original search:

index=a sourcetype=somelog | table api*MS | fieldsummary | fields field | stats values(field) as apiNAME | foreach apiNAME [eval max=max(<>)]

BTW, apiA_MS is the response time so it is in the event as apiA_MS=223.4
I hope to find a way to get max(apiA_MS), max(apiB_MS), etc. from the list of the apiNAME.

0 Karma

rjthibod
Champion

I think there is something missing in your description. What field contains the metrics that you want to take the avg, max, and min of. That field cannot be both the text string you have under apiName. There has to be something else in your data that contains numbers that you omitted from your description.

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!

Vibe-coding, AI, and Splunkcraft: Highlights from the .conf26 Builder Bar

If you stopped by the Builder Bar at .conf26, thank you! This year, we brought ...

Thanks for the Memories: .conf26 Took Learning to New Heights

Thank you, Splunk Community, for making .conf26 in Denver one for the books. From packed Splunk University ...

Best Practices: Splunk auto adjust pipeline queue

When you enable autoAdjustQueue in Splunk, maxSize should be understood as the queue size Splunk starts with ...