<!DOCTYPE html>
  <head>

 <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content=" ">
<title>Application console  | Apache Quarks Documentation</title>
<link rel="stylesheet" type="text/css" href="../css/syntax.css">
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css">
<!--<link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css">-->
<link rel="stylesheet" type="text/css" href="../css/modern-business.css">
<link rel="stylesheet" type="text/css" href="../css/lavish-bootstrap.css">
<link rel="stylesheet" type="text/css" href="../css/customstyles.css">
<link rel="stylesheet" type="text/css" href="../css/theme-blue.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script src="../js/jquery.navgoco.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/2.0.0/anchor.min.js"></script>
<script src="../js/toc.js"></script>
<script src="../js/customscripts.js"></script>
<link rel="shortcut icon" href="../common_images/favicon.ico" type="image/x-icon">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->







 

<script>
  $(function () {
      $('[data-toggle="tooltip"]').tooltip()
  })
</script>



  </head>

<body>

   <!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="container topnavlinks">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

            <a class="fa fa-home fa-lg navbar-brand" href="../docs/home.html">&nbsp;<span class="projectTitle"> Apache Quarks Documentation</span></a>

        </div>
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <!-- entries without drop-downs appear here -->
                <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
                








                <li class="dropdown">
                    
                    
                    
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">GitHub Repos<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        
                        
                        <li><a href="https://github.com/apache/incubator-quarks" target="_blank">Source code</a></li>
                        
                        
                        
                        
                        
                        <li><a href="https://github.com/apache/incubator-quarks-website" target="_blank">Website/Documentation</a></li>
                        
                        
                        
                        

                    </ul>
                </li>
                
                


                
                
                
                
                <li><a href="https://quarks-edge.github.io/quarks/docs/javadoc/index.html" target="_blank">Javadoc</a></li>
                
                
                
                


                <!-- entries with drop-downs appear here -->
                <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->

                <li class="dropdown">
                    
                    
                    
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Quarks Resources<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        
                        
                        <li><a href="https://github.com/apache/incubator-quarks/releases" target="_blank">Download</a></li>
                        
                        
                        
                        
                        
                        <li><a href="samples">Samples</a></li>
                        
                        
                        
                        
                        
                        <li><a href="faq">FAQ</a></li>
                        
                        
                        
                        

                    </ul>
                </li>
                
                


                <!-- special insertion -->

               
                <!-- Send feedback function -->
<script>
function SendLinkByMail(href) {
var subject= "Apache Quarks Documentation feedback";
var body = "I have some feedback about the Application console page: ";
body += window.location.href;
body += "";
var uri = "mailto:?subject=";
uri += encodeURIComponent(subject);
uri += "&body=";
uri += encodeURIComponent(body);
window.location.href = uri;
}
</script>

<li><a href="mailto:dev@quarks.incubator.apache.org" target="_blank"><i class="fa fa-envelope-o"></i> Feedback</a></li>


                <!--uncomment this block if you want simple search instead of algolia-->
                <li>
                     <!--start search-->
                    <div id="search-demo-container">
                        <input type="text" id="search-input" placeholder="search...">
                        <ul id="results-container"></ul>
                    </div>
                    <script src="../js/jekyll-search.js" type="text/javascript"></script>
                    <script type="text/javascript">
                        SimpleJekyllSearch.init({
                            searchInput: document.getElementById('search-input'),
                            resultsContainer: document.getElementById('results-container'),
                            dataSource: '../search.json',
                            searchResultTemplate: '<li><a href="{url}" title="Application console">{title}</a></li>',
                        noResultsText: 'No results found.',
                                limit: 10,
                                fuzzy: true,
                        })
                    </script>
                     <!--end search-->
                </li>

            
        </div>
        <!-- /.container -->
</nav>



    <!-- Page Content -->
    <div class="container">
        <div class="col-lg-12">&nbsp;</div>


<!-- Content Row -->
<div class="row">
    <!-- Sidebar Column -->
    <div class="col-md-3">

        <script>

            $(document).ready(function() {
                // Initialize navgoco with default options
                $("#mysidebar").navgoco({
                    caretHtml: '',
                    accordion: true,
                    openClass: 'active', // open
                    save: true,
                    cookie: {
                        name: 'navgoco',
                        expires: false,
                        path: '/'
                    },
                    slide: {
                        duration: 400,
                        easing: 'swing'
                    }
                });

                $("#collapseAll").click(function(e) {
                    e.preventDefault();
                    $("#mysidebar").navgoco('toggle', false);
                });

                $("#expandAll").click(function(e) {
                    e.preventDefault();
                    $("#mysidebar").navgoco('toggle', true);
                });

            });

        </script>


        









        <ul id="mysidebar" class="nav">

            <span class="siteTagline">Quarks</span>
            <span class="versionTagline">Version 0.3.0</span>

            
            
            
                
            
            <li><a href="#">Overview</a>
                <ul>
                    
                    
                    
                    
                    <li><a href="../docs/quarks_index.html">Introduction</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../docs/faq.html">FAQ</a></li>
                    

                    

                    
                    
                </ul>
                
                
            
            <li><a href="#">Get Started</a>
                <ul>
                    
                    
                    
                    
                    <li><a href="../docs/quarks-getting-started.html">Getting started guide</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../docs/common-quarks-operations.html">Common operations</a></li>
                    

                    

                    
                    
                </ul>
                
                
            
            <li><a href="#">Quarks Cookbook</a>
                <ul>
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_hello_quarks.html">Hello Quarks!</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_source_function.html">Writing a source function</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_value_out_of_range.html">Detecting a sensor value out of expected range</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_different_processing_against_stream.html">Applying different processing against a single stream</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_combining_streams_processing_results.html">Splitting a stream to apply different processing and combining the results into a single stream</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_external_filter_range.html">Using an external configuration file for filter ranges</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_adaptable_filter_range.html">Changing a filter's range</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_adaptable_polling_source.html">Changing a polled source stream's period</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_adaptable_deadtime_filter.html">Using an adaptable deadtime filter</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_dynamic_analytic_control.html">Dynamically enabling analytic flows</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_parallel_analytics.html">How can I run analytics on several tuples in parallel?</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../recipes/recipe_concurrent_analytics.html">How can I run several analytics on a tuple concurrently?</a></li>
                    

                    

                    
                    
                </ul>
                
                
            
            <li><a href="#">Sample Programs</a>
                <ul>
                    
                    
                    
                    
                    <li><a href="../docs/samples.html">Samples</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../docs/quickstart.html">Quickstart IBM Watson IoT Platform</a></li>
                    

                    

                    
                    
                </ul>
                
                
            
            <li><a href="#">Using the Console</a>
                <ul>
                    
                    
                    
                    
                    <li class="active"><a href="../docs/console.html">Using the console</a></li>
                    

                    

                    
                    
                </ul>
                
                
            
            <li><a href="#">Get Involved</a>
                <ul>
                    
                    
                    
                    
                    <li><a href="../docs/community.html">How to participate</a></li>
                    

                    

                    
                    
                    
                    
                    
                    <li><a href="../docs/committers.html">Committers</a></li>
                    

                    

                    
                    
                </ul>
                
                
                


                <!-- if you aren't using the accordion, uncomment this block:

                     <p class="external">
                         <a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a>
                     </p>
                 -->
				 <br/>
			</li>
		</ul>
		<div class="row">
		<div class="col-md-12">
			
<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
<script>
$( document ).ready(function() {
  // Handler for .ready() called.

$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });

/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
  var target = $(this.getAttribute('href'))
    , scroll_target = target.offset().top

  $(window).scrollTop(scroll_target - 10);
  return false
})
  
});
</script>


<div id="toc"></div>

		</div>
	</div>
	</div>
	
    <!-- this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
    <script>$("li.active").parents('li').toggleClass("active");</script>


            <!-- Content Column -->
            <div class="col-md-9">
                
                <div class="post-header">
   <h1 class="post-title-main">Application console</h1>
</div>

<div class="post-content">

   

<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
<script>
$( document ).ready(function() {
  // Handler for .ready() called.

$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });

/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
  var target = $(this.getAttribute('href'))
    , scroll_target = target.offset().top

  $(window).scrollTop(scroll_target - 10);
  return false
})
  
});
</script>


<div id="toc"></div>


    

    <a target="_blank" href="https://github.com/apache/incubator-quarks-website/blob/master/site/docs/console.md" class="btn btn-default githubEditButton" role="button"><i class="fa fa-github fa-lg"></i> Edit me</a>
    
  <h2 id="visualizing-and-monitoring-your-application">Visualizing and monitoring your application</h2>

<p>The Quarks application console is a web application that enables you to visualize your application topology and monitor the tuples flowing through your application. The kind of oplets used in the topology, as well as the stream tags included in the topology, are also visible in the console.</p>

<h2 id="adding-the-console-web-app-to-your-application">Adding the console web app to your application</h2>

<p>To use the console, you must use the Quarks classes that provide the service to access the console web application or directly call the <code>HttpServer</code> class itself, start the server and then obtain the console URL.</p>

<p>The easiest way to include the console in your application is to use the the <code>DevelopmentProvider</code> class. <code>DevelopmentProvider</code> is a subclass of <code>DirectProvider</code> and adds services such as access to the console web application and counter oplets used to determine tuple counts. You can get the URL for the console from the <code>DevelopmentProvider</code> using the <code>getService</code> method as shown in a hypothetical application shown below:</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">import</span> <span class="nn">java.util.concurrent.TimeUnit</span><span class="o">;</span>

<span class="kn">import</span> <span class="nn">quarks.console.server.HttpServer</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">quarks.providers.development.DevelopmentProvider</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">quarks.topology.TStream</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">quarks.topology.Topology</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">TempSensorApplication</span> <span class="o">{</span>
    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="n">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
        <span class="n">TempSensor</span> <span class="n">sensor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TempSensor</span><span class="o">();</span>
        <span class="n">DevelopmentProvider</span> <span class="n">dp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DevelopmentProvider</span><span class="o">();</span>
        <span class="n">Topology</span> <span class="n">topology</span> <span class="o">=</span> <span class="n">dp</span><span class="o">.</span><span class="na">newTopology</span><span class="o">();</span>
        <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Double</span><span class="o">&gt;</span> <span class="n">tempReadings</span> <span class="o">=</span> <span class="n">topology</span><span class="o">.</span><span class="na">poll</span><span class="o">(</span><span class="n">sensor</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">MILLISECONDS</span><span class="o">);</span>
        <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Double</span><span class="o">&gt;</span> <span class="n">filteredReadings</span> <span class="o">=</span> <span class="n">tempReadings</span><span class="o">.</span><span class="na">filter</span><span class="o">(</span><span class="n">reading</span> <span class="o">-&gt;</span> <span class="n">reading</span> <span class="o">&lt;</span> <span class="mi">50</span> <span class="o">||</span> <span class="n">reading</span> <span class="o">&gt;</span> <span class="mi">80</span><span class="o">);</span>
        <span class="n">filteredReadings</span><span class="o">.</span><span class="na">print</span><span class="o">();</span>

        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">dp</span><span class="o">.</span><span class="na">getServices</span><span class="o">().</span><span class="na">getService</span><span class="o">(</span><span class="n">HttpServer</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">getConsoleUrl</span><span class="o">());</span>
        <span class="n">dp</span><span class="o">.</span><span class="na">submit</span><span class="o">(</span><span class="n">topology</span><span class="o">);</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div>
<p>Note that the console URL is being printed to <code>System.out</code>. The <code>filteredReadings</code> are as well, since <code>filteredReadings.print()</code> is being called in the application. You may need to scroll your terminal window up to see the output for the console URL.</p>

<p>Optionally, you can modify the above code in the application to have a timeout before submitting the topology, which would allow you to see the console URL before any other output is shown. The modification would look like this:</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// Print the console URL and wait for 10 seconds before submitting the topology</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">dp</span><span class="o">.</span><span class="na">getServices</span><span class="o">().</span><span class="na">getService</span><span class="o">(</span><span class="n">HttpServer</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">getConsoleUrl</span><span class="o">());</span>
<span class="k">try</span> <span class="o">{</span>
    <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">10</span><span class="o">);</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">InterruptedException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
    <span class="c1">// Do nothing</span>
<span class="o">}</span>
<span class="n">dp</span><span class="o">.</span><span class="na">submit</span><span class="o">(</span><span class="n">topology</span><span class="o">);</span>
</code></pre></div>
<p>The other way to embed the console in your application is shown in the <code>HttpServerSample.java</code> example (on <a href="https://github.com/apache/incubator-quarks/blob/master/samples/console/src/main/java/quarks/samples/console/HttpServerSample.java">GitHub</a>). It gets the <code>HttpServer</code> instance, starts it, and prints out the console URL. Note that it does not submit a job, so when the console is displayed in the browser, there are no running jobs and therefore no topology graph. The example is meant to show how to get the <code>HttpServer</code> instance, start the console web app and get the URL of the console.</p>

<h2 id="accessing-the-console">Accessing the console</h2>

<p>The console URL has the following format:</p>

<p><code>http://host_name:port_number/console</code></p>

<p>Once it is obtained from <code>System.out</code>, enter it in a browser window.</p>

<p>If you cannot access the console at this URL, ensure there is a <code>console.war</code> file in the <code>webapps</code> directory. If the <code>console.war</code> file cannot be found, an exception will be thrown (in <code>std.out</code>) indicating <code>console.war</code> was not found.</p>

<h2 id="consolewaterdetector-sample">ConsoleWaterDetector sample</h2>

<p>To see the features of the console in action and as a way to demonstrate how to monitor a topology in the console, let&#39;s look at the <code>ConsoleWaterDetector</code> sample (on <a href="https://github.com/apache/incubator-quarks/blob/master/samples/console/src/main/java/quarks/samples/console/ConsoleWaterDetector.java">GitHub</a>).</p>

<p>Prior to running any console applications, the <code>console.war</code> file must be built as mentioned above. If you are building quarks from a Git repository, go to the top level Quarks directory and run <code>ant</code>.</p>

<p>Here is an example in my environment:</p>
<div class="highlight"><pre><code class="language-" data-lang="">Susans-MacBook-Pro-247:quarks susancline$ pwd
/Users/susancline/git/quarks
Susans-MacBook-Pro-247:quarks susancline$ ant
Buildfile: /Users/susancline/git/quarks/build.xml

setcommitversion:

init:

suball:

init:

project.component:

compile:
...
[javadoc] Constructing Javadoc information...
[javadoc] Standard Doclet version 1.8.0_71
[javadoc] Building tree for all the packages and classes...
[javadoc] Generating /Users/susancline/git/quarks/target/docs/javadoc/quarks/analytics/sensors/package-summary.html...
[javadoc] Copying file /Users/susancline/git/quarks/analytics/sensors/src/main/java/quarks/analytics/sensors/doc-files/deadband.png to directory /Users/susancline/git/quarks/target/docs/javadoc/quarks/analytics/sensors/doc-files...
[javadoc] Generating /Users/susancline/git/quarks/target/docs/javadoc/quarks/topology/package-summary.html...
[javadoc] Copying file /Users/susancline/git/quarks/api/topology/src/main/java/quarks/topology/doc-files/sources.html to directory /Users/susancline/git/quarks/target/docs/javadoc/quarks/topology/doc-files...
[javadoc] Building index for all the packages and classes...
[javadoc] Building index for all classes...

all:

BUILD SUCCESSFUL
Total time: 3 seconds
</code></pre></div>
<p>This command will let you know that <code>console.war</code> was built and is in the correct place, under the <code>webapps</code> directory.</p>
<div class="highlight"><pre><code class="language-" data-lang="">Susans-MacBook-Pro-247:quarks susancline$ find . -name console.war -print
./target/java8/console/webapps/console.war
</code></pre></div>
<p>Now we know we have built <code>console.war</code>, so we&#39;re good to go. To run this sample from the command line:</p>
<div class="highlight"><pre><code class="language-" data-lang="">Susans-MacBook-Pro-247:quarks susancline$ pwd
/Users/susancline/git/quarks
Susans-MacBook-Pro-247:quarks susancline$ java -cp target/java8/samples/lib/quarks.samples.console.jar:. quarks.samples.console.ConsoleWaterDetector
</code></pre></div>
<p>If everything is successful, you&#39;ll start seeing output. You may have to scroll back up to get the URL of the console:</p>
<div class="highlight"><pre><code class="language-" data-lang="">Susans-MacBook-Pro-247:quarks susancline$ java -cp target/java8/samples/lib/quarks.samples.console.jar:. quarks.samples.console.ConsoleWaterDetector
Mar 07, 2016 12:04:52 PM org.eclipse.jetty.util.log.Log initialized
INFO: Logging initialized @176ms
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.server.Server doStart
INFO: jetty-9.3.6.v20151106
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.server.handler.ContextHandler doStart
INFO: Started o.e.j.s.ServletContextHandler@614c5515{/jobs,null,AVAILABLE}
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.server.handler.ContextHandler doStart
INFO: Started o.e.j.s.ServletContextHandler@77b52d12{/metrics,null,AVAILABLE}
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.webapp.StandardDescriptorProcessor visitServlet
INFO: NO JSP Support for /console, did not find org.eclipse.jetty.jsp.JettyJspServlet
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.server.handler.ContextHandler doStart
INFO: Started o.e.j.w.WebAppContext@2d554825{/console,file:///private/var/folders/0c/pb4rznhj7sbc886t30w4vpxh0000gn/T/jetty-0.0.0.0-0-console.war-_console-any-3101338829524954950.dir/webapp/,AVAILABLE}{/console.war}
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started ServerConnector@66480dd7{HTTP/1.1,[http/1.1]}{0.0.0.0:57964}
Mar 07, 2016 12:04:53 PM org.eclipse.jetty.server.Server doStart
INFO: Started @426ms
http://localhost:57964/console
Well1 alert, ecoli value is 1

Well1 alert, temp value is 48
Well3 alert, ecoli value is 1
</code></pre></div>
<p>Now point your browser to the URL displayed above in the output from running the Java command to launch the <code>ConsoleWaterDetector</code> application. In this case, the URL is <code>http://localhost:57964/console</code>.</p>

<p>Below is a screen shot of what you should see if everything is working properly:</p>

<p><img src='images/console_overview.jpg' alt='First view of the ConsoleWaterDetector app in the console' width='100%'/></p>

<h2 id="consolewaterdetector-application-scenario">ConsoleWaterDetector application scenario</h2>

<p>The application is now running in your browser. Let&#39;s discuss the scenario for the application.</p>

<p>A county agency is responsible for ensuring the safety of residents well water. Each well they monitor has four different sensor types:</p>

<ul>
<li>Temperature</li>
<li>Acidity</li>
<li>Ecoli</li>
<li>Lead</li>
</ul>

<p>The sample application topology monitors 3 wells:</p>

<ul>
<li>For the hypothetical scenario, Well1 and Well3 produce &#39;unhealthy&#39; values from their sensors on occasion. Well2 always produces &#39;healthy&#39; values.</li>
<li>Each well that is to be measured is added to the topology. The topology polls each sensor (temp, ecoli, etc.) for each well as a unit. A <code>TStream&lt;Integer&gt;</code> is returned from polling the toplogy and represents a sensor reading. Each sensor reading for the well has a tag added to it with the reading type i.e, &quot;temp&quot;, and the well id. Once all of the sensor readings are obtained and the tags added, each sensor reading is &#39;unioned&#39; into a single <code>TStream&lt;JsonObject&gt;</code>. Look at the <code>waterDetector</code> method for details on this.</li>
<li>Now, each well has a single stream with each of the sensors readings as a property with a name and value in the <code>TStream&lt;JsonObject&gt;</code>. Next the <code>alertFilter</code> method is called on the <code>TStream&lt;JsonObject&gt;</code> representing each well. This method checks the values for each well&#39;s sensors to determine if they are &#39;out of range&#39; for healthy values. The <code>filter</code> oplet is used to do this. If any of the sensor&#39;s readings are out of the acceptable range the tuple is passed along. Those that are within an acceptable range are discarded.</li>
<li><p>Next the applications&#39; <code>splitAlert</code> method is called on each well&#39;s stream that contains the union of all the sensor readings that are out of range. The <code>splitAlert</code> method uses the <code>split</code> oplet to split the incoming stream into 5 different streams. Only those tuples that are out of range for each stream, which represents each sensor type, will be returned. The object returned from <code>splitAlert</code> is a list of <code>TStream&lt;JsonObject&gt;</code> objects. The <code>splitAlert</code> method is shown below:</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">static</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;&gt;</span> <span class="n">splitAlert</span><span class="o">(</span><span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;</span> <span class="n">alertStream</span><span class="o">,</span> <span class="kt">int</span> <span class="n">wellId</span><span class="o">)</span> <span class="o">{</span>
    <span class="n">List</span><span class="o">&lt;</span><span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;&gt;</span> <span class="n">allStreams</span> <span class="o">=</span> <span class="n">alertStream</span><span class="o">.</span><span class="na">split</span><span class="o">(</span><span class="mi">5</span><span class="o">,</span> <span class="n">tuple</span> <span class="o">-&gt;</span> <span class="o">{</span>
        <span class="k">if</span> <span class="o">(</span><span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"temp"</span><span class="o">)</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
            <span class="n">JsonObject</span> <span class="n">tempObj</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JsonObject</span><span class="o">();</span>
            <span class="kt">int</span> <span class="n">temp</span> <span class="o">=</span> <span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"temp"</span><span class="o">).</span><span class="na">getAsInt</span><span class="o">();</span>
            <span class="k">if</span> <span class="o">(</span><span class="n">temp</span> <span class="o">&lt;=</span> <span class="n">TEMP_ALERT_MIN</span> <span class="o">||</span> <span class="n">temp</span> <span class="o">&gt;=</span> <span class="n">TEMP_ALERT_MAX</span><span class="o">)</span> <span class="o">{</span>
                <span class="n">tempObj</span><span class="o">.</span><span class="na">addProperty</span><span class="o">(</span><span class="s">"temp"</span><span class="o">,</span> <span class="n">temp</span><span class="o">);</span>
                <span class="k">return</span> <span class="mi">0</span><span class="o">;</span>
            <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
                <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"acidity"</span><span class="o">)</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">){</span>
            <span class="n">JsonObject</span> <span class="n">acidObj</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JsonObject</span><span class="o">();</span>
            <span class="kt">int</span> <span class="n">acid</span> <span class="o">=</span> <span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"acidity"</span><span class="o">).</span><span class="na">getAsInt</span><span class="o">();</span>
            <span class="k">if</span> <span class="o">(</span><span class="n">acid</span> <span class="o">&lt;=</span> <span class="n">ACIDITY_ALERT_MIN</span> <span class="o">||</span> <span class="n">acid</span> <span class="o">&gt;=</span> <span class="n">ACIDITY_ALERT_MAX</span><span class="o">)</span> <span class="o">{</span>
                <span class="n">acidObj</span><span class="o">.</span><span class="na">addProperty</span><span class="o">(</span><span class="s">"acidity"</span><span class="o">,</span> <span class="n">acid</span><span class="o">);</span>
                <span class="k">return</span> <span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
                <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"ecoli"</span><span class="o">)</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
            <span class="n">JsonObject</span> <span class="n">ecoliObj</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JsonObject</span><span class="o">();</span>
            <span class="kt">int</span> <span class="n">ecoli</span> <span class="o">=</span> <span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"ecoli"</span><span class="o">).</span><span class="na">getAsInt</span><span class="o">();</span>
            <span class="k">if</span> <span class="o">(</span><span class="n">ecoli</span> <span class="o">&gt;=</span> <span class="n">ECOLI_ALERT</span><span class="o">)</span> <span class="o">{</span>
                <span class="n">ecoliObj</span><span class="o">.</span><span class="na">addProperty</span><span class="o">(</span><span class="s">"ecoli"</span><span class="o">,</span> <span class="n">ecoli</span><span class="o">);</span>
                <span class="k">return</span> <span class="mi">2</span><span class="o">;</span>
            <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
                <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"lead"</span><span class="o">)</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
            <span class="n">JsonObject</span> <span class="n">leadObj</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JsonObject</span><span class="o">();</span>
            <span class="kt">int</span> <span class="n">lead</span> <span class="o">=</span> <span class="n">tuple</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"lead"</span><span class="o">).</span><span class="na">getAsInt</span><span class="o">();</span>
            <span class="k">if</span> <span class="o">(</span><span class="n">lead</span> <span class="o">&gt;=</span> <span class="n">LEAD_ALERT_MAX</span><span class="o">)</span> <span class="o">{</span>
                <span class="n">leadObj</span><span class="o">.</span><span class="na">addProperty</span><span class="o">(</span><span class="s">"lead"</span><span class="o">,</span> <span class="n">lead</span><span class="o">);</span>
                <span class="k">return</span> <span class="mi">3</span><span class="o">;</span>
            <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
                <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
            <span class="o">}</span>
        <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
             <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
        <span class="o">}</span>
    <span class="o">});</span>

    <span class="k">return</span> <span class="n">allStreams</span><span class="o">;</span>
<span class="o">}</span>
</code></pre></div></li>
<li><p>Next we want to get the temperature stream from the first well and put a rate meter on it to determine the rate at which the out of range values are flowing in the stream</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">List</span><span class="o">&lt;</span><span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;&gt;</span> <span class="n">individualAlerts1</span> <span class="o">=</span> <span class="n">splitAlert</span><span class="o">(</span><span class="n">filteredReadings1</span><span class="o">,</span> <span class="mi">1</span><span class="o">);</span>

<span class="c1">// Put a rate meter on well1's temperature sensor output</span>
<span class="n">Metrics</span><span class="o">.</span><span class="na">rateMeter</span><span class="o">(</span><span class="n">individualAlerts1</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">0</span><span class="o">));</span>
</code></pre></div></li>
<li><p>Next all the sensors for well 1 have tags added to the stream indicating the stream is out of range for that sensor and the well id. Next a sink is added, passing the tuple to a <code>Consumer</code> that formats a string to <code>System.out</code> containing the well id, alert type (sensor type) and value of the sensor.</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// Put a rate meter on well1's temperature sensor output</span>
<span class="n">Metrics</span><span class="o">.</span><span class="na">rateMeter</span><span class="o">(</span><span class="n">individualAlerts1</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">0</span><span class="o">));</span>
<span class="n">individualAlerts1</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">0</span><span class="o">).</span><span class="na">tag</span><span class="o">(</span><span class="n">TEMP_ALERT_TAG</span><span class="o">,</span> <span class="s">"well1"</span><span class="o">).</span><span class="na">sink</span><span class="o">(</span><span class="n">tuple</span> <span class="o">-&gt;</span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n"</span> <span class="o">+</span> <span class="n">formatAlertOutput</span><span class="o">(</span><span class="n">tuple</span><span class="o">,</span> <span class="s">"1"</span><span class="o">,</span> <span class="s">"temp"</span><span class="o">)));</span>
<span class="n">individualAlerts1</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">1</span><span class="o">).</span><span class="na">tag</span><span class="o">(</span><span class="n">ACIDITY_ALERT_TAG</span><span class="o">,</span> <span class="s">"well1"</span><span class="o">).</span><span class="na">sink</span><span class="o">(</span><span class="n">tuple</span> <span class="o">-&gt;</span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">formatAlertOutput</span><span class="o">(</span><span class="n">tuple</span><span class="o">,</span> <span class="s">"1"</span><span class="o">,</span> <span class="s">"acidity"</span><span class="o">)));</span>
<span class="n">individualAlerts1</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">2</span><span class="o">).</span><span class="na">tag</span><span class="o">(</span><span class="n">ECOLI_ALERT_TAG</span><span class="o">,</span> <span class="s">"well1"</span><span class="o">).</span><span class="na">sink</span><span class="o">(</span><span class="n">tuple</span> <span class="o">-&gt;</span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">formatAlertOutput</span><span class="o">(</span><span class="n">tuple</span><span class="o">,</span> <span class="s">"1"</span><span class="o">,</span> <span class="s">"ecoli"</span><span class="o">)));</span>
<span class="n">individualAlerts1</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">3</span><span class="o">).</span><span class="na">tag</span><span class="o">(</span><span class="n">LEAD_ALERT_TAG</span><span class="o">,</span> <span class="s">"well1"</span><span class="o">).</span><span class="na">sink</span><span class="o">(</span><span class="n">tuple</span> <span class="o">-&gt;</span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">formatAlertOutput</span><span class="o">(</span><span class="n">tuple</span><span class="o">,</span> <span class="s">"1"</span><span class="o">,</span> <span class="s">"lead"</span><span class="o">)));</span>
</code></pre></div></li>
</ul>

<p>Output in the terminal window from the <code>formatAlertOutput</code> method will look like this:</p>
<div class="highlight"><pre><code class="language-" data-lang="">Well1 alert, temp value is 86
Well3 alert, ecoli value is 2
Well1 alert, ecoli value is 1
Well3 alert, acidity value is 1
Well1 alert, lead value is 12
Well1 alert, ecoli value is 2
Well3 alert, lead value is 10
Well3 alert, acidity value is 10
</code></pre></div>
<p>Notice how only those streams that are out of range for the temperature sensor type show output.</p>

<h2 id="detecting-zero-tuple-counts">Detecting zero tuple counts</h2>

<p>At the end of the <code>ConsoleWaterDetector</code> application is this snippet of code, added after the topology has been submitted:</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">dp</span><span class="o">.</span><span class="na">submit</span><span class="o">(</span><span class="n">wellTopology</span><span class="o">);</span>

<span class="k">while</span> <span class="o">(</span><span class="kc">true</span><span class="o">)</span> <span class="o">{</span>
    <span class="n">MetricRegistry</span> <span class="n">metricRegistry</span> <span class="o">=</span> <span class="n">dp</span><span class="o">.</span><span class="na">getServices</span><span class="o">().</span><span class="na">getService</span><span class="o">(</span><span class="n">MetricRegistry</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
    <span class="n">SortedMap</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Counter</span><span class="o">&gt;</span> <span class="n">counters</span> <span class="o">=</span> <span class="n">metricRegistry</span><span class="o">.</span><span class="na">getCounters</span><span class="o">();</span>

    <span class="n">Set</span><span class="o">&lt;</span><span class="n">Entry</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Counter</span><span class="o">&gt;&gt;</span> <span class="n">values</span> <span class="o">=</span> <span class="n">counters</span><span class="o">.</span><span class="na">entrySet</span><span class="o">();</span>
    <span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Counter</span><span class="o">&gt;</span> <span class="n">e</span> <span class="o">:</span> <span class="n">values</span><span class="o">)</span> <span class="o">{</span>
        <span class="k">if</span> <span class="o">(</span><span class="n">e</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">getCount</span><span class="o">()</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Counter Op:"</span> <span class="o">+</span> <span class="n">e</span><span class="o">.</span><span class="na">getKey</span><span class="o">()</span> <span class="o">+</span> <span class="s">" tuple count: "</span> <span class="o">+</span> <span class="n">e</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">getCount</span><span class="o">());</span>
        <span class="o">}</span>
    <span class="o">}</span>
    <span class="n">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">2000</span><span class="o">);</span>
<span class="o">}</span>
</code></pre></div>
<p>What this does is get all the counters in the <code>MetricRegistry</code> class and print out the name of the counter oplet they are monitoring along with the tuple count if it is zero. Here is some sample output:</p>
<div class="highlight"><pre><code class="language-" data-lang="">Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_44 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_45 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_46 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_47 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_89 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_95 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_96 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_97 has a tuple count of zero!
Counter Op:TupleCounter.quarks.oplet.JOB_0.OP_98 has a tuple count of zero!
</code></pre></div>
<p>To summarize what the application is doing:</p>

<ul>
<li>Unions all sensor type readings for a single well</li>
<li>Filters all sensor type readings for a single well, passing on an object that only contains tuples for the object that have at least one sensor type with out of range values</li>
<li>Splits the object that contained name/value pairs for sensor type and readings into individual sensor types returning only those streams that contain out of range values</li>
<li>Outputs to the command line the well id, sensor type and value that is out of range</li>
<li>Tags are added at various points in the topology for easier identification of either the well or some out of range condition</li>
<li>The topology contains counters to measure tuple counts since <code>DevelopmentProvider</code> was used</li>
<li>Individual rate meters were placed on <code>well1</code> and <code>well3</code>&#39;s temperature sensors to determine the rate of &#39;unhealthy&#39; values</li>
<li>Prints out the name of the counter oplets whose tuple counts are zero</li>
</ul>

<h2 id="topology-graph-controls">Topology graph controls</h2>

<p>Now that you have an understanding of what the application is doing, let&#39;s look at some of the controls in the console, so we can learn how to monitor the application. Below is a screen shot of the top controls: the controls that affect the Topology Graph.</p>

<p><img src='images/console_top_controls.jpg' alt='The controls that impact the topology graph' width='100%'/></p>

<ul>
<li><strong>Job</strong>: A drop down to select which job is being displayed in the Topology Graph. An application can contain multiple jobs.</li>
<li><strong>State</strong>: Hovering over the &#39;State&#39; icon shows information about the selected job. The current and next states of the job, the job id and the job name.</li>
<li><strong>View by</strong>: This select is used to change how the topology graph is displayed. The three options for this select are:

<ul>
<li>Static flow</li>
<li>Tuple count</li>
<li>Oplet kind</li>
<li>Currently it is set to &#39;Static flow&#39;. This means the oplets (represented as circles in the topology graph) do not change size, nor do the lines or links (representing the edges of the topology graph) change width or position. The graph is not being refreshed when it is in &#39;Static flow&#39; mode.</li>
</ul></li>
<li><strong>Refresh interval</strong>: Allows the user to select an interval between 3 - 20 seconds to refresh the tuple count values in the graph. Every X seconds the metrics for the topology graph are refreshed. More about metrics a little bit later.</li>
<li><strong>Pause graph</strong>: Stops the refresh interval timer. Once the &#39;Pause graph&#39; button is clicked, the user must push &#39;Resume graph&#39; for the graph to be updated, and then refreshed at the interval set in the &#39;Refresh interval&#39; timer. It can be helpful to pause the graph if multiple oplets are occupying the same area on the graph, and their names become unreadable. Once the graph is paused, the user can drag an oplet off of another oplet to better view the name and see the edge(s) that connect them.</li>
<li><strong>Show tags</strong>: If the checkbox appears in the top controls, it means:

<ul>
<li>The &#39;View by&#39; layer is capable of displaying stream tags</li>
<li>The topology currently shown in the topology graph has stream tags associated with it</li>
</ul></li>
<li><p><strong>Show all tags</strong>: Selecting this checkbox shows all the tags present in the topology. If you want to see only certain tags, uncheck this box and select the button labeled &#39;Select individual tags ...&#39;. A dialog will appear, and you can select one or all of the tags listed in the dialog which are present in the topology.</p>

<p><img src='images/console_select_individual_tags.jpg'/></p></li>
</ul>

<p>The next aspect of the console we&#39;ll look at are the popups available when selecting &#39;View all oplet properties&#39;, hovering over an oplet and hovering over an edge (link).</p>

<p>The screen shot below shows the output from clicking on the &#39;View all oplet properties&#39; link directly below the job selector:</p>

<p><img src='images/console_oplet_properties.jpg' alt='Displays a table showing the relationship between the oplets and vertices' width='100%'/></p>

<p>Looking at the sixth line in the table, where the Name is &#39;OP_5&#39;, we can see that the Oplet kind is a <code>Map</code>, a <code>quarks.oplet.functional.Map</code>, the Tuple count is 0 (this is because the view is in Static flow mode - the graph does not show the number of tuples flowing in it), the source oplet is &#39;OP_55&#39;, the target oplet is &#39;OP_60&#39;, and there are no stream tags coming from the source or target streams. Relationships for all oplets can be viewed in this manner.</p>

<p>Now, looking at the graph, if we want to see the relationships for a single oplet, we can hover over it. The image below shows the hover when we are over &#39;OP_5&#39;.</p>

<p><img src='images/console_hover_over_op.jpg' width='100%'/></p>

<p>You can also hover over the edges of the topology graph to get information. Hover over the edge (link) between &#39;OP_0&#39; and &#39;OP_55&#39;. The image shows the name and kind of the oplet as the source, and the name and kind of oplet as the target. Again the tuple count is 0 since this is the &#39;Static flow&#39; view. The last item of information in the tooltip is the tags on the stream.</p>

<p>One or many tags can be added to a stream. In this case we see the tags &#39;temperature&#39; and &#39;well1&#39;.</p>

<p><img src='images/console_hover_over_link.jpg'/></p>

<p>The section of the code that adds the tags &#39;temperature&#39; and &#39;well1&#39; is in the <code>waterDetector</code> method of the <code>ConsoleWaterDetector</code> class.</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">static</span> <span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;</span> <span class="n">waterDetector</span><span class="o">(</span><span class="n">Topology</span> <span class="n">topology</span><span class="o">,</span> <span class="kt">int</span> <span class="n">wellId</span><span class="o">)</span> <span class="o">{</span>
    <span class="n">Random</span> <span class="n">rNum</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Random</span><span class="o">();</span>
    <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">temp</span> <span class="o">=</span> <span class="n">topology</span><span class="o">.</span><span class="na">poll</span><span class="o">(()</span> <span class="o">-&gt;</span> <span class="n">rNum</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="n">TEMP_RANDOM_HIGH</span> <span class="o">-</span> <span class="n">TEMP_RANDOM_LOW</span><span class="o">)</span> <span class="o">+</span> <span class="n">TEMP_RANDOM_LOW</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">);</span>
    <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">acidity</span> <span class="o">=</span> <span class="n">topology</span><span class="o">.</span><span class="na">poll</span><span class="o">(()</span> <span class="o">-&gt;</span> <span class="n">rNum</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="n">ACIDITY_RANDOM_HIGH</span> <span class="o">-</span> <span class="n">ACIDITY_RANDOM_LOW</span><span class="o">)</span> <span class="o">+</span> <span class="n">ACIDITY_RANDOM_LOW</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">);</span>
    <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">ecoli</span> <span class="o">=</span> <span class="n">topology</span><span class="o">.</span><span class="na">poll</span><span class="o">(()</span> <span class="o">-&gt;</span> <span class="n">rNum</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="n">ECOLI_RANDOM_HIGH</span> <span class="o">-</span> <span class="n">ECOLI_RANDOM_LOW</span><span class="o">)</span> <span class="o">+</span> <span class="n">ECOLI_RANDOM_LOW</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">);</span>
    <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">lead</span> <span class="o">=</span> <span class="n">topology</span><span class="o">.</span><span class="na">poll</span><span class="o">(()</span> <span class="o">-&gt;</span> <span class="n">rNum</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="n">LEAD_RANDOM_HIGH</span> <span class="o">-</span> <span class="n">LEAD_RANDOM_LOW</span><span class="o">)</span> <span class="o">+</span> <span class="n">LEAD_RANDOM_LOW</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">);</span>
    <span class="n">TStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">id</span> <span class="o">=</span> <span class="n">topology</span><span class="o">.</span><span class="na">poll</span><span class="o">(()</span> <span class="o">-&gt;</span> <span class="n">wellId</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">);</span>

    <span class="c1">// add tags to each sensor</span>
    <span class="n">temp</span><span class="o">.</span><span class="na">tag</span><span class="o">(</span><span class="s">"temperature"</span><span class="o">,</span> <span class="s">"well"</span> <span class="o">+</span> <span class="n">wellId</span><span class="o">);</span>
</code></pre></div>
<h3 id="legend">Legend</h3>

<p>The legend(s) that appear in the console depend on the view currently displayed. In the static flow mode, if no stream tags are present, there is no legend. In this example we have stream tags in the topology, so the static flow mode gives us the option to select &#39;Show tags&#39;. If selected, the result is the addition of the stream tags legend:</p>

<p><img src='images/console_stream_tags_legend.jpg'/></p>

<p>This legend shows all the tags that have been added to the topology, regardless of whether or not &#39;Show all tags&#39; is checked or specific tags have been selected from the dialog that appears when the &#39;Select individual tags ...&#39; button is clicked.</p>

<h3 id="topology-graph">Topology graph</h3>

<p>Now that we&#39;ve covered most of the ways to modify the view of the topology graph and discussed the application, let&#39;s look at the topology graph as a way to understand our application.</p>

<p>When analyzing what is happening in your application, here are some ways you might use the console to help you understand it:</p>

<ul>
<li>Topology of the application - how the edges and vertices of the graph are related</li>
<li>Tuple flow - tuple counts since the application was started</li>
<li>The affect of filters or maps on the downstream streams</li>
<li>Stream tags - if tags are added dynamically based on a condition, where the streams with tags are displayed in the topology</li>
</ul>

<p>Let&#39;s start with the static flow view of the topology. We can look at the graph, and we can also hover over any of the oplets or streams to better understand the connections. Also, we can click &#39;View all oplet properties&#39; and see the relationships in a tabular format.</p>

<p>The other thing to notice in the static flow view are the tags. Look for any colored edges (the links between the oplets). All of the left-most oplets have streams with tags. Most of them have the color that corresponds to &#39;Multiple tags&#39;. If you hover over the edges, you can see the tags. It&#39;s obvious that we have tagged each sensor with the sensor type and the well id.</p>

<p>Now, if you look to the far right, you can see more tags on streams coming out of a <code>split</code> oplet. They also have multiple tags, and hovering over them you can determine that they represent out of range values for each sensor type for the well. Notice how the <code>split</code> oplet, OP_43, has no tags in the streams coming out of it. If you follow that split oplet back, you can determine from the first tags that it is part of the well 2 stream.</p>

<p>If you refer back to the <code>ConsoleWaterDetector</code> source, you can see that no tags were placed on the streams coming out of <code>well2</code>&#39;s split because they contained no out of range values.</p>

<p>Let&#39;s switch the view to Oplet kind now. It will make more clear which oplets are producing the streams with the tags on them. Below is an image of how the graph looks after switching to the Oplet kind view.</p>

<p><img src="images/console_oplet_kind.jpg" width='100%'/></p>

<p>In the Oplet kind view the links are all the same width, but the circles representing the oplets are sized according to tuple flow. Notice how the circles representing OP_10, OP_32 and OP_21 are large in relation to OP_80, OP_88 and OP_89. As a matter of fact, we can&#39;t even see the circle representing OP_89. Looking at OP_35 and then the Oplet kind legend, you can see by the color that it is a Filter oplet. This is because the filter that we used against <code>well2</code>, which is the stream that OP_35 is part of returned no tuples. This is a bit difficult to see. Let&#39;s look at the Tuple count view.</p>

<p>The Tuple count view will make it more clear that no tuples are following out of OP_35, which represents the filter for <code>well2</code> and only returns out of range values. You may recall that in this example <code>well2</code> returned no out of range values. Below is the screen shot of the graph in &#39;Tuple count&#39; view mode.</p>

<p><img src="images/console_tuple_count.jpg" width='100%'/></p>

<p>The topology graph oplets can sometimes sit on top of each other. If this is the case, pause the refresh and use your mouse to pull down on the oplets that are in the same position. This will allow you to see their name. Alternately, you can use the &#39;View all properties&#39; table to see the relationships between oplets.</p>

<h3 id="metrics">Metrics</h3>

<p>If you scroll the browser window down, you can see a Metrics section. This section appears when the application contains the following:</p>

<ul>
<li>A <code>DevelopmentProvider</code> is used; this automatically inserts counters on the streams of the topology</li>
<li>A <code>quarks.metrics.Metric.Counter</code> or <code>quarks.metrics.Metric.RateMeter</code> is added to an individual stream</li>
</ul>

<h2 id="counters">Counters</h2>

<p>In the <code>ConsoleWaterDetector</code> application we used a <code>DevelopmentProvider</code>. Therefore, counters were added to most streams (edges) with the following exceptions (from the <a href="http://quarks-edge.github.io/quarks/docs/javadoc/quarks/metrics/Metrics.html#counter-quarks.topology.TStream-">Javadoc</a> for <code>quarks.metrics.Metrics</code>):</p>

<p><em>Oplets are only inserted upstream from a FanOut oplet.</em></p>

<p><em>If a chain of Peek oplets exists between oplets A and B, a Metric oplet is inserted after the last Peek, right upstream from oplet B.</em></p>

<p><em>If a chain of Peek oplets is followed by a FanOut, a metric oplet is inserted between the last Peek and the FanOut oplet.
The implementation is not idempotent; previously inserted metric oplets are treated as regular graph vertices. Calling the method twice will insert a new set of metric oplets into the graph.</em></p>

<p>Also, the application inserts counters on <code>well2</code>&#39;s streams after the streams from the individual sensors were unioned and then split:</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">List</span><span class="o">&lt;</span><span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;&gt;</span> <span class="n">individualAlerts2</span> <span class="o">=</span> <span class="n">splitAlert</span><span class="o">(</span><span class="n">filteredReadings2</span><span class="o">,</span> <span class="mi">2</span><span class="o">);</span>

<span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;</span> <span class="n">alert0Well2</span> <span class="o">=</span> <span class="n">individualAlerts2</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
<span class="n">alert0Well2</span>  <span class="o">=</span> <span class="n">Metrics</span><span class="o">.</span><span class="na">counter</span><span class="o">(</span><span class="n">alert0Well2</span><span class="o">);</span>
<span class="n">alert0Well2</span><span class="o">.</span><span class="na">tag</span><span class="o">(</span><span class="s">"well2"</span><span class="o">,</span> <span class="s">"temp"</span><span class="o">);</span>

<span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;</span> <span class="n">alert1Well2</span> <span class="o">=</span> <span class="n">individualAlerts2</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span>
<span class="n">alert1Well2</span>  <span class="o">=</span> <span class="n">Metrics</span><span class="o">.</span><span class="na">counter</span><span class="o">(</span><span class="n">alert1Well2</span><span class="o">);</span>
<span class="n">alert1Well2</span><span class="o">.</span><span class="na">tag</span><span class="o">(</span><span class="s">"well2"</span><span class="o">,</span> <span class="s">"acidity"</span><span class="o">);</span>

<span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;</span> <span class="n">alert2Well2</span> <span class="o">=</span> <span class="n">individualAlerts2</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">2</span><span class="o">);</span>
<span class="n">alert2Well2</span>  <span class="o">=</span> <span class="n">Metrics</span><span class="o">.</span><span class="na">counter</span><span class="o">(</span><span class="n">alert2Well2</span><span class="o">);</span>
<span class="n">alert2Well2</span><span class="o">.</span><span class="na">tag</span><span class="o">(</span><span class="s">"well2"</span><span class="o">,</span> <span class="s">"ecoli"</span><span class="o">);</span>

<span class="n">TStream</span><span class="o">&lt;</span><span class="n">JsonObject</span><span class="o">&gt;</span> <span class="n">alert3Well2</span> <span class="o">=</span> <span class="n">individualAlerts2</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="mi">3</span><span class="o">);</span>
<span class="n">alert3Well2</span>  <span class="o">=</span> <span class="n">Metrics</span><span class="o">.</span><span class="na">counter</span><span class="o">(</span><span class="n">alert3Well2</span><span class="o">);</span>
<span class="n">alert3Well2</span><span class="o">.</span><span class="na">tag</span><span class="o">(</span><span class="s">"well2"</span><span class="o">,</span> <span class="s">"lead"</span><span class="o">);</span>
</code></pre></div>
<p>When looking at the select next to the label &#39;Metrics&#39;, make sure the &#39;Count, oplets OP_37, OP_49 ...&#39; is selected.  This select compares all of the counters in the topology visualized as a bar graph.  An image is shown below:</p>

<p><img src="images/console_counter_metrics_bar.jpg" width='100%'/></p>

<p>Hover over individual bars to get the value of the number of tuples flowing through that oplet since the application was started. You can also see the oplet name. You can see that some of the oplets have zero tuples flowing through them.</p>

<p>The bars that are the tallest and therefore have the highest tuple count are OP_76, OP_67 and OP_65.  If you look back up to the topology graph, in the Tuple count view, you can see that the edges (streams) surrounding these oplets have the color that corresponds to the highest tuple count (in the pictures above that color is bright orange in the Tuple count legend).</p>

<h3 id="rate-meters">Rate meters</h3>

<p>The other type of metric we can look at are rate meter metrics. In the <code>ConsoleWaterDetector</code> application we added two rate meters here with the objective of comparing the rate of out of range readings between <code>well1</code> and <code>well3</code>:</p>
<div class="highlight"><pre><code class="language-" data-lang="">List&lt;TStream&lt;JsonObject&gt;&gt; individualAlerts1 = splitAlert(filteredReadings1, 1);

// Put a rate meter on well1's temperature sensor output
Metrics.rateMeter(individualAlerts1.get(0));
...
List&lt;TStream&lt;JsonObject&gt;&gt; individualAlerts3 = splitAlert(filteredReadings3, 3);

// Put a rate meter on well3's temperature sensor output
Metrics.rateMeter(individualAlerts3.get(0));
</code></pre></div>
<p>Rate meters contain the following metrics for each stream they are added to:</p>

<ul>
<li>Tuple count</li>
<li>The rate of change in the tuple count. The following rates are available for a single stream:

<ul>
<li>1 minute rate change</li>
<li>5 minute rate change</li>
<li>15 minute rate change</li>
<li>Mean rate change</li>
</ul></li>
</ul>

<p>Now change the Metrics select to the &#39;MeanRate&#39;. In our example these correspond to oplets OP_37 and OP_49:</p>

<p><img src="images/console_rate_metrics.jpg" width='100%'/></p>

<p>Hovering over the slightly larger bar, the one to the right, the name is OP_49. Looking at the topology graph and changing the view to &#39;Static flow&#39;, follow the edges back from OP_49 until you can see an edge with a tag on it. You can see that OP_49&#39;s source is OP_51, whose source is OP_99.  The edge between OP_99 and it&#39;s source OP_48 has multiple tags. Hovering over this stream, the tags are &#39;TEMP out of range&#39; and &#39;well3&#39;.</p>

<p>If a single rate meter is placed on a stream, in addition to plotting a bar chart, a line chart over the last 20 measures can be viewed. For example, if I comment out the addition of the rate meter for <code>well1</code> and then rerun the application, the Metrics section will look like the image below. I selected the &#39;OneMinuteRate&#39; and &#39;Line chart&#39; for Chart type:</p>

<p><img src="images/console_metrics_line_chart.jpg" width='100%'/></p>

<h2 id="summary">Summary</h2>

<p>The intent of the information on this page is to help you understand the following:</p>

<ul>
<li>How to add the console application to a Quarks application</li>
<li>How to run the <code>ConsoleWaterDetector</code> sample</li>
<li>The design/architecture in the <code>ConsoleWaterDetector</code> application</li>
<li>The controls for the Topology graph are and what they do, including the different views of the graph</li>
<li>The legend for the graph</li>
<li>How to interpret the graph and use the tooltips over the edges and vertices, as well as the &#39;View all properties&#39; link</li>
<li>How to add counters and rate meters to a topology</li>
<li>How to use the metrics section to understand tuple counters and rate meters</li>
<li>How to correlate values from the metrics section with the topology graph</li>
</ul>

<p>The Quarks console will continue to evolve and improve. Please open an issue if you see a problem with the existing console, but more importantly add an issue if you have an idea of how to make the console better.</p>

<p>The more folks write Quarks applications and view them in the console, the more information we can gather from the community about what is needed in the console. Please consider making a contribution if there is a feature in the console that would really help you and others!</p>


<div class="tags">
    
</div>

<!-- 

    <div id="disqus_thread"></div>
    <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'idrbwjekyll'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
 -->

</div>



<footer>
    <div class="row">
        <div class="col-lg-12 footer">

             Site last
            generated: May 17, 2016 <br/>

        </div>
    </div>
    <br/>
    <div class="row">
        <div class="col-md-12">
            <p class="small">Apache Quarks is an effort undergoing Incubation at The Apache Software
                Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects
                until a further review indicates that the infrastructure, communications, and decision making process
                have stabilized in a manner consistent with other successful ASF projects. While incubation status is
                not necessarily a reflection of the completeness or stability of the code, it does indicate that the
                project has yet to be fully endorsed by the ASF.</p>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <p class="small">Copyright © 2016 The Apache Software Foundation. Licensed under the Apache
                License, Version 2.0.
                Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
                Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their
                respective owners.</p>
        </div>
    </div>
</footer>

            </div><!-- /.row -->

    </div>    <!-- /.container -->

</body>


</html>

