metron-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From l...@apache.org
Subject [3/5] metron git commit: METRON-1776: Update public web site to point at 0.6.0 new release
Date Thu, 13 Sep 2018 19:49:01 GMT
http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-job/index.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-job/index.html b/current-book/metron-platform/metron-job/index.html
new file mode 100644
index 0000000..388ea80
--- /dev/null
+++ b/current-book/metron-platform/metron-job/index.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-job/index.md at 2018-09-12
+ | Rendered using Apache Maven Fluido Skin 1.7
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Metron &#x2013; Metron Job</title>
+    <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
+    <link rel="stylesheet" href="../../css/site.css" />
+    <link rel="stylesheet" href="../../css/print.css" media="print" />
+    <script type="text/javascript" src="../../js/apache-maven-fluido-1.7.min.js"></script>
+<script type="text/javascript">
+              $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
+            </script>
+  </head>
+  <body class="topBarDisabled">
+    <div class="container-fluid">
+      <div id="banner">
+        <div class="pull-left"><a href="http://metron.apache.org/" id="bannerLeft"><img src="../../images/metron-logo.png"  alt="Apache Metron" width="148px" height="48px"/></a></div>
+        <div class="pull-right"></div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+      <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
+      <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
+    <li class="active ">Metron Job</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
+        </ul>
+      </div>
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+    <ul class="nav nav-list">
+      <li class="nav-header">User Documentation</li>
+    <li><a href="../../index.html" title="Metron"><span class="icon-chevron-down"></span>Metron</a>
+    <ul class="nav nav-list">
+    <li><a href="../../CONTRIBUTING.html" title="CONTRIBUTING"><span class="none"></span>CONTRIBUTING</a></li>
+    <li><a href="../../Upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a></li>
+    <li><a href="../../metron-analytics/index.html" title="Analytics"><span class="icon-chevron-right"></span>Analytics</a></li>
+    <li><a href="../../metron-contrib/metron-docker/index.html" title="Docker"><span class="none"></span>Docker</a></li>
+    <li><a href="../../metron-contrib/metron-performance/index.html" title="Performance"><span class="none"></span>Performance</a></li>
+    <li><a href="../../metron-deployment/index.html" title="Deployment"><span class="icon-chevron-right"></span>Deployment</a></li>
+    <li><a href="../../metron-interface/metron-alerts/index.html" title="Alerts"><span class="none"></span>Alerts</a></li>
+    <li><a href="../../metron-interface/metron-config/index.html" title="Config"><span class="none"></span>Config</a></li>
+    <li><a href="../../metron-interface/metron-rest/index.html" title="Rest"><span class="none"></span>Rest</a></li>
+    <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
+    <ul class="nav nav-list">
+    <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
+    <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
+    <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
+    <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
+    <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
+    <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li class="active"><a href="#"><span class="none"></span>Job</a></li>
+    <li><a href="../../metron-platform/metron-management/index.html" title="Management"><span class="none"></span>Management</a></li>
+    <li><a href="../../metron-platform/metron-parsers/index.html" title="Parsers"><span class="icon-chevron-right"></span>Parsers</a></li>
+    <li><a href="../../metron-platform/metron-pcap-backend/index.html" title="Pcap-backend"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
+    <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
+    </ul>
+</li>
+    <li><a href="../../metron-sensors/index.html" title="Sensors"><span class="icon-chevron-right"></span>Sensors</a></li>
+    <li><a href="../../metron-stellar/stellar-3rd-party-example/index.html" title="Stellar-3rd-party-example"><span class="none"></span>Stellar-3rd-party-example</a></li>
+    <li><a href="../../metron-stellar/stellar-common/index.html" title="Stellar-common"><span class="icon-chevron-right"></span>Stellar-common</a></li>
+    <li><a href="../../metron-stellar/stellar-zeppelin/index.html" title="Stellar-zeppelin"><span class="none"></span>Stellar-zeppelin</a></li>
+    <li><a href="../../use-cases/index.html" title="Use-cases"><span class="icon-chevron-right"></span>Use-cases</a></li>
+    </ul>
+</li>
+</ul>
+          <hr />
+          <div id="poweredBy">
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /></a>
+            </div>
+          </div>
+        </div>
+        <div id="bodyColumn"  class="span10" >
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<h1>Metron Job</h1>
+<p><a name="Metron_Job"></a></p>
+<p>This module holds abstractions for creating jobs. The main actors are a JobManager interface and subsequent implementation, InMemoryJobManger, that handles maintaining a cache of running and completed Statusable jobs. Each Statusable can provide a Finalizer implementation that should be executed on completion of the underlying job. Successful jobs should return a Pageable object that allow consumers to request results on a per-page basis.</p>
+<div class="section">
+<h2><a name="Job_State_Statechart"></a>Job State Statechart</h2>
+<p><img src="../../images/metron-job_state_statechart_diagram.svg" alt="Job State Statechart" /></p></div>
+        </div>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
+            and the Apache Metron project logo are trademarks of The Apache Software Foundation.
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-management/index.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-management/index.html b/current-book/metron-platform/metron-management/index.html
index f9ea1ce..0aa9eda 100644
--- a/current-book/metron-platform/metron-management/index.html
+++ b/current-book/metron-platform/metron-management/index.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-management/index.md at 2018-06-07
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-management/index.md at 2018-09-12
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180607" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Metron &#x2013; Stellar REPL Management Utilities</title>
     <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
@@ -32,8 +32,8 @@
       <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
       <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
     <li class="active ">Stellar REPL Management Utilities</li>
-        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-06-07</li>
-          <li id="projectVersion" class="pull-right">Version: 0.5.0</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
         </ul>
       </div>
       <div class="row-fluid">
@@ -55,15 +55,16 @@
     <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
-    <li><a href="../../metron-platform/metron-api/index.html" title="Api"><span class="none"></span>Api</a></li>
     <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
     <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
     <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
     <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
     <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li><a href="../../metron-platform/metron-job/index.html" title="Job"><span class="none"></span>Job</a></li>
     <li class="active"><a href="#"><span class="none"></span>Management</a></li>
     <li><a href="../../metron-platform/metron-parsers/index.html" title="Parsers"><span class="icon-chevron-right"></span>Parsers</a></li>
     <li><a href="../../metron-platform/metron-pcap-backend/index.html" title="Pcap-backend"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
     <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
     </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-parsers/3rdPartyParser.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-parsers/3rdPartyParser.html b/current-book/metron-platform/metron-parsers/3rdPartyParser.html
index 988580b..8d75d41 100644
--- a/current-book/metron-platform/metron-parsers/3rdPartyParser.html
+++ b/current-book/metron-platform/metron-parsers/3rdPartyParser.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/3rdPartyParser.md at 2018-06-07
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/3rdPartyParser.md at 2018-09-12
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180607" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Metron &#x2013; Custom Metron Parsers</title>
     <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
@@ -32,8 +32,8 @@
       <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
       <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
     <li class="active ">Custom Metron Parsers</li>
-        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-06-07</li>
-          <li id="projectVersion" class="pull-right">Version: 0.5.0</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
         </ul>
       </div>
       <div class="row-fluid">
@@ -55,20 +55,22 @@
     <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
-    <li><a href="../../metron-platform/metron-api/index.html" title="Api"><span class="none"></span>Api</a></li>
     <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
     <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
     <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
     <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
     <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li><a href="../../metron-platform/metron-job/index.html" title="Job"><span class="none"></span>Job</a></li>
     <li><a href="../../metron-platform/metron-management/index.html" title="Management"><span class="none"></span>Management</a></li>
     <li><a href="../../metron-platform/metron-parsers/index.html" title="Parsers"><span class="icon-chevron-down"></span>Parsers</a>
     <ul class="nav nav-list">
     <li class="active"><a href="#"><span class="none"></span>3rdPartyParser</a></li>
+    <li><a href="../../metron-platform/metron-parsers/ParserChaining.html" title="ParserChaining"><span class="none"></span>ParserChaining</a></li>
     <li><a href="../../metron-platform/metron-parsers/parser-testing.html" title="parser-testing"><span class="none"></span>parser-testing</a></li>
     </ul>
 </li>
     <li><a href="../../metron-platform/metron-pcap-backend/index.html" title="Pcap-backend"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
     <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
     </ul>
 </li>
@@ -145,18 +147,18 @@ limitations under the License.
 <p>For this demonstration, let&#x2019;s create a maven project to compile our project.  We&#x2019;ll call it <tt>extra_parsers</tt>, so in your workspace, let&#x2019;s set up the maven project:</p>
 <ul>
 
-<li>Create the maven infrastructure for <tt>extra_parsers</tt> via</li>
-</ul>
+<li>
+
+<p>Create the maven infrastructure for <tt>extra_parsers</tt> via</p>
 
 <div>
 <div>
 <pre class="source">mkdir -p extra_parsers/src/{main,test}/java
 </pre></div></div>
+</li>
+<li>
 
-<ul>
-
-<li>Create a pom file indicating how we should build our parsers by editing <tt>extra_parsers/pom.xml</tt> with the following content:</li>
-</ul>
+<p>Create a pom file indicating how we should build our parsers by editing <tt>extra_parsers/pom.xml</tt> with the following content:</p>
 
 <div>
 <div>
@@ -207,7 +209,7 @@ limitations under the License.
      &lt;!-- We will set up the shade plugin to create a single jar at the
            end of the build lifecycle.  We will exclude some things and
            relocate others to simulate a real situation.
-           
+
            One thing to note is that it's a good practice to shade and
            relocate common libraries that may be dependencies in Metron.
            Your jar will be merged with the parsers jar, so the metron
@@ -289,11 +291,10 @@ limitations under the License.
   &lt;/build&gt;
 &lt;/project&gt;
 </pre></div></div>
+</li>
+<li>
 
-<ul>
-
-<li>Now let&#x2019;s create our parser  <tt>com.thirdparty.SimpleParser</tt> by creating the file <tt>extra-parsers/src/main/java/com/thirdparty/SimpleParser.java</tt> with the following content:</li>
-</ul>
+<p>Now let&#x2019;s create our parser  <tt>com.thirdparty.SimpleParser</tt> by creating the file <tt>extra-parsers/src/main/java/com/thirdparty/SimpleParser.java</tt> with the following content:</p>
 
 <div>
 <div>
@@ -332,12 +333,13 @@ public class SimpleParser extends BasicParser {
   }
 }
 </pre></div></div>
-
-<ul>
-
+</li>
 <li>Compile the parser via <tt>mvn clean package</tt> in <tt>extra_parsers</tt></li>
-</ul>
+<li>
+
 <p>This will create a jar containing your parser and its dependencies (sans Metron dependencies) in <tt>extra-parsers/target/extra-parsers-1.0-SNAPSHOT-uber.jar</tt></p>
+</li>
+</ul>
 <p><a name="Deploying_Your_Custom_Parser"></a></p>
 <h1>Deploying Your Custom Parser</h1>
 <p>In order to deploy your newly built custom parser, you would place the jar file above in the <tt>$METRON_HOME/parser_contrib</tt> directory on the Metron host (i.e. any host you would start parsers from or, alternatively, where the Metron REST is hosted).</p></div>
@@ -362,11 +364,15 @@ public class SimpleParser extends BasicParser {
 <h3><a name="Restart_the_REST_service_in_Ambari"></a>Restart the REST service in Ambari</h3>
 <p>In order for new parsers to be picked up, the REST service must be restarted.  You can do that from within Ambari by restarting the <tt>Metron REST</tt> service.</p></div>
 <div class="section">
-<h3><a name="Push_the_Zookeeper_Configs"></a>Push the Zookeeper Configs</h3>
-<p>Now push the config to Zookeeper with the following command: <tt>$METRON_HOME/bin/zk_load_configs.sh -m PUSH -i $METRON_HOME/config/zookeeper/ -z $ZOOKEEPER</tt></p></div>
-<div class="section">
 <h3><a name="Create_a_Kafka_Topic"></a>Create a Kafka Topic</h3>
-<p>Create a kafka topic, let&#x2019;s call it <tt>test</tt> via: <tt>/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper $ZOOKEEPER --create --topic test --partitions 1 --replication-factor 1</tt></p>
+<p>Create a kafka topic, let&#x2019;s call it <tt>test</tt>.</p>
+
+<div>
+<div>
+<pre class="source">KAFKA_HOME=/usr/hdp/current/kafka-broker
+$KAFKA_HOME/bin/kafka-topics.sh --zookeeper $ZOOKEEPER --create --topic test --partitions 1 --replication-factor 1
+</pre></div></div>
+
 <p>Note, in a real deployment, that topic would be named something more descriptive and would have replication factor and partitions set to something less trivial.</p></div>
 <div class="section">
 <h3><a name="Configure_Test_Parser"></a>Configure Test Parser</h3>
@@ -381,32 +387,40 @@ public class SimpleParser extends BasicParser {
 </pre></div></div>
 </div>
 <div class="section">
+<h3><a name="Push_the_Zookeeper_Configs"></a>Push the Zookeeper Configs</h3>
+<p>Now push the config to Zookeeper with the following command.</p>
+
+<div>
+<div>
+<pre class="source">$METRON_HOME/bin/zk_load_configs.sh -m PUSH -i $METRON_HOME/config/zookeeper/ -z $ZOOKEEPER
+</pre></div></div>
+</div>
+<div class="section">
 <h3><a name="Start_Parser"></a>Start Parser</h3>
 <p>Now we can start the parser and send some data through:</p>
 <ul>
 
-<li>Start the parser</li>
-</ul>
+<li>
+
+<p>Start the parser</p>
 
 <div>
 <div>
 <pre class="source">$METRON_HOME/bin/start_parser_topology.sh -k $BROKERLIST -z $ZOOKEEPER -s test
 </pre></div></div>
+</li>
+<li>
 
-<ul>
-
-<li>Send example data through:</li>
-</ul>
+<p>Send example data through:</p>
 
 <div>
 <div>
 <pre class="source">echo &quot;apache,metron&quot; | /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list $BROKERLIST --topic test
 </pre></div></div>
+</li>
+<li>
 
-<ul>
-
-<li>Validate data was written in ES:</li>
-</ul>
+<p>Validate data was written in ES:</p>
 
 <div>
 <div>
@@ -416,6 +430,8 @@ public class SimpleParser extends BasicParser {
 }
 '
 </pre></div></div>
+</li>
+<li>
 
 <p>This should yield something like:</p>
 
@@ -447,7 +463,8 @@ public class SimpleParser extends BasicParser {
   }
 }
 </pre></div></div>
-</div>
+</li>
+</ul></div>
 <div class="section">
 <h3><a name="Via_the_Management_UI"></a>Via the Management UI</h3>
 <p>As long as the REST service is restarted after new parsers are added to <tt>$METRON_HOME/parser_contrib</tt>, they are available in the UI to creating and deploying parsers.</p></div></div>

http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-parsers/ParserChaining.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-parsers/ParserChaining.html b/current-book/metron-platform/metron-parsers/ParserChaining.html
new file mode 100644
index 0000000..a4c9360
--- /dev/null
+++ b/current-book/metron-platform/metron-parsers/ParserChaining.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/ParserChaining.md at 2018-09-12
+ | Rendered using Apache Maven Fluido Skin 1.7
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Metron &#x2013; Parser Chaining</title>
+    <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
+    <link rel="stylesheet" href="../../css/site.css" />
+    <link rel="stylesheet" href="../../css/print.css" media="print" />
+    <script type="text/javascript" src="../../js/apache-maven-fluido-1.7.min.js"></script>
+<script type="text/javascript">
+              $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
+            </script>
+  </head>
+  <body class="topBarDisabled">
+    <div class="container-fluid">
+      <div id="banner">
+        <div class="pull-left"><a href="http://metron.apache.org/" id="bannerLeft"><img src="../../images/metron-logo.png"  alt="Apache Metron" width="148px" height="48px"/></a></div>
+        <div class="pull-right"></div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+      <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
+      <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
+    <li class="active ">Parser Chaining</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
+        </ul>
+      </div>
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+    <ul class="nav nav-list">
+      <li class="nav-header">User Documentation</li>
+    <li><a href="../../index.html" title="Metron"><span class="icon-chevron-down"></span>Metron</a>
+    <ul class="nav nav-list">
+    <li><a href="../../CONTRIBUTING.html" title="CONTRIBUTING"><span class="none"></span>CONTRIBUTING</a></li>
+    <li><a href="../../Upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a></li>
+    <li><a href="../../metron-analytics/index.html" title="Analytics"><span class="icon-chevron-right"></span>Analytics</a></li>
+    <li><a href="../../metron-contrib/metron-docker/index.html" title="Docker"><span class="none"></span>Docker</a></li>
+    <li><a href="../../metron-contrib/metron-performance/index.html" title="Performance"><span class="none"></span>Performance</a></li>
+    <li><a href="../../metron-deployment/index.html" title="Deployment"><span class="icon-chevron-right"></span>Deployment</a></li>
+    <li><a href="../../metron-interface/metron-alerts/index.html" title="Alerts"><span class="none"></span>Alerts</a></li>
+    <li><a href="../../metron-interface/metron-config/index.html" title="Config"><span class="none"></span>Config</a></li>
+    <li><a href="../../metron-interface/metron-rest/index.html" title="Rest"><span class="none"></span>Rest</a></li>
+    <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
+    <ul class="nav nav-list">
+    <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
+    <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
+    <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
+    <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
+    <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
+    <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li><a href="../../metron-platform/metron-job/index.html" title="Job"><span class="none"></span>Job</a></li>
+    <li><a href="../../metron-platform/metron-management/index.html" title="Management"><span class="none"></span>Management</a></li>
+    <li><a href="../../metron-platform/metron-parsers/index.html" title="Parsers"><span class="icon-chevron-down"></span>Parsers</a>
+    <ul class="nav nav-list">
+    <li><a href="../../metron-platform/metron-parsers/3rdPartyParser.html" title="3rdPartyParser"><span class="none"></span>3rdPartyParser</a></li>
+    <li class="active"><a href="#"><span class="none"></span>ParserChaining</a></li>
+    <li><a href="../../metron-platform/metron-parsers/parser-testing.html" title="parser-testing"><span class="none"></span>parser-testing</a></li>
+    </ul>
+</li>
+    <li><a href="../../metron-platform/metron-pcap-backend/index.html" title="Pcap-backend"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
+    <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
+    </ul>
+</li>
+    <li><a href="../../metron-sensors/index.html" title="Sensors"><span class="icon-chevron-right"></span>Sensors</a></li>
+    <li><a href="../../metron-stellar/stellar-3rd-party-example/index.html" title="Stellar-3rd-party-example"><span class="none"></span>Stellar-3rd-party-example</a></li>
+    <li><a href="../../metron-stellar/stellar-common/index.html" title="Stellar-common"><span class="icon-chevron-right"></span>Stellar-common</a></li>
+    <li><a href="../../metron-stellar/stellar-zeppelin/index.html" title="Stellar-zeppelin"><span class="none"></span>Stellar-zeppelin</a></li>
+    <li><a href="../../use-cases/index.html" title="Use-cases"><span class="icon-chevron-right"></span>Use-cases</a></li>
+    </ul>
+</li>
+</ul>
+          <hr />
+          <div id="poweredBy">
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /></a>
+            </div>
+          </div>
+        </div>
+        <div id="bodyColumn"  class="span10" >
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<h1>Parser Chaining</h1>
+<p><a name="Parser_Chaining"></a></p>
+<p>Aggregating many different types sensors into a single data source (e.g. syslog) and ingesting that aggregate sensor into Metron is a common pattern.  It is not obvious precisely how to manage these types of aggregate sensors as they require two-pass parsing.  This document will walk through an example of supporting this kind of multi-pass ingest.</p>
+<p>Multi-pass parser involves the following requirements:</p>
+<ul>
+
+<li>The enveloping parser (e.g. the aggregation format such as syslog or plain CSV) may contain metadata which should be ingested along with the data.</li>
+<li>The enveloping sensor contains many different sensor types</li>
+</ul>
+<p><a name="High_Level_Solution"></a></p>
+<h1>High Level Solution</h1>
+<p><img src="../../use-cases/parser_chaining/message_routing_high_level.svg" alt="High Level Approach" /></p>
+<p>At a high level, we continue to maintain the architectural invariant of a 1-1 relationship between logical sensors and storm topologies. Eventually this relationship may become more complex, but at the moment the approach is to construct a routing parser which will have two responsibilities:</p>
+<ul>
+
+<li>Parse the envelope (e.g. syslog data) and extract any metadata fields from the envelope to pass along</li>
+<li>Route the unfolded data to the appropriate kafka topic associated with the enveloped sensor data</li>
+</ul>
+<p>Because the data emitted from the routing parser is just like any data emitted from any other parser, in that it is a JSON blob like any data emitted from any parser, we will need to adjust the downstream parsers to extract the enveloped data from the JSON blob and treat it as the data to parse.</p>
+<p><a name="Architecting_a_Parser_Chaining_Solution_in_Metron"></a></p>
+<h1>Architecting a Parser Chaining Solution in Metron</h1>
+<p>Currently the approach to fulfill this requirement involves a couple knobs in the Parser infrastructure for Metron.</p>
+<p>Consider the case, for instance, where we have many different TYPES of messages wrapped inside of syslog. As an architectural abstraction, we would want to have the following properties:</p>
+<ul>
+
+<li>separate the concerns of parsing the individual types of messages from each other</li>
+<li>separate the concerns of parsing the individual types of messages from parsing the envelope</li>
+</ul>
+<div class="section">
+<h2><a name="Data_Dependent_Parser_Writing"></a>Data Dependent Parser Writing</h2>
+<p>Parsers allow users to configure the topic which the kafka producer uses in a couple of ways (from the parser config in an individual parser):</p>
+<ul>
+
+<li><tt>kafka.topic</tt> - Specify the topic in the config.  This can be updated by updating the config, but it is data independent (e.g. not dependent on the data in a message).</li>
+<li><tt>kafka.topicField</tt> - Specify the topic as the value of a particular field.  If unpopulated, then the message is dropped.  This is inherrently data dependent.</li>
+</ul>
+<p>The <tt>kafka.topicField</tt> parameter allows for data dependent topic selection and this inherrently enables the routing capabilities necessary for handling enveloped data.</p></div>
+<div class="section">
+<h2><a name="Flexibly_Interpreting_Data"></a>Flexibly Interpreting Data</h2>
+<div class="section">
+<h3><a name="Aside:_The_Role_of_Metadata_in_Metron"></a>Aside: The Role of Metadata in Metron</h3>
+<p>Before we continue, let&#x2019;s briefly talk about metadata.  We have exposed the ability to pass along metadata and interact with metadata in a decoupled way from the actual parser logic (i.e. the GrokParser should not have to consider how to interpret metadata).</p>
+<p>There are three choices about manipulating metadata in Metron:</p>
+<ul>
+
+<li>Should you merge metadata into the downstream message?</li>
+<li>If you do, should you use a key prefix to set it off from the message by default?</li>
+</ul>
+<p>This enables users to specify metadata independent of the data that is persisted downstream and can inform the operations of enrichment and the profiler.</p></div>
+<div class="section">
+<h3><a name="Interpretation"></a>Interpretation</h3>
+<p>Now that we have an approach which enables the routing of the data, the remaining question is how to decouple <i>parsing</i> data from <i>interpreting</i> data and metadata.  By default, Metron operates like so:</p>
+<ul>
+
+<li>The kafka record key (as a JSON Map) is considered metadata</li>
+<li>The kafka record value is considered data</li>
+</ul>
+<p>Beyond that, we presume defaults for this default strategy around handling metadata.  In particular, by default we do not merge metadata and use a <tt>metron.metadata</tt> prefix for all metadata.</p>
+<p>In order to enable chained parser WITH metadata, we allow the following to be specified via strategy in the parser config:</p>
+<ul>
+
+<li>How to extract the data from the kafka record</li>
+<li>How to extract the metadata from the kafka record</li>
+<li>The default operations for merging</li>
+<li>The prefix for the metadata key</li>
+</ul>
+<p>The available strategies, specified by the <tt>rawMessageStrategy</tt> configuration is either<tt>ENVELOPE</tt> or <tt>DEFAULT</tt>.</p>
+<p>Specifically, to enable parsing enveloped data (i.e. data in a field of a JSON blob with the other fields being metadata), one can specify the strategy and configuration of that strategy in the parser config.  One must specify the <tt>rawMessageStrategy</tt> as <tt>ENVELOPE</tt> in the parser and the <tt>rawMessageStrategyConfig</tt> to indicate the field which contains the data.</p>
+<p>Together with routing, we have the complete solution to chain parsers which can:</p>
+<ul>
+
+<li>parse the envelope</li>
+<li>route the parsed data to specific parsers</li>
+<li>have the specific parsers interpret the data via the <tt>rawMessageStrategy</tt> whereby they pull the data out from JSON Map that they receive</li>
+</ul>
+<p>Together this enables a directed acyclic graph of parsers to handle single or multi-layer parsing.</p></div>
+<div class="section">
+<h3><a name="Example"></a>Example</h3>
+<p>For a complete example, look at the <a href="../../use-cases/parser_chaining/index.html">parser chaining use-case</a>, however for a simple example the following should suffice.</p>
+<p>If I want to configure a CSV parser to parse data which has 3 columns <tt>f1</tt>, <tt>f2</tt> and <tt>f3</tt> and is held in a field called <tt>payload</tt> inside of a JSON Map, I can do so like this:</p>
+
+<div>
+<div>
+<pre class="source">{
+  &quot;parserClassName&quot; : &quot;org.apache.metron.parsers.csv.CSVParser&quot;
+  ,&quot;sensorTopic&quot; : &quot;my_topic&quot;
+  ,&quot;rawMessageStrategy&quot; : &quot;ENVELOPE&quot;
+  ,&quot;rawMessageStrategyConfig&quot; : {
+      &quot;messageField&quot; : &quot;payload&quot;,
+      &quot;metadataPrefix&quot; : &quot;&quot;
+  }
+  , &quot;parserConfig&quot;: {
+     &quot;columns&quot; : { &quot;f1&quot;: 0,
+                 , &quot;f2&quot;: 1,
+                 , &quot;f3&quot;: 2
+                 } 
+   }
+}
+</pre></div></div>
+
+<p>This would parse the following message:</p>
+
+<div>
+<div>
+<pre class="source">{
+  &quot;meta_f1&quot; : &quot;val1&quot;,
+  &quot;payload&quot; : &quot;foo,bar,grok&quot;,
+  &quot;original_string&quot; : &quot;2019 Jul, 01: val1 foo,bar,grok&quot;,
+  &quot;timestamp&quot; : 10000
+}
+</pre></div></div>
+
+<p>into</p>
+
+<div>
+<div>
+<pre class="source">{
+  &quot;meta_f1&quot; : &quot;val1&quot;,
+  &quot;f1&quot; : &quot;foo&quot;,
+  &quot;f2&quot; : &quot;bar&quot;,
+  &quot;f3&quot; : &quot;grok&quot;,
+  &quot;original_string&quot; : &quot;2019 Jul, 01: val1 foo,bar,grok&quot;,
+  &quot;timestamp&quot; : 10002
+}
+</pre></div></div>
+
+<p>Note a couple of things here:</p>
+<ul>
+
+<li>The metadata field <tt>meta_f1</tt> is not prefixed here because we configured the strategy with <tt>metadataPrefix</tt> as empty string.</li>
+<li>The <tt>timestamp</tt> is not inherited from the metadata</li>
+<li>The <tt>original_string</tt> is inherited from the metadata</li>
+</ul></div></div>
+        </div>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
+            and the Apache Metron project logo are trademarks of The Apache Software Foundation.
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-parsers/index.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-parsers/index.html b/current-book/metron-platform/metron-parsers/index.html
index 807a24e..0d1b7e4 100644
--- a/current-book/metron-platform/metron-parsers/index.html
+++ b/current-book/metron-platform/metron-parsers/index.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/index.md at 2018-06-07
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/index.md at 2018-09-12
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180607" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Metron &#x2013; Parsers</title>
     <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
@@ -32,8 +32,8 @@
       <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
       <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
     <li class="active ">Parsers</li>
-        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-06-07</li>
-          <li id="projectVersion" class="pull-right">Version: 0.5.0</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
         </ul>
       </div>
       <div class="row-fluid">
@@ -55,20 +55,22 @@
     <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
-    <li><a href="../../metron-platform/metron-api/index.html" title="Api"><span class="none"></span>Api</a></li>
     <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
     <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
     <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
     <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
     <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li><a href="../../metron-platform/metron-job/index.html" title="Job"><span class="none"></span>Job</a></li>
     <li><a href="../../metron-platform/metron-management/index.html" title="Management"><span class="none"></span>Management</a></li>
     <li class="active"><a href="#"><span class="icon-chevron-down"></span>Parsers</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/metron-parsers/3rdPartyParser.html" title="3rdPartyParser"><span class="none"></span>3rdPartyParser</a></li>
+    <li><a href="../../metron-platform/metron-parsers/ParserChaining.html" title="ParserChaining"><span class="none"></span>ParserChaining</a></li>
     <li><a href="../../metron-platform/metron-parsers/parser-testing.html" title="parser-testing"><span class="none"></span>parser-testing</a></li>
     </ul>
 </li>
     <li><a href="../../metron-platform/metron-pcap-backend/index.html" title="Pcap-backend"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
     <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
     </ul>
 </li>
@@ -152,6 +154,8 @@ limitations under the License.
 </ul>
 </li>
 <li><tt>jsonpQuery</tt> : A <a href="#json_path">JSON Path</a> query string. If present, the result of the JSON Path query should be a list of messages. This is useful if you have a JSON document which contains a list or array of messages embedded in it, and you do not have another means of splitting the message.</li>
+<li><tt>wrapInEntityArray</tt> : <tt>&quot;true&quot; or &quot;false&quot;</tt>. If <tt>jsonQuery</tt> is present and this flag is present and set to <tt>&quot;true&quot;</tt>, the incoming message will be wrapped in a JSON  entity and array. for example: <tt>{&quot;name&quot;:&quot;value&quot;},{&quot;name2&quot;,&quot;value2}</tt> will be wrapped as <tt>{&quot;message&quot; : [{&quot;name&quot;:&quot;value&quot;},{&quot;name2&quot;,&quot;value2}]}</tt>. This is using the default value for <tt>wrapEntityName</tt> if that property is not set.</li>
+<li><tt>wrapEntityName</tt> : Sets the name to use when wrapping JSON using <tt>wrapInEntityArray</tt>.  The <tt>jsonpQuery</tt> should reference this name.</li>
 <li>A field called <tt>timestamp</tt> is expected to exist and, if it does not, then current time is inserted.</li>
 </ul>
 </li>
@@ -179,7 +183,9 @@ limitations under the License.
 <div class="section">
 <h2><a name="Parser_Architecture"></a>Parser Architecture</h2>
 <p><img src="../../images/parser_arch.png" alt="Architecture" /></p>
-<p>Data flows through the parser bolt via kafka and into the <tt>enrichments</tt> topology in kafka.  Errors are collected with the context of the error (e.g. stacktrace) and original message causing the error and sent to an <tt>error</tt> queue.  Invalid messages as determined by global validation functions are also treated as errors and sent to an <tt>error</tt> queue.</p></div>
+<p>Data flows through the parser bolt via kafka and into the <tt>enrichments</tt> topology in kafka.  Errors are collected with the context of the error (e.g. stacktrace) and original message causing the error and sent to an <tt>error</tt> queue.  Invalid messages as determined by global validation functions are also treated as errors and sent to an <tt>error</tt> queue.</p>
+<p>Multiple sensors can be aggregated into a single Storm topology. When this is done, there will be multiple Kafka spouts, but only a single parser bolt which will handle delegating to the correct parser as needed. There are some constraints around this, in particular regarding some configuration. Additionally, all sensors must flow to the same error topic. The Kafka topic is retrieved from the input Tuple itself.</p>
+<p>A worked example of this can be found in the <a href="../../use-cases/parser_chaining/index.html#aggregated-parsers-with-parser-chaining">Parser Chaining use case</a>.</p></div>
 <div class="section">
 <h2><a name="Message_Format"></a>Message Format</h2>
 <p>All Metron messages follow a specific format in order to ingest a message.  If a message does not conform to this format it will be dropped and put onto an error queue for further examination.  The message must be of a JSON format and must have a JSON tag message like so:</p>
@@ -200,7 +206,7 @@ limitations under the License.
 <li>timestamp (epoch)</li>
 <li>original_string: A human friendly string representation of the message</li>
 </ul>
-<p>The timestamp and original_string fields are madatory. The remaining standard fields are optional.  If any of the optional fields are not applicable then the field should be left out of the JSON.</p>
+<p>The timestamp and original_string fields are mandatory. The remaining standard fields are optional.  If any of the optional fields are not applicable then the field should be left out of the JSON.</p>
 <p>So putting it all together a typical Metron message with all 5-tuple fields present would look like the following:</p>
 
 <div>
@@ -234,7 +240,8 @@ limitations under the License.
 <li><tt>raw_message</tt> : The raw message in string form</li>
 <li><tt>raw_message_bytes</tt> : The raw message bytes</li>
 <li><tt>error_hash</tt> : A hash of the error message</li>
-</ul></div></div>
+</ul>
+<p>When aggregating multiple sensors, all sensors must be using the same error topic.</p></div></div>
 <div class="section">
 <h2><a name="Parser_Configuration"></a>Parser Configuration</h2>
 <p>The configuration for the various parser topologies is defined by JSON documents stored in zookeeper.</p>
@@ -263,20 +270,29 @@ limitations under the License.
 <ul>
 
 <li><tt>sensorTopic</tt> : The kafka topic to send the parsed messages to.  If the topic is prefixed and suffixed by <tt>/</tt> then it is assumed to be a regex and will match any topic matching the pattern (e.g. <tt>/bro.*/</tt> would match <tt>bro_cust0</tt>, <tt>bro_cust1</tt> and <tt>bro_cust2</tt>)</li>
-<li><tt>readMetadata</tt> : Boolean indicating whether to read metadata or not (<tt>false</tt> by default).  See below for a discussion about metadata.</li>
-<li><tt>mergeMetadata</tt> : Boolean indicating whether to merge metadata with the message or not (<tt>false</tt> by default).  See below for a discussion about metadata.</li>
-<li><tt>parserConfig</tt> : A JSON Map representing the parser implementation specific configuration.</li>
+<li><tt>readMetadata</tt> : Boolean indicating whether to read metadata or not (The default is raw message strategy dependent).  See below for a discussion about metadata.</li>
+<li><tt>mergeMetadata</tt> : Boolean indicating whether to merge metadata with the message or not (The default is raw message strategy dependent).  See below for a discussion about metadata.</li>
+<li><tt>rawMessageStrategy</tt> : The strategy to use when reading the raw data and metadata.  See below for a discussion about message reading strategies.</li>
+<li><tt>rawMessageStrategyConfig</tt> : The raw message strategy configuration map.  See below for a discussion about message reading strategies.</li>
+<li><tt>parserConfig</tt> : A JSON Map representing the parser implementation specific configuration. Also include batch sizing and timeout for writer configuration here.
+<ul>
+
+<li><tt>batchSize</tt> : Integer indicating number of records to batch together before sending to the writer. (default to <tt>15</tt>)</li>
+<li><tt>batchTimeout</tt> : The timeout after which a batch will be flushed even if batchSize has not been met.  Optional. If unspecified, or set to <tt>0</tt>, it defaults to a system-determined duration which is a fraction of the Storm parameter <tt>topology.message.timeout.secs</tt>.  Ignored if batchSize is <tt>1</tt>, since this disables batching.</li>
+<li>The kafka writer can be configured within the parser config as well.  (This is all configured a priori, but this is convenient for overriding the settings).  See <a href="../metron-writer/index.html#kafka-writer">here</a></li>
+</ul>
+</li>
 <li><tt>fieldTransformations</tt> : An array of complex objects representing the transformations to be done on the message generated from the parser before writing out to the kafka topic.</li>
-<li><tt>spoutParallelism</tt> : The kafka spout parallelism (default to <tt>1</tt>).  This can be overridden on the command line.</li>
-<li><tt>spoutNumTasks</tt> : The number of tasks for the spout (default to <tt>1</tt>). This can be overridden on the command line.</li>
-<li><tt>parserParallelism</tt> : The parser bolt parallelism (default to <tt>1</tt>). This can be overridden on the command line.</li>
-<li><tt>parserNumTasks</tt> : The number of tasks for the parser bolt (default to <tt>1</tt>). This can be overridden on the command line.</li>
+<li><tt>spoutParallelism</tt> : The kafka spout parallelism (default to <tt>1</tt>).  This can be overridden on the command line, and if there are multiple sensors should be in a comma separated list in the same order as the sensors.</li>
+<li><tt>spoutNumTasks</tt> : The number of tasks for the spout (default to <tt>1</tt>). This can be overridden on the command line, and if there are multiple sensors should be in a comma separated list in the same order as the sensors.</li>
+<li><tt>parserParallelism</tt> : The parser bolt parallelism (default to <tt>1</tt>). If there are multiple sensors, the last one&#x2019;s configuration will be used. This can be overridden on the command line.</li>
+<li><tt>parserNumTasks</tt> : The number of tasks for the parser bolt (default to <tt>1</tt>). If there are multiple sensors, the last one&#x2019;s configuration will be used. This can be overridden on the command line.</li>
 <li><tt>errorWriterParallelism</tt> : The error writer bolt parallelism (default to <tt>1</tt>). This can be overridden on the command line.</li>
 <li><tt>errorWriterNumTasks</tt> : The number of tasks for the error writer bolt (default to <tt>1</tt>). This can be overridden on the command line.</li>
 <li><tt>numWorkers</tt> : The number of workers to use in the topology (default is the storm default of <tt>1</tt>).</li>
 <li><tt>numAckers</tt> : The number of acker executors to use in the topology (default is the storm default of <tt>1</tt>).</li>
-<li><tt>spoutConfig</tt> : A map representing a custom spout config (this is a map). This can be overridden on the command line.</li>
-<li><tt>securityProtocol</tt> : The security protocol to use for reading from kafka (this is a string).  This can be overridden on the command line and also specified in the spout config via the <tt>security.protocol</tt> key.  If both are specified, then they are merged and the CLI will take precedence.</li>
+<li><tt>spoutConfig</tt> : A map representing a custom spout config (this is a map). If there are multiple sensors, the configs will be merged with the last specified taking precedence. This can be overridden on the command line.</li>
+<li><tt>securityProtocol</tt> : The security protocol to use for reading from kafka (this is a string).  This can be overridden on the command line and also specified in the spout config via the <tt>security.protocol</tt> key.  If both are specified, then they are merged and the CLI will take precedence. If multiple sensors are used, any non &#x201c;PLAINTEXT&#x201d; value will be used.</li>
 <li><tt>stormConfig</tt> : The storm config to use (this is a map).  This can be overridden on the command line.  If both are specified, they are merged with CLI properties taking precedence.</li>
 <li><tt>cacheConfig</tt> : Cache config for stellar field transformations.   This configures a least frequently used cache.  This is a map with the following keys.  If not explicitly configured (the default), then no cache will be used.
 <ul>
@@ -331,17 +347,52 @@ Consider the following scenarios:</p>
 </li>
 <li>Custom metadata: Custom metadata from an individual telemetry source that one might want to use within Metron.</li>
 </ul>
-<p>Metadata is controlled by two fields in the parser:</p>
+<p>Metadata is controlled by the following parser configs:</p>
+<ul>
+
+<li><tt>rawMessageStrategy</tt> : This is a strategy which indicates how to read data and metadata.  The strategies supported are:
+<ul>
+
+<li><tt>DEFAULT</tt> : Data is read directly from the kafka record value and metadata, if any, is read from the kafka record key.  This strategy defaults to not reading metadata and not merging metadata.  This is the default strategy.</li>
+<li><tt>ENVELOPE</tt> : Data from kafka record value is presumed to be a JSON blob. One of these fields must contain the raw data to pass to the parser.  All other fields should be considered metadata.  The field containing the raw data is specified in the <tt>rawMessageStrategyConfig</tt>.  Data held in the kafka key as well as the non-data fields in the JSON blob passed into the kafka value are considered metadata. Note that the exception to this is that any <tt>original_string</tt> field is inherited from the envelope data so that the original string contains the envelope data.  If you do not prefer this behavior, remove this field from the envelope data.</li>
+</ul>
+</li>
+<li><tt>rawMessageStrategyConfig</tt> : The configuration (a map) for the <tt>rawMessageStrategy</tt>.  Available configurations are strategy dependent:
+<ul>
+
+<li><tt>DEFAULT</tt>
+<ul>
+
+<li><tt>metadataPrefix</tt> defines the key prefix for metadata (default is <tt>metron.metadata</tt>).</li>
+</ul>
+</li>
+<li><tt>ENVELOPE</tt>
+<ul>
+
+<li><tt>metadataPrefix</tt> defines the key prefix for metadata (default is <tt>metron.metadata</tt>)</li>
+<li><tt>messageField</tt> defines the field from the envelope to use as the data.  All other fields are considered metadata.</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><tt>readMetadata</tt> : This is a boolean indicating whether metadata will be read and made available to Field transformations (i.e. Stellar field transformations).  The default is dependent upon the <tt>rawMessageStrategy</tt>:
+<ul>
+
+<li><tt>DEFAULT</tt> : default to <tt>false</tt>.</li>
+<li><tt>ENVELOPE</tt> : default to <tt>true</tt>.</li>
+</ul>
+</li>
+<li><tt>mergeMetadata</tt> : This is a boolean indicating whether metadata fields will be merged with the message automatically.  That is to say, if this property is set to <tt>true</tt> then every metadata field will become part of the messages and, consequently, also available for use in field transformations.  The default is dependent upon the <tt>rawMessageStrategy</tt>:
 <ul>
 
-<li><tt>readMetadata</tt> : This is a boolean indicating whether metadata will be read and made available to Field transformations (i.e. Stellar field transformations).  The default is <tt>false</tt>.</li>
-<li><tt>mergeMetadata</tt> : This is a boolean indicating whether metadata fields will be merged with the message automatically.<br />
-That is to say, if this property is set to <tt>true</tt> then every metadata field will become part of the messages and, consequently, also available for use in field transformations.</li>
+<li><tt>DEFAULT</tt> : default to <tt>false</tt>.</li>
+<li><tt>ENVELOPE</tt> : default to <tt>true</tt>.</li>
+</ul>
+</li>
 </ul>
 <div class="section">
 <h4><a name="Field_Naming"></a>Field Naming</h4>
-<p>In order to avoid collisions from metadata fields, metadata fields will be prefixed with <tt>metron.metadata.</tt>.<br />
-So, for instance the kafka topic would be in the field <tt>metron.metadata.topic</tt>.</p></div>
+<p>In order to avoid collisions from metadata fields, metadata fields will be prefixed (the default is <tt>metron.metadata.</tt>, but this is configurable in the <tt>rawMessageStrategyConfig</tt>).  So, for instance the kafka topic would be in the field <tt>metron.metadata.topic</tt>.</p></div>
 <div class="section">
 <h4><a name="Specifying_Custom_Metadata"></a>Specifying Custom Metadata</h4>
 <p>Custom metadata is specified by sending a JSON Map in the key.  If no key is sent, then, obviously, no metadata will be parsed. For instance, sending a metadata field called <tt>customer_id</tt> could be done by sending</p>
@@ -470,6 +521,36 @@ So, for instance the kafka topic would be in the field <tt>metron.metadata.topic
                       ]
 }
 </pre></div></div>
+
+<ul>
+
+<li><tt>REGEX_SELECT</tt> : This transformation lets users set an output field to one of a set of possibilities based on matching regexes. This transformation is useful when the number or conditions are large enough to make a stellar language match statement unwieldy.</li>
+</ul>
+<p>The following config will set the field <tt>logical_source_type</tt> to one of the following, dependent upon the value of the <tt>pix_type</tt> field:</p>
+<ul>
+
+<li><tt>cisco-6-302</tt> if <tt>pix_type</tt> starts with either <tt>6-302</tt> or <tt>06-302</tt></li>
+<li><tt>cisco-5-304</tt> if <tt>pix_type</tt> starts with <tt>5-304</tt></li>
+</ul>
+
+<div>
+<div>
+<pre class="source">{
+...
+  &quot;fieldTransformations&quot; : [
+    {
+     &quot;transformation&quot; : &quot;REGEX_ROUTING&quot;
+    ,&quot;input&quot; :  &quot;pix_type&quot;
+    ,&quot;output&quot; :  &quot;logical_source_type&quot;
+    ,&quot;config&quot; : {
+      &quot;cisco-6-302&quot; : [ &quot;^6-302.*&quot;, &quot;^06-302.*&quot;]
+      &quot;cisco-5-304&quot; : &quot;^5-304.*&quot;
+                }
+    }
+                           ]
+...  
+}
+</pre></div></div>
 </div>
 <div class="section">
 <h3><a name="Assignment_to_null"></a>Assignment to <tt>null</tt></h3>
@@ -685,10 +766,12 @@ HH:mm:ss', MAP_GET(dc, dc2tz, 'UTC') )&quot;
 <p><a name="Notes_on_Performance_Tuning"></a></p>
 <h1>Notes on Performance Tuning</h1>
 <p>Default installed Metron is untuned for production deployment.  There are a few knobs to tune to get the most out of your system.</p>
+<p>When using aggregated parsers, it&#x2019;s highly recommended to aggregate parsers with similar velocity and parser complexity together.</p>
 <p><a name="Notes_on_Adding_a_New_Sensor"></a></p>
 <h1>Notes on Adding a New Sensor</h1>
 <p>In order to allow for meta alerts to be queries alongside regular alerts in Elasticsearch 2.x, it is necessary to add an additional field to the templates and mapping for existing sensors.</p>
-<p>Please see a description of the steps necessary to make this change in the metron-elasticsearch <a href="../../metron-platform/metron-elasticsearch/index.html#Using_Metron_with_Elasticsearch_2.x">Using Metron with Elasticsearch 2.x</a></p></div>
+<p>Please see a description of the steps necessary to make this change in the metron-elasticsearch <a href="../../metron-platform/metron-elasticsearch/index.html#Using_Metron_with_Elasticsearch_2.x">Using Metron with Elasticsearch 2.x</a></p>
+<p>If Solr is selected as the real-time store, it is also necessary to add additional fields.  See the <a href="../metron-indexing/index.html#Solr">Solr</a> section in metron-indexing for more details.</p></div>
 <div class="section">
 <h2><a name="Kafka_Queue"></a>Kafka Queue</h2>
 <p>The kafka queue associated with your parser is a collection point for all of the data sent to your parser.  As such, make sure that the number of partitions in the kafka topic is sufficient to handle the throughput that you expect from your parser topology.</p></div>

http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-parsers/parser-testing.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-parsers/parser-testing.html b/current-book/metron-platform/metron-parsers/parser-testing.html
index ff22013..945aebc 100644
--- a/current-book/metron-platform/metron-parsers/parser-testing.html
+++ b/current-book/metron-platform/metron-parsers/parser-testing.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/parser-testing.md at 2018-06-07
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-parsers/parser-testing.md at 2018-09-12
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180607" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Metron &#x2013; Parser Contribution and Testing</title>
     <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
@@ -32,8 +32,8 @@
       <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
       <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
     <li class="active ">Parser Contribution and Testing</li>
-        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-06-07</li>
-          <li id="projectVersion" class="pull-right">Version: 0.5.0</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
         </ul>
       </div>
       <div class="row-fluid">
@@ -55,20 +55,22 @@
     <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
-    <li><a href="../../metron-platform/metron-api/index.html" title="Api"><span class="none"></span>Api</a></li>
     <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
     <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
     <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
     <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
     <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li><a href="../../metron-platform/metron-job/index.html" title="Job"><span class="none"></span>Job</a></li>
     <li><a href="../../metron-platform/metron-management/index.html" title="Management"><span class="none"></span>Management</a></li>
     <li><a href="../../metron-platform/metron-parsers/index.html" title="Parsers"><span class="icon-chevron-down"></span>Parsers</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/metron-parsers/3rdPartyParser.html" title="3rdPartyParser"><span class="none"></span>3rdPartyParser</a></li>
+    <li><a href="../../metron-platform/metron-parsers/ParserChaining.html" title="ParserChaining"><span class="none"></span>ParserChaining</a></li>
     <li class="active"><a href="#"><span class="none"></span>parser-testing</a></li>
     </ul>
 </li>
     <li><a href="../../metron-platform/metron-pcap-backend/index.html" title="Pcap-backend"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
     <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
     </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/metron/blob/0bea5bdb/current-book/metron-platform/metron-pcap-backend/index.html
----------------------------------------------------------------------
diff --git a/current-book/metron-platform/metron-pcap-backend/index.html b/current-book/metron-platform/metron-pcap-backend/index.html
index 5206fd0..e1c3000 100644
--- a/current-book/metron-platform/metron-pcap-backend/index.html
+++ b/current-book/metron-platform/metron-pcap-backend/index.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-pcap-backend/index.md at 2018-06-07
+ | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-platform/metron-pcap-backend/index.md at 2018-09-12
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180607" />
+    <meta name="Date-Revision-yyyymmdd" content="20180912" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Metron &#x2013; Metron PCAP Backend</title>
     <link rel="stylesheet" href="../../css/apache-maven-fluido-1.7.min.css" />
@@ -32,8 +32,8 @@
       <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
       <li class=""><a href="../../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
     <li class="active ">Metron PCAP Backend</li>
-        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-06-07</li>
-          <li id="projectVersion" class="pull-right">Version: 0.5.0</li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-09-12</li>
+          <li id="projectVersion" class="pull-right">Version: 0.6.0</li>
         </ul>
       </div>
       <div class="row-fluid">
@@ -55,15 +55,16 @@
     <li><a href="../../metron-platform/index.html" title="Platform"><span class="icon-chevron-down"></span>Platform</a>
     <ul class="nav nav-list">
     <li><a href="../../metron-platform/Performance-tuning-guide.html" title="Performance-tuning-guide"><span class="none"></span>Performance-tuning-guide</a></li>
-    <li><a href="../../metron-platform/metron-api/index.html" title="Api"><span class="none"></span>Api</a></li>
     <li><a href="../../metron-platform/metron-common/index.html" title="Common"><span class="none"></span>Common</a></li>
     <li><a href="../../metron-platform/metron-data-management/index.html" title="Data-management"><span class="none"></span>Data-management</a></li>
     <li><a href="../../metron-platform/metron-elasticsearch/index.html" title="Elasticsearch"><span class="none"></span>Elasticsearch</a></li>
     <li><a href="../../metron-platform/metron-enrichment/index.html" title="Enrichment"><span class="icon-chevron-right"></span>Enrichment</a></li>
     <li><a href="../../metron-platform/metron-indexing/index.html" title="Indexing"><span class="none"></span>Indexing</a></li>
+    <li><a href="../../metron-platform/metron-job/index.html" title="Job"><span class="none"></span>Job</a></li>
     <li><a href="../../metron-platform/metron-management/index.html" title="Management"><span class="none"></span>Management</a></li>
     <li><a href="../../metron-platform/metron-parsers/index.html" title="Parsers"><span class="icon-chevron-right"></span>Parsers</a></li>
     <li class="active"><a href="#"><span class="none"></span>Pcap-backend</a></li>
+    <li><a href="../../metron-platform/metron-solr/index.html" title="Solr"><span class="none"></span>Solr</a></li>
     <li><a href="../../metron-platform/metron-writer/index.html" title="Writer"><span class="none"></span>Writer</a></li>
     </ul>
 </li>
@@ -227,12 +228,14 @@ limitations under the License.
  -nr,--num_reducers &lt;arg&gt;        The number of reducers to use.  Default
                                  is 10.
  -h,--help                       Display help
+ -ps,--print_status              Print the status of the job as it runs
  -ir,--include_reverse           Indicates if filter should check swapped
                                  src/dest addresses and IPs
  -p,--protocol &lt;arg&gt;             IP Protocol
  -sa,--ip_src_addr &lt;arg&gt;         Source IP address
  -sp,--ip_src_port &lt;arg&gt;         Source port
  -st,--start_time &lt;arg&gt;          (required) Packet start time range.
+ -yq,--yarn_queue &lt;arg&gt;          Yarn queue this job will be submitted to
 </pre></div></div>
 
 <div>
@@ -250,8 +253,10 @@ limitations under the License.
  -nr,--num_reducers &lt;arg&gt;        The number of reducers to use.  Default
                                  is 10.
  -h,--help                       Display help
+ -ps,--print_status              Print the status of the job as it runs
  -q,--query &lt;arg&gt;                Query string to use as a filter
  -st,--start_time &lt;arg&gt;          (required) Packet start time range.
+ -yq,--yarn_queue &lt;arg&gt;          Yarn queue this job will be submitted to
 </pre></div></div>
 
 <p>The Query filter&#x2019;s <tt>--query</tt> argument specifies the Stellar expression to execute on each packet.  To interact with the packet, a few variables are exposed:</p>


Mime
View raw message