<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to change two parts of a search query based on input selection? in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449797#M127351</link>
    <description>&lt;P&gt;I have a column chart that needs to update based on the input selection (Hour/Weekday/Month - aka $field4$). I've managed to get it to update one part of the search query, but I need it to update two parts (not just one). &lt;/P&gt;

&lt;P&gt;For example, this is my query:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index=os sourcetype=cpu cpu=all 
**| eval date_wday=strftime(_time,$field4$)**
| stats avg(pctIdle) by date_wday 
| rename avg(pctIdle) AS "Avg CPU" 
**| eval sort_field = case(date_wday=="Monday",1, date_wday=="Tuesday",2, date_wday=="Wednesday",3, date_wday=="Thursday",4, date_wday=="Friday",5, date_wday=="Saturday",6, date_wday=="Sunday",7)**
| sort sort_field
| fields - sort_field
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;I can't seem to figure out how to also update the second part in bold (eval sort_field = case(date_wday...) when a selection for $field4$ is made and I need it to change so that if "Month" is selected, the second part of the query would update to: &lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;| eval sort_field = case(date_month=="January",1, date_month=="February",2, date_month=="March",3, date_month=="April",4, date_month=="May",5, date_month=="June",6, date_month=="July",7, date_month=="August",8, date_month=="September",9, date_month=="October",10, date_month=="November",11, date_month=="December",12)
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;IMG src="https://community.splunk.com/storage/temp/255928-input-change-search.png" alt="alt text" /&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 29 Sep 2020 21:11:41 GMT</pubDate>
    <dc:creator>josephinemho</dc:creator>
    <dc:date>2020-09-29T21:11:41Z</dc:date>
    <item>
      <title>How to change two parts of a search query based on input selection?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449797#M127351</link>
      <description>&lt;P&gt;I have a column chart that needs to update based on the input selection (Hour/Weekday/Month - aka $field4$). I've managed to get it to update one part of the search query, but I need it to update two parts (not just one). &lt;/P&gt;

&lt;P&gt;For example, this is my query:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index=os sourcetype=cpu cpu=all 
**| eval date_wday=strftime(_time,$field4$)**
| stats avg(pctIdle) by date_wday 
| rename avg(pctIdle) AS "Avg CPU" 
**| eval sort_field = case(date_wday=="Monday",1, date_wday=="Tuesday",2, date_wday=="Wednesday",3, date_wday=="Thursday",4, date_wday=="Friday",5, date_wday=="Saturday",6, date_wday=="Sunday",7)**
| sort sort_field
| fields - sort_field
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;I can't seem to figure out how to also update the second part in bold (eval sort_field = case(date_wday...) when a selection for $field4$ is made and I need it to change so that if "Month" is selected, the second part of the query would update to: &lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;| eval sort_field = case(date_month=="January",1, date_month=="February",2, date_month=="March",3, date_month=="April",4, date_month=="May",5, date_month=="June",6, date_month=="July",7, date_month=="August",8, date_month=="September",9, date_month=="October",10, date_month=="November",11, date_month=="December",12)
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;IMG src="https://community.splunk.com/storage/temp/255928-input-change-search.png" alt="alt text" /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Sep 2020 21:11:41 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449797#M127351</guid>
      <dc:creator>josephinemho</dc:creator>
      <dc:date>2020-09-29T21:11:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to change two parts of a search query based on input selection?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449798#M127352</link>
      <description>&lt;P&gt;While we could tell you how to do exactly what you ask, I believe you would be better served with this advice:  &lt;/P&gt;

&lt;P&gt;On your dash, have two different panels with different searches, and hide the search you don't need with &lt;CODE&gt;depends&lt;/CODE&gt; or &lt;CODE&gt;rejects&lt;/CODE&gt;.  That is conceptually simpler than swapping out language based on the selection, and it gives you more granular control over the appearance of the two different charts you want to present based on the selection. &lt;/P&gt;</description>
      <pubDate>Thu, 06 Sep 2018 03:15:06 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449798#M127352</guid>
      <dc:creator>DalJeanis</dc:creator>
      <dc:date>2018-09-06T03:15:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to change two parts of a search query based on input selection?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449799#M127353</link>
      <description>&lt;P&gt;@josephinemho, seems like while you need to display the Date on x-axis as Week Day or Month, you need to sort them on the actual order. However, even with your search SPL your logic might not work as expected in case there are more than one of same week day or month in the result. For example &lt;CODE&gt;Monday Monday Tuesday ...&lt;/CODE&gt;, in case the selected time spans two week. So I would recommend using String Date also to be fetched with &lt;CODE&gt;strftime()&lt;/CODE&gt; in &lt;CODE&gt;YYYY-MM-DD&lt;/CODE&gt; or &lt;CODE&gt;YYYY-MM&lt;/CODE&gt; format (depending on whether Week Or Month is chosen) followed by either WeekDay or Month. This will sort the results automatically using String Time. Then in your results you can use regular expression &lt;CODE&gt;replace()&lt;/CODE&gt; or &lt;CODE&gt;rex with sed&lt;/CODE&gt; depending on your preference for removing prefixed date.&lt;/P&gt;

&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="alt text"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/5732i623733C84972FA68/image-size/large?v=v2&amp;amp;px=999" role="button" title="alt text" alt="alt text" /&gt;&lt;/span&gt;&lt;/P&gt;

&lt;P&gt;Please try out the following run anywhere example. Notice &lt;STRONG&gt;Thursday appears twice as First and Last values in the series&lt;/STRONG&gt;. (PS: I have not included hour for simplicity but your can use the same logic for Weekday for hour as well)&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;&amp;lt;form&amp;gt;
  &amp;lt;label&amp;gt;Set tokens through change handler&amp;lt;/label&amp;gt;
  &amp;lt;fieldset submitButton="false"&amp;gt;
    &amp;lt;input type="time" token="tokTime" searchWhenChanged="true"&amp;gt;
      &amp;lt;label&amp;gt;&amp;lt;/label&amp;gt;
      &amp;lt;default&amp;gt;
        &amp;lt;earliest&amp;gt;-7d@h&amp;lt;/earliest&amp;gt;
        &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
      &amp;lt;/default&amp;gt;
    &amp;lt;/input&amp;gt;
    &amp;lt;input type="radio" token="tokSpan" searchWhenChanged="true"&amp;gt;
      &amp;lt;label&amp;gt;Select span&amp;lt;/label&amp;gt;
      &amp;lt;choice value="%Y/%m/%d - %A"&amp;gt;Weekday&amp;lt;/choice&amp;gt;
      &amp;lt;choice value="%Y/%m - %B"&amp;gt;Month&amp;lt;/choice&amp;gt;
      &amp;lt;default&amp;gt;%Y/%m/%d - %A&amp;lt;/default&amp;gt;
    &amp;lt;/input&amp;gt;
  &amp;lt;/fieldset&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Table&amp;lt;/title&amp;gt;
      &amp;lt;chart&amp;gt;
        &amp;lt;search&amp;gt;
          &amp;lt;query&amp;gt;index=_internal sourcetype=splunkd log_level=* 
| eval date_wday=strftime(_time,"$tokSpan$")
| stats avg(cpu_seconds) as "Avg CPU" by date_wday
| eval date_wday=replace(date_wday,"^([^\s]+)","")&amp;lt;/query&amp;gt;
          &amp;lt;earliest&amp;gt;$tokTime.earliest$&amp;lt;/earliest&amp;gt;
          &amp;lt;latest&amp;gt;$tokTime.latest$&amp;lt;/latest&amp;gt;
          &amp;lt;sampleRatio&amp;gt;1&amp;lt;/sampleRatio&amp;gt;
        &amp;lt;/search&amp;gt;
        &amp;lt;option name="charting.chart"&amp;gt;line&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.drilldown"&amp;gt;none&amp;lt;/option&amp;gt;
        &amp;lt;option name="refresh.display"&amp;gt;progressbar&amp;lt;/option&amp;gt;
      &amp;lt;/chart&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;STRONG&gt;OPTION 2&lt;/STRONG&gt;: If you need to stick to your original search and want to set more than one token you should use input &lt;CODE&gt;&amp;lt;change&amp;gt;&lt;/CODE&gt; event handler where you can set multiple tokens as per your need.&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;&amp;lt;change&amp;gt;
     &amp;lt;condition value="%A"&amp;gt;
           &amp;lt;set token="tokSortEval"&amp;gt;case(date_wday=="Monday",1, date_wday=="Tuesday",2, date_wday=="Wednesday",3, date_wday=="Thursday",4, date_wday=="Friday",5, date_wday=="Saturday",6, date_wday=="Sunday",7)&amp;lt;/set&amp;gt;
     &amp;lt;/condition&amp;gt;
     &amp;lt;condition value="%B"&amp;gt;
           &amp;lt;set token="tokSortEval"&amp;gt;case(date_month=="January",1, date_month=="February",2, date_month=="March",3, date_month=="April",4, date_month=="May",5, date_month=="June",6, date_month=="July",7, date_month=="August",8, date_month=="September",9, date_month=="October",10, date_month=="November",11, date_month=="December",12)&amp;lt;/set&amp;gt;
     &amp;lt;/condition&amp;gt;
&amp;lt;/change&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Then use &lt;CODE&gt;$tokSortEval$&lt;/CODE&gt; in your second part of search i.e.&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;| eval sort_field = $tokSortEval$
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 06 Sep 2018 04:58:22 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449799#M127353</guid>
      <dc:creator>niketn</dc:creator>
      <dc:date>2018-09-06T04:58:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to change two parts of a search query based on input selection?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449800#M127354</link>
      <description>&lt;P&gt;Thank you so much @niketnilay ^_^ I went with your second suggestion and the dashboard working perfectly now!!&lt;/P&gt;

&lt;P&gt;Here's the first section of XML (for token setting/switching text in search query):&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;      &amp;lt;input type="radio" token="field4" searchWhenChanged="true"&amp;gt;
        &amp;lt;label&amp;gt;By Hour/Weekday/Month&amp;lt;/label&amp;gt;
        &amp;lt;choice value="&amp;amp;quot;%H&amp;amp;quot;"&amp;gt;Hour&amp;lt;/choice&amp;gt;
        &amp;lt;choice value="&amp;amp;quot;%A&amp;amp;quot;"&amp;gt;Weekday&amp;lt;/choice&amp;gt;
        &amp;lt;choice value="&amp;amp;quot;%B&amp;amp;quot;"&amp;gt;Month&amp;lt;/choice&amp;gt;
        &amp;lt;change&amp;gt;
          &amp;lt;condition value="&amp;amp;quot;%H&amp;amp;quot;"&amp;gt;
            &amp;lt;set token="date_label"&amp;gt;Hour&amp;lt;/set&amp;gt;
            &amp;lt;set token="sort_query"&amp;gt;&amp;lt;/set&amp;gt;
          &amp;lt;/condition&amp;gt;
          &amp;lt;condition value="&amp;amp;quot;%A&amp;amp;quot;"&amp;gt;
            &amp;lt;set token="date_label"&amp;gt;Weekday&amp;lt;/set&amp;gt;
            &amp;lt;set token="sort_query"&amp;gt;| eval sort_field = case(date=="Monday",1, date=="Tuesday",2, date=="Wednesday",3, date=="Thursday",4, date=="Friday",5, date=="Saturday",6, date=="Sunday",7)&amp;lt;/set&amp;gt;
          &amp;lt;/condition&amp;gt;
          &amp;lt;condition value="&amp;amp;quot;%B&amp;amp;quot;"&amp;gt;
            &amp;lt;set token="date_label"&amp;gt;Month&amp;lt;/set&amp;gt;
            &amp;lt;set token="sort_query"&amp;gt;| eval sort_field = case(date=="January",1, date=="February",2, date=="March",3, date=="April",4, date=="May",5, date=="June",6, date=="July",7, date=="August",8, date=="September",9, date=="October",10, date=="November",11, date=="December",12)&amp;lt;/set&amp;gt;
          &amp;lt;/condition&amp;gt;
        &amp;lt;/change&amp;gt;
        &amp;lt;default&amp;gt;"%A"&amp;lt;/default&amp;gt;
        &amp;lt;initialValue&amp;gt;"%A"&amp;lt;/initialValue&amp;gt;
      &amp;lt;/input&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Second section of XML (for graphs):&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;chart&amp;gt;
        &amp;lt;title&amp;gt;By $date_label$&amp;lt;/title&amp;gt;
        &amp;lt;search&amp;gt;
          &amp;lt;query&amp;gt;index=os (sourcetype=cpu cpu=all) OR (sourcetype=vmstat) 
| lookup sa_managed_servers_new.csv host 
| search server_group=SA machine_type=$field2$ sadb_service=$field3$
| eval Percent_CPU_Load = 100 - pctIdle 
| eval date=strftime(_time,$field4$) 
| stats avg(Percent_CPU_Load) avg(memUsedPct) avg(swapUsedPct) by date 
| rename avg(Percent_CPU_Load) AS "Avg CPU" avg(memUsedPct) as "Avg Memory" avg(swapUsedPct) AS "Avg Swap Memory"
$sort_query$
| sort sort_field
| fields - sort_field&amp;lt;/query&amp;gt;
          &amp;lt;earliest&amp;gt;$field1.earliest$&amp;lt;/earliest&amp;gt;
          &amp;lt;latest&amp;gt;$field1.latest$&amp;lt;/latest&amp;gt;
        &amp;lt;/search&amp;gt;
        &amp;lt;option name="charting.axisTitleX.visibility"&amp;gt;collapsed&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.axisTitleY.text"&amp;gt;%&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.axisY.maximumNumber"&amp;gt;100&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.axisY.minimumNumber"&amp;gt;0&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.chart"&amp;gt;line&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.chart.showDataLabels"&amp;gt;minmax&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.drilldown"&amp;gt;none&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.layout.splitSeries"&amp;gt;0&amp;lt;/option&amp;gt;
      &amp;lt;/chart&amp;gt;
    &amp;lt;/panel&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="alt text"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/5733i31070C4D5BEF75E5/image-size/large?v=v2&amp;amp;px=999" role="button" title="alt text" alt="alt text" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 06 Sep 2018 22:18:46 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-change-two-parts-of-a-search-query-based-on-input/m-p/449800#M127354</guid>
      <dc:creator>josephinemho</dc:creator>
      <dc:date>2018-09-06T22:18:46Z</dc:date>
    </item>
  </channel>
</rss>

