SAMZA-1735: Adding ListGaugeMBean, to enable MBean validation
authorRay Matharu <rmatharu@linkedin.com>
Fri, 29 Jun 2018 23:40:21 +0000 (16:40 -0700)
committerJacob Maes <--global>
Fri, 29 Jun 2018 23:40:21 +0000 (16:40 -0700)
Adding ListGaugeMBean, to enable MBean validation.
Tested with LocalContainerRunner and YARN job.

JIRA SAMZA-1733/ SAMZA-1735.

Author: Ray Matharu <rmatharu@linkedin.com>

Reviewers: Cameron Lee <calee@linkedin.com>

Closes #567 from rmatharu/ListGaugeMBean

samza-core/src/main/scala/org/apache/samza/metrics/reporter/JmxReporter.scala

index c601b29..b48aaf7 100644 (file)
@@ -20,6 +20,7 @@
 package org.apache.samza.metrics.reporter
 
 import java.lang.management.ManagementFactory
+import java.util
 
 import org.apache.samza.util.Logging
 import javax.management.MBeanServer
@@ -104,12 +105,16 @@ trait JmxGaugeMBean extends MetricMBean {
   def getValue(): Object
 }
 
+trait JmxListGaugeMBean extends MetricMBean {
+  def getValue(): util.Collection[Object]
+}
+
 class JmxGauge(g: org.apache.samza.metrics.Gauge[Object], on: ObjectName) extends JmxGaugeMBean {
   def getValue = g.getValue
   def objectName = on
 }
 
-class JmxListGauge(g: org.apache.samza.metrics.ListGauge[Object], on: ObjectName) extends JmxGaugeMBean {
+class JmxListGauge(g: org.apache.samza.metrics.ListGauge[Object], on: ObjectName) extends JmxListGaugeMBean {
   def getValue = g.getValues
   def objectName = on
 }