Dashboards & Visualizations

Can you help me with a dashboard customization issue?

sandeepmakkena
Contributor

I am trying to hide a 2nd panel unless there is a click on the 1st panel and which gives time range input. I am able to pass the early and latest tokens but I am unable to hide the 2nd panel. Here is the source I have, Please help.

<input type="time" token="field1">
  <label></label>
  <default>
    <earliest>-24h@h</earliest>
    <latest>now</latest>
  </default>
</input>
<panel>
  <chart>
    <title>Test1</title>
    <search>
      <query>host="My_host" TransactionId=TID*| eval Status=if(like(_raw, "%POSTING:SUCCEEDED%"), "2.Successful transactions" , "1.Rejected Transactions") | timechart count by Status
      <earliest>$field1.earliest$</earliest>
      <latest>$field1.latest$</latest>
    </search>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart">column</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">all</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">stacked</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
    <drilldown>
      <!-- Use set to specify the new token to be created.
               Use any token from the page or from the click event to produce the value needed. -->
      <set token="click_earliest">$earliest$</set>
      <set token="click_latest">$latest$</set>
      <!-- If we also set the form.sourcetype the input will get updated too -->
    </drilldown>
  </chart>
</panel>
<panel ><chart>
    <title>Test Panel 2 </title>
    <search>
      <query>host="My_host" TransactionId=TID*  "processingStatusCode":"REJECTED"| rex field=_raw max_match=0 "errorCode\\\\\":\\\\\"(?<error_code>\d+)\\\\\"" | rex field=_raw max_match=0 "responseCode\":\"(?<response_code>\w+)" | eval error_code1 = if(isnotnull(error_code) AND error_code!="", error_code,response_code) | stats count by error_code1| lookup CSA_Error.csv CSA_Code as error_code1 OUTPUT Description | table Description count  | where Description!= " "
      <earliest>$click_earliest$</earliest>
      <latest>$click_latest$</latest>
    </search>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart">column</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">all</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">none</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
  </chart>
</panel>
0 Karma
1 Solution

Vijeta
Influencer

Does this work for you ?

test_db2

 <earliest>-24h@h</earliest>
 <latest>now</latest>


 <condition>
   <unset token="click_earliest"></unset>
   <unset token="click_latest"></unset>
 </condition>






 <title>Test1</title>
 <search>
   <!--<query>host="My_host" TransactionId=TID*| eval Status=if(like(_raw, "%POSTING:SUCCEEDED%"), "2.Successful transactions" , "1.Rejected Transactions") | timechart count by Status</query>-->
   <query>index=eih_prod_summary source=fmac_jms*| timechart count by Success</query>
   <earliest>$field1.earliest$</earliest>
   <latest>$field1.latest$</latest>
 </search>
 <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
 <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
 <option name="charting.axisTitleX.visibility">visible</option>
 <option name="charting.axisTitleY.visibility">visible</option>
 <option name="charting.axisTitleY2.visibility">visible</option>
 <option name="charting.axisX.scale">linear</option>
 <option name="charting.axisY.scale">linear</option>
 <option name="charting.axisY2.enabled">0</option>
 <option name="charting.axisY2.scale">inherit</option>
 <option name="charting.chart">column</option>
 <option name="charting.chart.bubbleMaximumSize">50</option>
 <option name="charting.chart.bubbleMinimumSize">10</option>
 <option name="charting.chart.bubbleSizeBy">area</option>
 <option name="charting.chart.nullValueMode">gaps</option>
 <option name="charting.chart.showDataLabels">all</option>
 <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
 <option name="charting.chart.stackMode">stacked</option>
 <option name="charting.chart.style">shiny</option>
 <option name="charting.drilldown">all</option>
 <option name="charting.layout.splitSeries">0</option>
 <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
 <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
 <option name="charting.legend.placement">right</option>
 <drilldown>
   <!-- Use set to specify the new token to be created.
            Use any token from the page or from the click event to produce the value needed. -->
   <set token="click_earliest">$earliest$</set>
   <set token="click_latest">$latest$</set>
   <!-- If we also set the form.sourcetype the input will get updated too -->
 </drilldown>






 <title>Test Panel 2 </title>
 <search>
   <query>
     host="My_host" TransactionId=TID*  "processingStatusCode":"REJECTED"| rex field=_raw max_match=0 "errorCode\\\\\":\\\\\"(?&lt;error_code&gt;\d+)\\\\\"" | rex field=_raw max_match=0 "responseCode\":\"(?&lt;response_code&gt;\w+)" | eval error_code1 = if(isnotnull(error_code) AND error_code!="", error_code,response_code) | stats count by error_code1| lookup CSA_Error.csv CSA_Code as error_code1 OUTPUT Description | table Description count  | where Description!= " "</query>
   <earliest>$click_earliest$</earliest>
   <latest>$click_latest$</latest>
 </search>
 <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
 <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
 <option name="charting.axisTitleX.visibility">visible</option>
 <option name="charting.axisTitleY.visibility">visible</option>
 <option name="charting.axisTitleY2.visibility">visible</option>
 <option name="charting.axisX.scale">linear</option>
 <option name="charting.axisY.scale">linear</option>
 <option name="charting.axisY2.enabled">0</option>
 <option name="charting.axisY2.scale">inherit</option>
 <option name="charting.chart">column</option>
 <option name="charting.chart.bubbleMaximumSize">50</option>
 <option name="charting.chart.bubbleMinimumSize">10</option>
 <option name="charting.chart.bubbleSizeBy">area</option>
 <option name="charting.chart.nullValueMode">gaps</option>
 <option name="charting.chart.showDataLabels">all</option>
 <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
 <option name="charting.chart.stackMode">default</option>
 <option name="charting.chart.style">shiny</option>
 <option name="charting.drilldown">none</option>
 <option name="charting.layout.splitSeries">0</option>
 <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
 <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
 <option name="charting.legend.placement">right</option>

View solution in original post

0 Karma

Vijeta
Influencer

Does this work for you ?

test_db2

 <earliest>-24h@h</earliest>
 <latest>now</latest>


 <condition>
   <unset token="click_earliest"></unset>
   <unset token="click_latest"></unset>
 </condition>






 <title>Test1</title>
 <search>
   <!--<query>host="My_host" TransactionId=TID*| eval Status=if(like(_raw, "%POSTING:SUCCEEDED%"), "2.Successful transactions" , "1.Rejected Transactions") | timechart count by Status</query>-->
   <query>index=eih_prod_summary source=fmac_jms*| timechart count by Success</query>
   <earliest>$field1.earliest$</earliest>
   <latest>$field1.latest$</latest>
 </search>
 <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
 <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
 <option name="charting.axisTitleX.visibility">visible</option>
 <option name="charting.axisTitleY.visibility">visible</option>
 <option name="charting.axisTitleY2.visibility">visible</option>
 <option name="charting.axisX.scale">linear</option>
 <option name="charting.axisY.scale">linear</option>
 <option name="charting.axisY2.enabled">0</option>
 <option name="charting.axisY2.scale">inherit</option>
 <option name="charting.chart">column</option>
 <option name="charting.chart.bubbleMaximumSize">50</option>
 <option name="charting.chart.bubbleMinimumSize">10</option>
 <option name="charting.chart.bubbleSizeBy">area</option>
 <option name="charting.chart.nullValueMode">gaps</option>
 <option name="charting.chart.showDataLabels">all</option>
 <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
 <option name="charting.chart.stackMode">stacked</option>
 <option name="charting.chart.style">shiny</option>
 <option name="charting.drilldown">all</option>
 <option name="charting.layout.splitSeries">0</option>
 <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
 <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
 <option name="charting.legend.placement">right</option>
 <drilldown>
   <!-- Use set to specify the new token to be created.
            Use any token from the page or from the click event to produce the value needed. -->
   <set token="click_earliest">$earliest$</set>
   <set token="click_latest">$latest$</set>
   <!-- If we also set the form.sourcetype the input will get updated too -->
 </drilldown>






 <title>Test Panel 2 </title>
 <search>
   <query>
     host="My_host" TransactionId=TID*  "processingStatusCode":"REJECTED"| rex field=_raw max_match=0 "errorCode\\\\\":\\\\\"(?&lt;error_code&gt;\d+)\\\\\"" | rex field=_raw max_match=0 "responseCode\":\"(?&lt;response_code&gt;\w+)" | eval error_code1 = if(isnotnull(error_code) AND error_code!="", error_code,response_code) | stats count by error_code1| lookup CSA_Error.csv CSA_Code as error_code1 OUTPUT Description | table Description count  | where Description!= " "</query>
   <earliest>$click_earliest$</earliest>
   <latest>$click_latest$</latest>
 </search>
 <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
 <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
 <option name="charting.axisTitleX.visibility">visible</option>
 <option name="charting.axisTitleY.visibility">visible</option>
 <option name="charting.axisTitleY2.visibility">visible</option>
 <option name="charting.axisX.scale">linear</option>
 <option name="charting.axisY.scale">linear</option>
 <option name="charting.axisY2.enabled">0</option>
 <option name="charting.axisY2.scale">inherit</option>
 <option name="charting.chart">column</option>
 <option name="charting.chart.bubbleMaximumSize">50</option>
 <option name="charting.chart.bubbleMinimumSize">10</option>
 <option name="charting.chart.bubbleSizeBy">area</option>
 <option name="charting.chart.nullValueMode">gaps</option>
 <option name="charting.chart.showDataLabels">all</option>
 <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
 <option name="charting.chart.stackMode">default</option>
 <option name="charting.chart.style">shiny</option>
 <option name="charting.drilldown">none</option>
 <option name="charting.layout.splitSeries">0</option>
 <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
 <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
 <option name="charting.legend.placement">right</option>
0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

@Vijeta

Can you please update your answer with the original answer?

0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

@sandeepmakkena

I didn't found any token $Test1$ declared or set in your dashboard. That's y it is not working.

<panel depends="$Test1$">open for click/hide<chart>

Either you set this token on click or use $click_earliest$ which is already set onclick,.

<panel depends="$click_earliest$">open for click/hide<chart>

0 Karma

sandeepmakkena
Contributor

I am sorry test1 token is name of 1st panel, I am just test with some options so I missed it in the post.

0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

Can you please update your question so we can start work on it?

0 Karma

sandeepmakkena
Contributor

Kamlesh, I updated the code ( removed all the tokens I am not using). Thank you.

0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

Glad to help you.

0 Karma

sandeepmakkena
Contributor

Just updating you, The earliest and latest tokens are working find but, I want to hide the 2nd panel unless there is a click on 1st panel and hide 2nd panel when there is a change in shared time range picker. Thanks.

0 Karma

Vijeta
Influencer

second panel will have-

This will show the second panel only when token have values on click event. The token value will remain set unless you refresh the dashboard.
You need to unset the token value for
- same for latest token.

This unset needs to be done on your input for timepicker and also in . Let me know if you need help on coding it.

0 Karma

sandeepmakkena
Contributor

Can you help me with the code please.

0 Karma

Vijeta
Influencer

test_db2

 <earliest>-24h@h</earliest>
 <latest>now</latest>


 <condition>
   <unset token="click_earliest"></unset>
   <unset token="click_latest"></unset>
 </condition>






 <title>Test1</title>
 <search>
  <query>host="My_host" TransactionId=TID*| eval Status=if(like(_raw, "%POSTING:SUCCEEDED%"), "2.Successful transactions" , "1.Rejected Transactions") | timechart count by Status</query>

   <earliest>$field1.earliest$</earliest>
   <latest>$field1.latest$</latest>
 </search>
 <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
 <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
 <option name="charting.axisTitleX.visibility">visible</option>
 <option name="charting.axisTitleY.visibility">visible</option>
 <option name="charting.axisTitleY2.visibility">visible</option>
 <option name="charting.axisX.scale">linear</option>
 <option name="charting.axisY.scale">linear</option>
 <option name="charting.axisY2.enabled">0</option>
 <option name="charting.axisY2.scale">inherit</option>
 <option name="charting.chart">column</option>
 <option name="charting.chart.bubbleMaximumSize">50</option>
 <option name="charting.chart.bubbleMinimumSize">10</option>
 <option name="charting.chart.bubbleSizeBy">area</option>
 <option name="charting.chart.nullValueMode">gaps</option>
 <option name="charting.chart.showDataLabels">all</option>
 <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
 <option name="charting.chart.stackMode">stacked</option>
 <option name="charting.chart.style">shiny</option>
 <option name="charting.drilldown">all</option>
 <option name="charting.layout.splitSeries">0</option>
 <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
 <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
 <option name="charting.legend.placement">right</option>
 <drilldown>
   <!-- Use set to specify the new token to be created.
            Use any token from the page or from the click event to produce the value needed. -->
   <set token="click_earliest">$earliest$</set>
   <set token="click_latest">$latest$</set>
   <!-- If we also set the form.sourcetype the input will get updated too -->
 </drilldown>






 <title>Test Panel 2 </title>
 <search>
   <query>
     host="My_host" TransactionId=TID*  "processingStatusCode":"REJECTED"| rex field=_raw max_match=0 "errorCode\\\\\":\\\\\"(?&lt;error_code&gt;\d+)\\\\\"" | rex field=_raw max_match=0 "responseCode\":\"(?&lt;response_code&gt;\w+)" | eval error_code1 = if(isnotnull(error_code) AND error_code!="", error_code,response_code) | stats count by error_code1| lookup CSA_Error.csv CSA_Code as error_code1 OUTPUT Description | table Description count  | where Description!= " "</query>
   <earliest>$click_earliest$</earliest>
   <latest>$click_latest$</latest>
 </search>
 <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
 <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
 <option name="charting.axisTitleX.visibility">visible</option>
 <option name="charting.axisTitleY.visibility">visible</option>
 <option name="charting.axisTitleY2.visibility">visible</option>
 <option name="charting.axisX.scale">linear</option>
 <option name="charting.axisY.scale">linear</option>
 <option name="charting.axisY2.enabled">0</option>
 <option name="charting.axisY2.scale">inherit</option>
 <option name="charting.chart">column</option>
 <option name="charting.chart.bubbleMaximumSize">50</option>
 <option name="charting.chart.bubbleMinimumSize">10</option>
 <option name="charting.chart.bubbleSizeBy">area</option>
 <option name="charting.chart.nullValueMode">gaps</option>
 <option name="charting.chart.showDataLabels">all</option>
 <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
 <option name="charting.chart.stackMode">default</option>
 <option name="charting.chart.style">shiny</option>
 <option name="charting.drilldown">none</option>
 <option name="charting.layout.splitSeries">0</option>
 <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
 <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
 <option name="charting.legend.placement">right</option>
0 Karma

sandeepmakkena
Contributor

Thank you.

0 Karma
Get Updates on the Splunk Community!

Adoption of RUM and APM at Splunk

    Unleash the power of Splunk Observability   Watch Now In this can't miss Tech Talk! The Splunk Growth ...

Routing logs with Splunk OTel Collector for Kubernetes

The Splunk Distribution of the OpenTelemetry (OTel) Collector is a product that provides a way to ingest ...

Welcome to the Splunk Community!

(view in My Videos) We're so glad you're here! The Splunk Community is place to connect, learn, give back, and ...