Dashboards & Visualizations

How to make a pie chart in Splunk?

zacksoft
Contributor

I am creating a pie chart and this should contain two pieces . One piece should contain, "How much percentage of the entire logs contain the word "abend890" and the second piece should contain the "rest of the logs that do not contain that word"

I am trying something like below, it won't work.

host="All_Error_Logs" 
| eval word=case(like(_raw,"%abend890%"),"abend890",like(_raw, NOT"%abend890%"),"NOT_ABEND890")
| stats count by word
0 Karma
1 Solution

renjith_nair
Legend

Hi @zacksoft,

It would be more faster if you could extract the field and do a percentage on that. However, this should work for your above requirement.

host="All_Error_Logs" |stats count(eval(match(_raw,"abend890"))) as abend890,count(eval(NOT match(_raw,"abend890"))) as "NOT_abend890",count as total
|eval match_perc=round((abend890/total)*100,2),not_match_perc=round((NOT_abend890/total)*100,2)
---
What goes around comes around. If it helps, hit it with Karma 🙂

View solution in original post

0 Karma

renjith_nair
Legend

Hi @zacksoft,

It would be more faster if you could extract the field and do a percentage on that. However, this should work for your above requirement.

host="All_Error_Logs" |stats count(eval(match(_raw,"abend890"))) as abend890,count(eval(NOT match(_raw,"abend890"))) as "NOT_abend890",count as total
|eval match_perc=round((abend890/total)*100,2),not_match_perc=round((NOT_abend890/total)*100,2)
---
What goes around comes around. If it helps, hit it with Karma 🙂
0 Karma

zacksoft
Contributor

will it not be required to add asterisk(*) before and after abend890 in the eval match statement?

0 Karma

renjith_nair
Legend

This function compares the regex string REGEX to the value of SUBJECT and returns a Boolean value. It returns TRUE if the REGEX can find a match against any substring of SUBJECT. You could test it with simple search

    index=_internal sourcetype="splunkd*"|stats count by sourcetype|stats count(eval(match(sourcetype,"access"))) as "web" ,  count(eval(NOT match(sourcetype,"access"))) as "Not Web"
---
What goes around comes around. If it helps, hit it with Karma 🙂
0 Karma

pradeepkumarg
Influencer
| eval word=if(searchmatch("\*abend890\*"), "ABEND", "NOT_ABEND") | stats count by word 

zacksoft
Contributor

Thanks for the response.
I am bit confused whether to use ("abend") or ("#abend#")

My sample logs are like this
1. fdjihfklsdfjsdhgrfgkjsdflk*abend890iofjsdfjs
2. shshffsjjfmi
crosoft.abend890.erase*,hhhhfjksdzfhskjfhskdjfhsk

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!

Build the Future of Agentic AI: Join the Splunk Agentic Ops Hackathon

AI is changing how teams investigate incidents, detect threats, automate workflows, and build intelligent ...

[Puzzles] Solve, Learn, Repeat: Character substitutions with Regular Expressions

This challenge was first posted on Slack #puzzles channelFor BORE at .conf23, we had a puzzle question which ...

Splunk Community Badges!

  Hey everyone! Ready to earn some serious bragging rights in the community? Along with our existing badges ...