<?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 create a table and align rows for related fields using stats? in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188264#M54246</link>
    <description>&lt;P&gt;Why not simply this&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt; index="something" sourcetype="something else" Host="" Level="high" Err_Code="" | stats count as Count by Host, Data, Err_Code
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 28 Aug 2015 14:19:39 GMT</pubDate>
    <dc:creator>somesoni2</dc:creator>
    <dc:date>2015-08-28T14:19:39Z</dc:date>
    <item>
      <title>How to create a table and align rows for related fields using stats?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188260#M54242</link>
      <description>&lt;P&gt;Sorry for the lengthy question......&lt;/P&gt;

&lt;P&gt;Here is what I am trying to achieve:&lt;BR /&gt;
For a event, containing the following data:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;"host1" "high" "EC2000" "Not enough RAM" more data...
"host2" "high" "EC1000" "Not enough Disk space or Disk Fault" more data...
"host3" "high" "EC1000" "Not enough Disk space or Disk Fault" more data..
"host3" "high" "EC1001" "Not enough Disk space or Disk Fault" more data..
"host3" "high" "EC1000" "Not enough RAM" more data...
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;The event has the following fields:&lt;BR /&gt;
Host, Level, Err_Code, Data&lt;/P&gt;

&lt;P&gt;So for the host1 as an example:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;Host="host1"
Level="high"
Err_Code="EC2000"
Data="Not enough RAM"
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;What I am trying to achieve is a report/table that looks like:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;&amp;lt;table&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;Host&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Data&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Err_Code&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Count&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;host1&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Not enough RAM&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;EC2000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;host2&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Not enough Disk space or Disk Fault&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;EC1000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;host3&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Not enough Disk space or Disk Fault&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;EC1000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;EC1001&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Not enough RAM&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;EC2000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;EM&gt;Note EC2000 and EC2001 are related problems&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;I am using the following search:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index="something" sourcetype="something else" Host="" Level="high" Err_Code="" | dedup Err_Code, Host | stats count(ERR_Code) AS Count, values(Err_Code) AS Err_Code, values(Data) AS Data by Host | table Host, Err_Code, Data, Count
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Which gives me something like: &lt;BR /&gt;
Host Data Err_Code Count&lt;BR /&gt;
host1 Not Enough RAM EC1000 1&lt;BR /&gt;
host 2 Not enough Disk space or Disk Fault EC2000 1&lt;BR /&gt;
host 3 Not Enough Disk space or Disk Fault EC1000 3&lt;BR /&gt;
Not Enough RAM EC1001&lt;BR /&gt;
EC2000&lt;/P&gt;

&lt;P&gt;Which is not quite correct, the Data needs to row align with the code. I understand why this is so,&lt;BR /&gt;
therefore, I tried the following:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index="something" sourcetype="something else" Host="" Level="high" Err_Code="" | dedup Err_Code, Host 
| eval err_detail=Err_Code . "," , Data
| stats count(err_detail) AS Count, values(err_detail) AS err_detail, values(Err_Code) AS Err_Code by Host 
| eval temp=split(err_detail,",") | eval Code=mvindex(temp,0) | eval Details=mvindex(temp,1)
| table Host, Err_Code, err_detail, Code, Details, Count
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;This produces something like:&lt;BR /&gt;
Host Err_Code err_detail Code Details Count&lt;BR /&gt;
host1 EC1000 EC2000,Not Enough RAM EC1000 Not Enough RAM 1&lt;BR /&gt;
host 2 EC2000 EC1000,Not enough Disk space or Disk Fault EC2000 Not enough Disk space or Disk Fault 1&lt;BR /&gt;
host 3 EC1000 EC1000,Not enough Disk space or Disk Fault 3&lt;BR /&gt;
EC1001 EC1001,Not enough Disk space or Disk Fault &lt;BR /&gt;
EC2000 EC2000,Not Enough RAM&lt;/P&gt;

&lt;P&gt;It seems that if I have more that one error row for a given host, the splitting mechanism does not work as I expected.&lt;/P&gt;

&lt;P&gt;What am I not understanding here?&lt;/P&gt;

&lt;P&gt;Sorry again for the lengthy question.&lt;/P&gt;

&lt;P&gt;Regards..&lt;/P&gt;</description>
      <pubDate>Tue, 29 Sep 2020 07:05:11 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188260#M54242</guid>
      <dc:creator>ghannemann</dc:creator>
      <dc:date>2020-09-29T07:05:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a table and align rows for related fields using stats?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188261#M54243</link>
      <description>&lt;P&gt;The trick to get "row alignment" as you call it is to use &lt;CODE&gt;list&lt;/CODE&gt;, which does not dedup and resort, instead of &lt;CODE&gt;values&lt;/CODE&gt;, which does. Try this:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index="something" sourcetype="something else" Level="high" | dedup Err_Code, Host | fillnull value="-" Err_Code Data | stats count AS Count list(Err_Code) AS Err_Code list(Data) AS Data BY Host
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 28 Aug 2015 04:57:54 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188261#M54243</guid>
      <dc:creator>woodcock</dc:creator>
      <dc:date>2015-08-28T04:57:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a table and align rows for related fields using stats?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188262#M54244</link>
      <description>&lt;P&gt;Is the last line of your sample data wrong? I think you mean this:&lt;BR /&gt;
"host3" "high" "EC2000" "Not enough RAM" more data&lt;/P&gt;</description>
      <pubDate>Fri, 28 Aug 2015 07:51:24 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188262#M54244</guid>
      <dc:creator>chanmi2</dc:creator>
      <dc:date>2015-08-28T07:51:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a table and align rows for related fields using stats?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188263#M54245</link>
      <description>&lt;P&gt;I think you can split by host and Data if I did not misunderstand your question.&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index="something" sourcetype="something else" Level="high" | dedup Err_Code, Host | stats count as Count, values(Err_Code) as Err_Code by Host, Data | eval Err_Code_List=mvjoin(Err_Code, ",") | stats sum(Count) as Count, list(Data) as Data, list(Err_Code_List) as Err_Code by Host
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;or&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;index="something" sourcetype="something else" Level="high" | dedup Err_Code, Host | stats count as Count by Host, Data, Err_Code | streamstats count as MAKE_EMPTY_COUNT by Host, Data | eval Data=if(MAKE_EMPTY_COUNT==1, Data, "_") | stats sum(Count) as Count, list(Data) as Data, list(Err_Code) as Err_Code by Host
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Hope this helps&lt;/P&gt;</description>
      <pubDate>Fri, 28 Aug 2015 07:57:01 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188263#M54245</guid>
      <dc:creator>chanmi2</dc:creator>
      <dc:date>2015-08-28T07:57:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a table and align rows for related fields using stats?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188264#M54246</link>
      <description>&lt;P&gt;Why not simply this&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt; index="something" sourcetype="something else" Host="" Level="high" Err_Code="" | stats count as Count by Host, Data, Err_Code
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 28 Aug 2015 14:19:39 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-create-a-table-and-align-rows-for-related-fields-using/m-p/188264#M54246</guid>
      <dc:creator>somesoni2</dc:creator>
      <dc:date>2015-08-28T14:19:39Z</dc:date>
    </item>
  </channel>
</rss>

