<?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 Re: How to extract rex specific data from Splunk log? in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632900#M219840</link>
    <description>&lt;P data-unlink="true"&gt;The sample messages you posted are conformant JSON. &amp;nbsp;I don't understand why you need to use rex to extract - or why you need extraction at all. &amp;nbsp;If these are _raw, Splunk would have automatically recognized it and give you a field named&amp;nbsp;locationCategoryCodes{}.locationCode. &amp;nbsp;As I always say, do not treat structured data as text. &amp;nbsp;If for whatever reason Splunk doesn't give you that field, you can use spath to extract all fields ("nodes" in JSON lingo) in these messages.&lt;/P&gt;&lt;P data-unlink="true"&gt;Here is emulation using your sample data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults
| fields - _time
| eval test=split("{\"Item Id\": \"1\", \"locationCategoryCodes\": [{\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"ABC\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"XYZ\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_2\", \"ruleID\": [\"138561\"]}], \"locationCode\": \"DEF\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_3\", \"ruleID\": [\"138614\"]}], \"locationCode\": \"IJK\"}], \"timestamp\": \"2023-01-27T00:10:32.367 +0000\"}|||{\"Item Id\": \"2\", \"locationCategoryCodes\": [{\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"ABC\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_3\", \"ruleID\": [\"138614\"]}], \"locationCode\": \"IJK\"}], \"timestamp\": \"2023-01-27T00:10:32.367 +0000\"}", "|||")
| mvexpand test
| eval isgood = if(json_valid(test), "yes", "no") ``` quick test to see if message is conformant ```
| rename test as _raw
``` data emulation above ```
| spath ``` use this if Splunk doesn't give you locationCategoryCodes{}.locationCode ```
| stats count by locationCategoryCodes{}.locationCode
| rename locationCategoryCodes{}.locationCode as "Location Code"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Location Code&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;DEF&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;IJK&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;XYZ&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Thu, 02 Mar 2023 03:23:07 GMT</pubDate>
    <dc:creator>yuanliu</dc:creator>
    <dc:date>2023-03-02T03:23:07Z</dc:date>
    <item>
      <title>How to extract rex specific data from Splunk log?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632388#M219677</link>
      <description>&lt;P&gt;We have a rule engine that assigns category codes to items. The category codes are assigned per location. We want to extract a statistical data from the log to show how many messages were published for each location.&lt;/P&gt;
&lt;P&gt;For example&lt;/P&gt;
&lt;P&gt;We want to get a result like below from below message&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;&lt;STRONG&gt;Location code&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="50%"&gt;&lt;STRONG&gt;count&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;ABC&lt;/TD&gt;
&lt;TD width="50%"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;XYZ&lt;/TD&gt;
&lt;TD width="50%"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;DEF&lt;/TD&gt;
&lt;TD width="50%"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;IJK&lt;/TD&gt;
&lt;TD width="50%"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;message #1:&lt;BR /&gt;&amp;nbsp;{"Item Id": "1", "locationCategoryCodes": [{"categoryCodes": [{"categoryCode": "CAT_1", "ruleID": ["138563"]}], "locationCode": "ABC"}, {"categoryCodes": [{"categoryCode": "CAT_1", "ruleID": ["138563"]}], "locationCode": "XYZ"}, {"categoryCodes": [{"categoryCode": "CAT_2", "ruleID": ["138561"]}], "locationCode": "DEF"}, {"categoryCodes": [{"categoryCode": "CAT_3", "ruleID": ["138614"]}], "locationCode": "IJK"}], "timestamp": "2023-01-27T00:10:32.367 +0000"}&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;message #2:&lt;BR /&gt;&amp;nbsp;{"Item Id": "2", "locationCategoryCodes": [{"categoryCodes": [{"categoryCode": "CAT_1", "ruleID": ["138563"]}], "locationCode": "ABC"}, {"categoryCodes": [{"categoryCode": "CAT_3", "ruleID": ["138614"]}], "locationCode": "IJK"}], "timestamp": "2023-01-27T00:10:32.367 +0000"}&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;/P&gt;
&lt;P&gt;Anirban&lt;/P&gt;</description>
      <pubDate>Mon, 27 Feb 2023 18:23:17 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632388#M219677</guid>
      <dc:creator>AnirbanG</dc:creator>
      <dc:date>2023-02-27T18:23:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to extract rex specific data from Splunk log?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632410#M219687</link>
      <description>&lt;P&gt;What have you tried so far?&amp;nbsp; How did that go?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is the locationCode field already extracted?&amp;nbsp; If so, then you can count them with the stats command.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| stats count by locationCode
| rename locationCode to "Location code"
| table "Location code" count&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 27 Feb 2023 20:29:24 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632410#M219687</guid>
      <dc:creator>richgalloway</dc:creator>
      <dc:date>2023-02-27T20:29:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to extract rex specific data from Splunk log?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632534#M219725</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/213957"&gt;@richgalloway&lt;/a&gt;&amp;nbsp; ..Unfortunately I could not extract &lt;SPAN&gt;locationCode&amp;nbsp;fields dynamically. I tried to write some rex but those did not work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Need to find a way to&amp;nbsp;locationCodes (e.g.&amp;nbsp; ABC,XYZ,DEF) from the log&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;{"Item Id": "1", "locationCategoryCodes": [{"categoryCodes": [{"categoryCode": "CAT_1", "ruleID": ["138563"]}], "locationCode": "ABC"}, {"categoryCodes": [{"categoryCode": "CAT_1", "ruleID": ["138563"]}], "locationCode": "XYZ"}, {"categoryCodes": [{"categoryCode": "CAT_2", "ruleID": ["138561"]}], "locationCode": "DEF"}, {"categoryCodes": [{"categoryCode": "CAT_3", "ruleID": ["138614"]}], "locationCode": "IJK"}], "timestamp": "2023-01-27T00:10:32.367 +0000"}&lt;/P&gt;</description>
      <pubDate>Tue, 28 Feb 2023 10:03:46 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632534#M219725</guid>
      <dc:creator>AnirbanG</dc:creator>
      <dc:date>2023-02-28T10:03:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to extract rex specific data from Splunk log?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632614#M219765</link>
      <description>&lt;P&gt;What rex did you try?&lt;/P&gt;&lt;P&gt;Try this&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| rex "locationCode\\\": \\\"(?&amp;lt;locationCode&amp;gt;[^\\\"]+)"&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 28 Feb 2023 16:01:59 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632614#M219765</guid>
      <dc:creator>richgalloway</dc:creator>
      <dc:date>2023-02-28T16:01:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to extract rex specific data from Splunk log?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632644#M219780</link>
      <description>&lt;P&gt;Here you go:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults 
| eval test="( {\"Item Id\": \"1\", \"locationCategoryCodes\": [{\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"ABC\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"XYZ\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_2\", \"ruleID\": [\"138561\"]}], \"locationCode\": \"DEF\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_3\", \"ruleID\": [\"138614\"]}], \"locationCode\": \"IJK\"}], \"timestamp\": \"2023-01-27T00:10:32.367 +0000\"} ¤ {\"Item Id\": \"2\", \"locationCategoryCodes\": [{\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"ABC\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_3\", \"ruleID\": [\"138614\"]}], \"locationCode\": \"IJK\"}], \"timestamp\": \"2023-01-27T00:10:32.367 +0000\"})"
| makemv test delim="¤"
| mvexpand test
| rename test as _raw


| rex max_match=0 "locationCode.: .(?&amp;lt;location&amp;gt;[^\"]+)"
| mvexpand location
| stats count by location&lt;/LI-CODE&gt;&lt;P&gt;Everything before the two empty lines are just to create sample data to make proof of concept.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Feb 2023 19:28:30 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632644#M219780</guid>
      <dc:creator>jotne</dc:creator>
      <dc:date>2023-02-28T19:28:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to extract rex specific data from Splunk log?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632900#M219840</link>
      <description>&lt;P data-unlink="true"&gt;The sample messages you posted are conformant JSON. &amp;nbsp;I don't understand why you need to use rex to extract - or why you need extraction at all. &amp;nbsp;If these are _raw, Splunk would have automatically recognized it and give you a field named&amp;nbsp;locationCategoryCodes{}.locationCode. &amp;nbsp;As I always say, do not treat structured data as text. &amp;nbsp;If for whatever reason Splunk doesn't give you that field, you can use spath to extract all fields ("nodes" in JSON lingo) in these messages.&lt;/P&gt;&lt;P data-unlink="true"&gt;Here is emulation using your sample data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults
| fields - _time
| eval test=split("{\"Item Id\": \"1\", \"locationCategoryCodes\": [{\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"ABC\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"XYZ\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_2\", \"ruleID\": [\"138561\"]}], \"locationCode\": \"DEF\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_3\", \"ruleID\": [\"138614\"]}], \"locationCode\": \"IJK\"}], \"timestamp\": \"2023-01-27T00:10:32.367 +0000\"}|||{\"Item Id\": \"2\", \"locationCategoryCodes\": [{\"categoryCodes\": [{\"categoryCode\": \"CAT_1\", \"ruleID\": [\"138563\"]}], \"locationCode\": \"ABC\"}, {\"categoryCodes\": [{\"categoryCode\": \"CAT_3\", \"ruleID\": [\"138614\"]}], \"locationCode\": \"IJK\"}], \"timestamp\": \"2023-01-27T00:10:32.367 +0000\"}", "|||")
| mvexpand test
| eval isgood = if(json_valid(test), "yes", "no") ``` quick test to see if message is conformant ```
| rename test as _raw
``` data emulation above ```
| spath ``` use this if Splunk doesn't give you locationCategoryCodes{}.locationCode ```
| stats count by locationCategoryCodes{}.locationCode
| rename locationCategoryCodes{}.locationCode as "Location Code"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Location Code&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;DEF&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;IJK&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;XYZ&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 02 Mar 2023 03:23:07 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-extract-rex-specific-data-from-Splunk-log/m-p/632900#M219840</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2023-03-02T03:23:07Z</dc:date>
    </item>
  </channel>
</rss>

