Dashboards & Visualizations

Loop to create panels in dashboard

vikas_sood
Explorer

I have an index with name applications which contains list of applications:
app1
app2
.
.
.
app10

I have created a simple dashboard showing count of events for app1. Is there a way to add panels using a loop so that I don't have to copy the panel xml code 10 times, once for each app?

 

<?xml version="1.0" encoding="UTF-8"?>
<dashboard>
   <label>Demo Apps</label>
   <row>
      <panel>
         <single>
            <title>app1</title>
            <search>
               <query>index=appindex (app1) | stats count</query>
               <earliest>-24h@m</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="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>

 

 

Labels (3)
0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @vikas_sood,

Did you explored the Trellis layout?

<dashboard>
   <label>Demo Apps</label>
   <row>
      <panel>
         <single>
            <search>
               <query>index=appindex | stats count</query>
               <earliest>-24h@m</earliest>
               <latest>now</latest>
               <sampleRatio>1</sampleRatio>
            </search>
            <option name="colorBy">value</option>
        <option name="colorMode">none</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x53a051", "0x0877a6", "0xf8be34", "0xf1813f", "0xdc4e41"]</option>
        <option name="rangeValues">[0,30,70,100]</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">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
         </single>
      </panel>
   </row>
</dashboard>

otherwise, you could use the Post Process Search?

something like this:

<dashboard>
   <label>Demo Apps</label>
   <search id="basesearch">
      <query>
         index=appindex
         | stats count By index
      </query>
      <earliest>-24h@m</earliest>
      <latest>now</latest>
      <sampleRatio>1</sampleRatio>
   </search>
   <row>
      <panel>
         <single>
            <title>app1</title>
            <search base="basesearch">
               <query>
                  | search index=app1
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app2</title>
            <search base="basesearch">
               <query>
                  | search index=app2
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app3</title>
            <search base="basesearch">
               <query>
                  | search index=app3
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app4</title>
            <search base="basesearch">
               <query>
                  | search index=app4
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app5</title>
            <search base="basesearch">
               <query>
                  | search index=app5
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
   <row>
      <panel>
         <single>
            <title>app6</title>
            <search base="basesearch">
               <query>
                  | search index=app6
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app7</title>
            <search base="basesearch">
               <query>
                  | search index=app7
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app8</title>
            <search base="basesearch">
               <query>
                  | search index=app8
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app9</title>
            <search base="basesearch">
               <query>
                  | search index=app9
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>
         <single>
            <title>app10</title>
            <search base="basesearch">
               <query>
                  | search index=app10
               </query>
            </search>
            <option name="colorBy">value</option>
            <option name="colorMode">block</option>
            <option name="drilldown">none</option>
            <option name="numberPrecision">0</option>
            <option name="rangeColors">["0x53a051","0xf8be34","0xdc4e41"]</option>
            <option name="rangeValues">[0,10]</option>
            <option name="showSparkline">1</option>
            <option name="showTrendIndicator">1</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>

 Ciao.

Giuseppe

0 Karma

vikas_sood
Explorer

Problem with trellis is it won't show up in pdf reports.

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @vikas_sood,

I don't like Trellis, so I hint the second solution.

Ciao.

Giuseppe

0 Karma
Get Updates on the Splunk Community!

Data Management Digest – December 2025

Welcome to the December edition of Data Management Digest! As we continue our journey of data innovation, the ...

Index This | What is broken 80% of the time by February?

December 2025 Edition   Hayyy Splunk Education Enthusiasts and the Eternally Curious!    We’re back with this ...

Unlock Faster Time-to-Value on Edge and Ingest Processor with New SPL2 Pipeline ...

Hello Splunk Community,   We're thrilled to share an exciting update that will help you manage your data more ...