Github user squito commented on a diff in the pull request: https://github.com/apache/spark/pull/22612#discussion_r234344821 --- Diff: core/src/main/scala/org/apache/spark/metrics/ExecutorMetricType.scala --- @@ -19,25 +19,43 @@ package org.apache.spark.metrics import java.lang.management.{BufferPoolMXBean, ManagementFactory} import javax.management.ObjectName +import scala.collection.mutable + +import org.apache.spark.executor.ProcfsBasedSystems import org.apache.spark.memory.MemoryManager /** * Executor metric types for executor-level metrics stored in ExecutorMetrics. */ sealed trait ExecutorMetricType { - private[spark] def getMetricValue(memoryManager: MemoryManager): Long - private[spark] val name = getClass().getName().stripSuffix("$").split("""\.""").last + private[spark] def getMetricValues(memoryManager: MemoryManager): Array[Long] = { + new Array[Long](0) + } + private[spark] def names: Seq[String] = Seq() +} + +sealed trait SingleValueExecutorMetricType extends ExecutorMetricType { + override private[spark] def names = Seq(getClass().getName(). + stripSuffix("$").split("""\.""").last) + + override private[spark] def getMetricValues(memoryManager: MemoryManager): Array[Long] = { + val metrics = new Array[Long](1) + metrics(0) = getMetricValue(memoryManager) + metrics + } + + private[spark] def getMetricValue(memoryManager: MemoryManager): Long = 0 --- End diff -- no default implementation here either
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org