<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_121) on Tue Apr 25 03:06:40 SST 2017 -->
<title>org.apache.gearpump.metrics Class Hierarchy</title>
<meta name="date" content="2017-04-25">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.gearpump.metrics Class Hierarchy";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/gearpump/jarstore/local/package-tree.html">Prev</a></li>
<li><a href="../../../../org/apache/gearpump/security/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/gearpump/metrics/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For Package org.apache.gearpump.metrics</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">scala.runtime.AbstractFunction1&lt;T1,R&gt; (implements scala.Function1&lt;T1,R&gt;)
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.DemandMoreMetrics$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.DemandMoreMetrics$</span></a> (implements scala.Serializable)</li>
</ul>
</li>
<li type="circle">scala.runtime.AbstractFunction18&lt;T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,R&gt; (implements scala.Function18&lt;T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,R&gt;)
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Timer$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Timer$</span></a> (implements scala.Serializable)</li>
</ul>
</li>
<li type="circle">scala.runtime.AbstractFunction2&lt;T1,T2,R&gt; (implements scala.Function2&lt;T1,T2,R&gt;)
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Counter$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Counter$</span></a> (implements scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Gauge$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Gauge$</span></a> (implements scala.Serializable)</li>
</ul>
</li>
<li type="circle">scala.runtime.AbstractFunction5&lt;T1,T2,T3,T4,T5,R&gt; (implements scala.Function5&lt;T1,T2,T3,T4,T5,R&gt;)
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Meter$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Meter$</span></a> (implements scala.Serializable)</li>
</ul>
</li>
<li type="circle">scala.runtime.AbstractFunction7&lt;T1,T2,T3,T4,T5,T6,T7,R&gt; (implements scala.Function7&lt;T1,T2,T3,T4,T5,T6,T7,R&gt;)
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Histogram$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Histogram$</span></a> (implements scala.Serializable)</li>
</ul>
</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/AkkaReporter.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">AkkaReporter</span></a> (implements org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/MetricsReporterService.ReportTo.html" title="interface in org.apache.gearpump.metrics">MetricsReporterService.ReportTo</a>)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Counter.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Counter</span></a></li>
<li type="circle">org.scalatest.FlatSpec
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/MetricsSpec.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">MetricsSpec</span></a></li>
</ul>
</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Histogram.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Histogram</span></a></li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/JvmMetricsSet.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">JvmMetricsSet</span></a> (implements com.codahale.metrics.MetricSet)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Meter.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Meter</span></a></li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics</span></a> (implements akka.actor.Extension)
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.DummyMetrics.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.DummyMetrics</span></a></li>
</ul>
</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Counter.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Counter</span></a> (implements org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType.html" title="interface in org.apache.gearpump.metrics">Metrics.MetricType</a>, scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.DemandMoreMetrics.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.DemandMoreMetrics</span></a> (implements scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Gauge.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Gauge</span></a> (implements org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType.html" title="interface in org.apache.gearpump.metrics">Metrics.MetricType</a>, scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Histogram.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Histogram</span></a> (implements org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType.html" title="interface in org.apache.gearpump.metrics">Metrics.MetricType</a>, scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Meter.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Meter</span></a> (implements org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType.html" title="interface in org.apache.gearpump.metrics">Metrics.MetricType</a>, scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.MetricType$</span></a></li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.ReportMetrics$.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.ReportMetrics$</span></a> (implements scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.Timer.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.Timer</span></a> (implements org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType.html" title="interface in org.apache.gearpump.metrics">Metrics.MetricType</a>, scala.Product, scala.Serializable)</li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/MetricsReporterService.html" title="class in org.apache.gearpump.metrics"><span class="typeNameLink">MetricsReporterService</span></a> (implements akka.actor.Actor)</li>
</ul>
</li>
</ul>
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/Metrics.MetricType.html" title="interface in org.apache.gearpump.metrics"><span class="typeNameLink">Metrics.MetricType</span></a></li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/MetricsAggregator.html" title="interface in org.apache.gearpump.metrics"><span class="typeNameLink">MetricsAggregator</span></a></li>
<li type="circle">org.apache.gearpump.metrics.<a href="../../../../org/apache/gearpump/metrics/MetricsReporterService.ReportTo.html" title="interface in org.apache.gearpump.metrics"><span class="typeNameLink">MetricsReporterService.ReportTo</span></a></li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/gearpump/jarstore/local/package-tree.html">Prev</a></li>
<li><a href="../../../../org/apache/gearpump/security/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/gearpump/metrics/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
