Dashboards & Visualizations

Pie Chart Problem

sarvan7777
New Member

I'm new to Splunk and initially, this requirement appears easy to me, but doesn't seem to be. I have some 6 application components. Each component is running tens of Adapters.

Component Failed Adapter Count
========= ================
Comp1 0
Comp2 0
Comp3 0
Comp4 0
Comp5 18 (I don't care about this number. Any value greater than 0 means its a Failed Component.)
Comp6 0

I just wanted to create a Pie Chart showing 1 of the 6 Component is down (May be 5 parts of the Pie in Green Colour and 1 Part in Red). with the data I have mentioned above

Tags (1)
0 Karma
1 Solution

niketn
Legend

[UPDATED ANSWER]

If your objective is to create a Slice of equal size for each component irrespective of the count you can try the following run anywhere search. The query from | makeresults till | fields - _time datacook up sample data. You can use your base search instead.

| makeresults
| eval data="Comp1=0;Comp2=0;Comp3=0;Comp4=0;Comp5=18;Comp6=0"
| makemv data  delim=";"
| mvexpand data
| eval data=split(data,"=")
| eval component=mvindex(data,0),count=mvindex(data,1)
| fields - _time data
| stats sum(count) as count by component
| streamstats count as sliceCount by component
| eval status=if(count=0,"Success","Fail")
| eval component=component."(".status."- ".count.")"
| table component sliceCount

@sarvan7777 pie chart will not show Slices with count 0. It will show only slices which do not have count 0. Which means you will have to color Slice Label based on value (which would require CSS and possibly jQuery also).

Instead if you are on Splunk 6.6 or higher, you can use Trellis Layout with Single Value (built in visualization) or Status Indicator Custom Visualization provided your final query is statistical query by split by component

Following is a run anywhere dashboard example based on sample data provided in the question. (There are several examples of Single Value and Status Indicator with Trellis that you can check out on Splunk Answers).

alt text

Following is run anywhere dashboard simple xml code:

<dashboard>
  <label>Single Value Trellis Color by value</label>
  <row>
    <panel>
      <single>
        <search>
          <query>| makeresults
| eval data="Comp1=0;Comp2=0;Comp3=0;Comp4=0;Comp5=18;Comp6=0"
| makemv data  delim=";"
| mvexpand data
| eval data=split(data,"=")
| eval component=mvindex(data,0),count=mvindex(data,1)
| fields - _time data
| stats sum(count) as count by component</query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="height">120</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0xd93f3c"]</option>
        <option name="rangeValues">[0]</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">small</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
</dashboard>

PS: Adjust height of the Panel based on your need ( using Simple XML configuration <option name="height">120</option>)

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"

View solution in original post

0 Karma

niketn
Legend

[UPDATED ANSWER]

If your objective is to create a Slice of equal size for each component irrespective of the count you can try the following run anywhere search. The query from | makeresults till | fields - _time datacook up sample data. You can use your base search instead.

| makeresults
| eval data="Comp1=0;Comp2=0;Comp3=0;Comp4=0;Comp5=18;Comp6=0"
| makemv data  delim=";"
| mvexpand data
| eval data=split(data,"=")
| eval component=mvindex(data,0),count=mvindex(data,1)
| fields - _time data
| stats sum(count) as count by component
| streamstats count as sliceCount by component
| eval status=if(count=0,"Success","Fail")
| eval component=component."(".status."- ".count.")"
| table component sliceCount

@sarvan7777 pie chart will not show Slices with count 0. It will show only slices which do not have count 0. Which means you will have to color Slice Label based on value (which would require CSS and possibly jQuery also).

Instead if you are on Splunk 6.6 or higher, you can use Trellis Layout with Single Value (built in visualization) or Status Indicator Custom Visualization provided your final query is statistical query by split by component

Following is a run anywhere dashboard example based on sample data provided in the question. (There are several examples of Single Value and Status Indicator with Trellis that you can check out on Splunk Answers).

alt text

Following is run anywhere dashboard simple xml code:

<dashboard>
  <label>Single Value Trellis Color by value</label>
  <row>
    <panel>
      <single>
        <search>
          <query>| makeresults
| eval data="Comp1=0;Comp2=0;Comp3=0;Comp4=0;Comp5=18;Comp6=0"
| makemv data  delim=";"
| mvexpand data
| eval data=split(data,"=")
| eval component=mvindex(data,0),count=mvindex(data,1)
| fields - _time data
| stats sum(count) as count by component</query>
          <earliest>-24h@h</earliest>
          <latest>now</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="height">120</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0xd93f3c"]</option>
        <option name="rangeValues">[0]</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">small</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
</dashboard>

PS: Adjust height of the Panel based on your need ( using Simple XML configuration <option name="height">120</option>)

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"
0 Karma

p_gurav
Champion

Try to seriesColors like this for pie in xml:

 <option name="charting.seriesColors">[0x00FF00,0x999999]</option>  
0 Karma

sarvan7777
New Member

Sorry, It's not about the colouring. How do I decode the zeros and non-zero values so that it forms the 100% of Pie. I.e. for each component I will need to assign 1/6 weightage.

If I simply plot the graph for the below listed values, then Splunk ignores all Components in the Pie and only Comp5 as it has a non-zero values

Comp1 0
Comp2 0
Comp3 0
Comp4 0
Comp5 18
Comp6 0

0 Karma

p_gurav
Champion

ohh!! Can you share the search query you are using? Try something below to display all component even if its value is zero.

index=<yourindex> | stats values(adaptor) as "Adapter Count" by Component
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!

Why Splunk Customers Should Attend Cisco Live 2026 Las Vegas

Why Splunk Customers Should Attend Cisco Live 2026 Las Vegas     Cisco Live 2026 is almost here, and this ...

What Is the Name of the USB Key Inserted by Bob Smith? (BOTS Hint, Not the Answer)

Hello Splunkers,   So you searched, “what is the name of the usb key inserted by bob smith?”  Not gonna lie… ...

Automating Threat Operations and Threat Hunting with Recorded Future

    Automating Threat Operations and Threat Hunting with Recorded Future June 29, 2026 | Register   Is your ...