Dashboards & Visualizations

How to modify Spunk search to calculate the MaxTPS variance?

shashankk
Communicator

I am having a below query which is providing the TPS average variance output for complete 30 days.

Can you please help guide me with the logic on how to modify this query for MaxTPS variance?

Requirement is to calculate MaxTPS variance (instead of the below logic for Average TPS variance)

Modification to be added:

index=<search string> earliest=-30d@d date_hour>=$timefrom$ AND date_hour<$timeto$
| timechart span=$TotalMinutes $m count(eval(searchmatch("sent"))) as HotCountToday
| eval TPS=round(HotCountToday/($TotalMinutes $*60),2)
| eval TotalMinutes = ($timeto$ - $timefrom$) * 60
| eval Day=strftime(_time, "%Y-%m-%d")

| stats max(TPS) as MaxTPS by Day

Original Query:

index=<search_strings> earliest=-30d@d date_hour>=$timefrom$ AND date_hour<$timeto$
| eval Date = strftime(_time, "%Y-%m-%d")
| stats count(eval(Date=strftime(now(), "%Y-%m-%d"))) as HotCountToday,
count(eval(Date=strftime(relative_time(now(), "-1d@d"), "%Y-%m-%d"))) as HotCountBefore1Day,
count(eval(Date=strftime(relative_time(now(), "-2d@d"), "%Y-%m-%d"))) as HotCountBefore2Day,
count(eval(Date=strftime(relative_time(now(), "-3d@d"), "%Y-%m-%d"))) as HotCountBefore3Day,
count(eval(Date=strftime(relative_time(now(), "-4d@d"), "%Y-%m-%d"))) as HotCountBefore4Day,
count(eval(Date=strftime(relative_time(now(), "-5d@d"), "%Y-%m-%d"))) as HotCountBefore5Day,
count(eval(Date=strftime(relative_time(now(), "-6d@d"), "%Y-%m-%d"))) as HotCountBefore6Day,
count(eval(Date=strftime(relative_time(now(), "-7d@d"), "%Y-%m-%d"))) as HotCountBefore7Day,
.
.
count(eval(Date=strftime(relative_time(now(), "-30d@d"), "%Y-%m-%d"))) as HotCountBefore30Day

by TestMQ

| eval Today = strftime(now(), "%Y-%m-%d")
| eval Before1Day = strftime(relative_time(now(), "-1d@d"), "%Y-%m-%d")
| eval Before2Day = strftime(relative_time(now(), "-2d@d"), "%Y-%m-%d")
| eval Before3Day = strftime(relative_time(now(), "-3d@d"), "%Y-%m-%d")
| eval Before4Day = strftime(relative_time(now(), "-4d@d"), "%Y-%m-%d")
| eval Before5Day = strftime(relative_time(now(), "-5d@d"), "%Y-%m-%d")
| eval Before6Day = strftime(relative_time(now(), "-6d@d"), "%Y-%m-%d")
| eval Before7Day = strftime(relative_time(now(), "-7d@d"), "%Y-%m-%d")
.
.
| eval Before23Day = strftime(relative_time(now(), "-23d@d"), "%Y-%m-%d")

| eval TotalMinutes = ($timeto$ - $timefrom$) * 60

| eval TPS_Today=round(HotCountToday/(TotalMinutes*60),3)
| eval TPS_Before1Day=round(HotCountBefore1Day/(TotalMinutes*60),3)
| eval TPS_Before2Day=round(HotCountBefore2Day/(TotalMinutes*60),3)
| eval TPS_Before3Day=round(HotCountBefore3Day/(TotalMinutes*60),3)
| eval TPS_Before4Day=round(HotCountBefore4Day/(TotalMinutes*60),3)
| eval TPS_Before5Day=round(HotCountBefore5Day/(TotalMinutes*60),3)
| eval TPS_Before6Day=round(HotCountBefore6Day/(TotalMinutes*60),3)
| eval TPS_Before7Day=round(HotCountBefore7Day/(TotalMinutes*60),3)
.
.
| eval TPS_Before30Day=round(HotCountBefore30Day/(TotalMinutes*60),3)

| eval Variance_TPS_Today = case(TPS_Before7Day > TPS_Today, round(((TPS_Before7Day - TPS_Today) / TPS_Before7Day) * 100,3),
TPS_Before7Day < TPS_Today, round(((TPS_Today - TPS_Before7Day) / TPS_Today) * 100,3),
TPS_Before7Day = TPS_Today, round(((TPS_Before7Day - TPS_Today)) * 100,3))

| eval Variance_TPS_Before1Day = case(TPS_Before8Day > TPS_Before1Day, round(((TPS_Before8Day - TPS_Before1Day) / TPS_Before8Day) * 100,3),
TPS_Before8Day < TPS_Before1Day, round(((TPS_Before1Day - TPS_Before8Day) / TPS_Before1Day) * 100,3),
TPS_Before8Day = TPS_Before1Day, round(((TPS_Before8Day - TPS_Before1Day)) * 100,3))

| eval Variance_TPS_Before2Day = case(TPS_Before9Day > TPS_Before2Day, round(((TPS_Before9Day - TPS_Before2Day) / TPS_Before9Day) * 100,3),
TPS_Before9Day < TPS_Before2Day, round(((TPS_Before2Day - TPS_Before9Day) / TPS_Before2Day) * 100,3),
TPS_Before9Day = TPS_Before2Day, round(((TPS_Before9Day - TPS_Before2Day)) * 100,3))
.
.
.
| eval Variance_TPS_Before23Day = case(TPS_Before30Day > TPS_Before23Day, round(((TPS_Before30Day - TPS_Before23Day) / TPS_Before30Day) * 100,3),
TPS_Before30Day < TPS_Before23Day, round(((TPS_Before23Day - TPS_Before30Day) / TPS_Before23Day) * 100,3),
TPS_Before30Day = TPS_Before23Day, round(((TPS_Before30Day - TPS_Before23Day)) * 100,3))

| eval {Today}=Variance_TPS_Today | fields - Today Variance_TPS_Today
| eval {Before1Day}=Variance_TPS_Before1Day | fields - Before1Day Variance_TPS_Before1Day
| eval {Before2Day}=Variance_TPS_Before2Day | fields - Before2Day Variance_TPS_Before2Day
| eval {Before3Day}=Variance_TPS_Before3Day | fields - Before3Day Variance_TPS_Before3Day
| eval {Before4Day}=Variance_TPS_Before4Day | fields - Before4Day Variance_TPS_Before4Day
| eval {Before5Day}=Variance_TPS_Before5Day | fields - Before5Day Variance_TPS_Before5Day
| eval {Before6Day}=Variance_TPS_Before6Day | fields - Before6Day Variance_TPS_Before6Day
| eval {Before7Day}=Variance_TPS_Before7Day | fields - Before7Day Variance_TPS_Before7Day
.
.
.
| eval {Before23Day}=Variance_TPS_Before23Day | fields - Before23Day Variance_TPS_Before23Day

| table TestMQ 2*

Query Output as below:

TestMQ 2023-06-23 2023-06-22 2023-06-21 2023-06-20 2023-06-19 2023-06-18 2023-06-17 2023-06-16 And so on - till 30 days
MQ.NAME 5.003 17.004 25.775 19.882 32.114 56.881 10.991 85.114 ....



I am new to Splunk and still learning. Looking forward to hear from you. Kindly suggest how this can be achieved.

@ITWhisperer @bowesmana @xpac @MuS @yuanliu - looking forward to hear from you, please help assist.

Labels (5)
0 Karma
Get Updates on the Splunk Community!

Splunk Observability for AI

Don’t miss out on an exciting Tech Talk on Splunk Observability for AI!Discover how Splunk’s agentic AI ...

Splunk Enterprise Security 8.x: The Essential Upgrade for Threat Detection, ...

Watch On Demand the Tech Talk on November 6 at 11AM PT, and empower your SOC to reach new heights! Duration: ...

Splunk Observability as Code: From Zero to Dashboard

For the details on what Self-Service Observability and Observability as Code is, we have some awesome content ...