Splunk Search

What is the most efficient way to calculate totals for variable fields?

New Member

I have a summary indexed search that runs every 10 minutes, totaling our total unsanctioned email usage. Each unsanctioned email application is calculated and returned with the total MB in/out per application for the given 10 minute time period.

I'm now attempting to build a search that utilizes this summary report's calculated statistics. I'd like to now be able to calculate sums for each applications in/out values. Sample fields that I'd calculate off of are:

• Total MB In: aim-mail
• Total MB Out: aim-mail
• Total MB In: comcast-webmail
• Total MB Out: comcast-webmail
• Total MB In: gmail-base
• Total MB Out: gmail-base

In an easy world I'd just be able to run the following search:

``````index=myindex_summary report=unsanctioned_email | stats sum(*In: gmail-base), sum(*Out: gmail-base), sum(*In: hotmail)
``````

However, these fields will vary as we gather new unsanctioned email applications. I've looked into utilizing the "foreach" command and looping through that way, but it doesn't seem that this will work given the usage of the "stats" command.

I'm looking for the most efficient way to handle the calculation of totals for these variable fields.

Tags (5)
1 Solution
Builder

Do your fields that you will be performing this statistical command on have some similarities in naming structure like they all contain ": " somewhere in them? If so you can just do this

``````index=myindex_summary report=unsanctioned_email
| stats sum("*In: *") as "*In: *", sum("*Out: *") as "*Out: *"
``````
Builder

Do your fields that you will be performing this statistical command on have some similarities in naming structure like they all contain ": " somewhere in them? If so you can just do this

``````index=myindex_summary report=unsanctioned_email
| stats sum("*In: *") as "*In: *", sum("*Out: *") as "*Out: *"
``````