aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjisookim <jisookim0513@gmail.com>2016-09-23 13:43:47 -0700
committerMarcelo Vanzin <vanzin@cloudera.com>2016-09-23 13:43:47 -0700
commit90a30f46349182b6fc9d4123090c4712fdb425be (patch)
treea2c6532b9e62310f4c0958fa1cdaf9c6789d5a1b
parent988c71457354b0a443471f501cef544a85b1a76a (diff)
downloadspark-90a30f46349182b6fc9d4123090c4712fdb425be.tar.gz
spark-90a30f46349182b6fc9d4123090c4712fdb425be.tar.bz2
spark-90a30f46349182b6fc9d4123090c4712fdb425be.zip
[SPARK-12221] add cpu time to metrics
Currently task metrics don't support executor CPU time, so there's no way to calculate how much CPU time a stage/task took from History Server metrics. This PR enables reporting CPU time. Author: jisookim <jisookim0513@gmail.com> Closes #10212 from jisookim0513/add-cpu-time-metric.
-rw-r--r--core/src/main/scala/org/apache/spark/InternalAccumulator.scala2
-rw-r--r--core/src/main/scala/org/apache/spark/executor/Executor.scala15
-rw-r--r--core/src/main/scala/org/apache/spark/executor/TaskMetrics.scala18
-rw-r--r--core/src/main/scala/org/apache/spark/scheduler/ResultTask.scala8
-rw-r--r--core/src/main/scala/org/apache/spark/scheduler/ShuffleMapTask.scala8
-rw-r--r--core/src/main/scala/org/apache/spark/scheduler/Task.scala2
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala5
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/api.scala5
-rw-r--r--core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala4
-rw-r--r--core/src/main/scala/org/apache/spark/ui/jobs/UIData.scala5
-rw-r--r--core/src/main/scala/org/apache/spark/util/JsonProtocol.scala10
-rw-r--r--core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json3
-rw-r--r--core/src/test/resources/HistoryServerExpectations/failed_stage_list_json_expectation.json1
-rw-r--r--core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json17
-rw-r--r--core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json17
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_list_json_expectation.json4
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json1
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json40
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json16
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json16
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json100
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json40
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json40
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json40
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json2
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json2
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json2
-rw-r--r--core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json17
-rw-r--r--core/src/test/scala/org/apache/spark/util/JsonProtocolSuite.scala69
-rw-r--r--project/MimaExcludes.scala4
30 files changed, 492 insertions, 21 deletions
diff --git a/core/src/main/scala/org/apache/spark/InternalAccumulator.scala b/core/src/main/scala/org/apache/spark/InternalAccumulator.scala
index 0b494c146f..82d3098e2e 100644
--- a/core/src/main/scala/org/apache/spark/InternalAccumulator.scala
+++ b/core/src/main/scala/org/apache/spark/InternalAccumulator.scala
@@ -31,7 +31,9 @@ private[spark] object InternalAccumulator {
// Names of internal task level metrics
val EXECUTOR_DESERIALIZE_TIME = METRICS_PREFIX + "executorDeserializeTime"
+ val EXECUTOR_DESERIALIZE_CPU_TIME = METRICS_PREFIX + "executorDeserializeCpuTime"
val EXECUTOR_RUN_TIME = METRICS_PREFIX + "executorRunTime"
+ val EXECUTOR_CPU_TIME = METRICS_PREFIX + "executorCpuTime"
val RESULT_SIZE = METRICS_PREFIX + "resultSize"
val JVM_GC_TIME = METRICS_PREFIX + "jvmGCTime"
val RESULT_SERIALIZATION_TIME = METRICS_PREFIX + "resultSerializationTime"
diff --git a/core/src/main/scala/org/apache/spark/executor/Executor.scala b/core/src/main/scala/org/apache/spark/executor/Executor.scala
index 668ec41153..9501dd9cd8 100644
--- a/core/src/main/scala/org/apache/spark/executor/Executor.scala
+++ b/core/src/main/scala/org/apache/spark/executor/Executor.scala
@@ -232,13 +232,18 @@ private[spark] class Executor(
}
override def run(): Unit = {
+ val threadMXBean = ManagementFactory.getThreadMXBean
val taskMemoryManager = new TaskMemoryManager(env.memoryManager, taskId)
val deserializeStartTime = System.currentTimeMillis()
+ val deserializeStartCpuTime = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime
+ } else 0L
Thread.currentThread.setContextClassLoader(replClassLoader)
val ser = env.closureSerializer.newInstance()
logInfo(s"Running $taskName (TID $taskId)")
execBackend.statusUpdate(taskId, TaskState.RUNNING, EMPTY_BYTE_BUFFER)
var taskStart: Long = 0
+ var taskStartCpu: Long = 0
startGCTime = computeTotalGcTime()
try {
@@ -269,6 +274,9 @@ private[spark] class Executor(
// Run the actual task and measure its runtime.
taskStart = System.currentTimeMillis()
+ taskStartCpu = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime
+ } else 0L
var threwException = true
val value = try {
val res = task.run(
@@ -302,6 +310,9 @@ private[spark] class Executor(
}
}
val taskFinish = System.currentTimeMillis()
+ val taskFinishCpu = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime
+ } else 0L
// If the task has been killed, let's fail it.
if (task.killed) {
@@ -317,8 +328,12 @@ private[spark] class Executor(
// includes the Partition. Second, Task.run() deserializes the RDD and function to be run.
task.metrics.setExecutorDeserializeTime(
(taskStart - deserializeStartTime) + task.executorDeserializeTime)
+ task.metrics.setExecutorDeserializeCpuTime(
+ (taskStartCpu - deserializeStartCpuTime) + task.executorDeserializeCpuTime)
// We need to subtract Task.run()'s deserialization time to avoid double-counting
task.metrics.setExecutorRunTime((taskFinish - taskStart) - task.executorDeserializeTime)
+ task.metrics.setExecutorCpuTime(
+ (taskFinishCpu - taskStartCpu) - task.executorDeserializeCpuTime)
task.metrics.setJvmGCTime(computeTotalGcTime() - startGCTime)
task.metrics.setResultSerializationTime(afterSerialization - beforeSerialization)
diff --git a/core/src/main/scala/org/apache/spark/executor/TaskMetrics.scala b/core/src/main/scala/org/apache/spark/executor/TaskMetrics.scala
index 52a349919e..2956768c16 100644
--- a/core/src/main/scala/org/apache/spark/executor/TaskMetrics.scala
+++ b/core/src/main/scala/org/apache/spark/executor/TaskMetrics.scala
@@ -47,7 +47,9 @@ import org.apache.spark.util.{AccumulatorContext, AccumulatorMetadata, Accumulat
class TaskMetrics private[spark] () extends Serializable {
// Each metric is internally represented as an accumulator
private val _executorDeserializeTime = new LongAccumulator
+ private val _executorDeserializeCpuTime = new LongAccumulator
private val _executorRunTime = new LongAccumulator
+ private val _executorCpuTime = new LongAccumulator
private val _resultSize = new LongAccumulator
private val _jvmGCTime = new LongAccumulator
private val _resultSerializationTime = new LongAccumulator
@@ -62,11 +64,22 @@ class TaskMetrics private[spark] () extends Serializable {
def executorDeserializeTime: Long = _executorDeserializeTime.sum
/**
+ * CPU Time taken on the executor to deserialize this task in nanoseconds.
+ */
+ def executorDeserializeCpuTime: Long = _executorDeserializeCpuTime.sum
+
+ /**
* Time the executor spends actually running the task (including fetching shuffle data).
*/
def executorRunTime: Long = _executorRunTime.sum
/**
+ * CPU Time the executor spends actually running the task
+ * (including fetching shuffle data) in nanoseconds.
+ */
+ def executorCpuTime: Long = _executorCpuTime.sum
+
+ /**
* The number of bytes this task transmitted back to the driver as the TaskResult.
*/
def resultSize: Long = _resultSize.sum
@@ -111,7 +124,10 @@ class TaskMetrics private[spark] () extends Serializable {
// Setters and increment-ers
private[spark] def setExecutorDeserializeTime(v: Long): Unit =
_executorDeserializeTime.setValue(v)
+ private[spark] def setExecutorDeserializeCpuTime(v: Long): Unit =
+ _executorDeserializeCpuTime.setValue(v)
private[spark] def setExecutorRunTime(v: Long): Unit = _executorRunTime.setValue(v)
+ private[spark] def setExecutorCpuTime(v: Long): Unit = _executorCpuTime.setValue(v)
private[spark] def setResultSize(v: Long): Unit = _resultSize.setValue(v)
private[spark] def setJvmGCTime(v: Long): Unit = _jvmGCTime.setValue(v)
private[spark] def setResultSerializationTime(v: Long): Unit =
@@ -188,7 +204,9 @@ class TaskMetrics private[spark] () extends Serializable {
import InternalAccumulator._
@transient private[spark] lazy val nameToAccums = LinkedHashMap(
EXECUTOR_DESERIALIZE_TIME -> _executorDeserializeTime,
+ EXECUTOR_DESERIALIZE_CPU_TIME -> _executorDeserializeCpuTime,
EXECUTOR_RUN_TIME -> _executorRunTime,
+ EXECUTOR_CPU_TIME -> _executorCpuTime,
RESULT_SIZE -> _resultSize,
JVM_GC_TIME -> _jvmGCTime,
RESULT_SERIALIZATION_TIME -> _resultSerializationTime,
diff --git a/core/src/main/scala/org/apache/spark/scheduler/ResultTask.scala b/core/src/main/scala/org/apache/spark/scheduler/ResultTask.scala
index 75c6018e21..609f10aee9 100644
--- a/core/src/main/scala/org/apache/spark/scheduler/ResultTask.scala
+++ b/core/src/main/scala/org/apache/spark/scheduler/ResultTask.scala
@@ -18,6 +18,7 @@
package org.apache.spark.scheduler
import java.io._
+import java.lang.management.ManagementFactory
import java.nio.ByteBuffer
import java.util.Properties
@@ -61,11 +62,18 @@ private[spark] class ResultTask[T, U](
override def runTask(context: TaskContext): U = {
// Deserialize the RDD and the func using the broadcast variables.
+ val threadMXBean = ManagementFactory.getThreadMXBean
val deserializeStartTime = System.currentTimeMillis()
+ val deserializeStartCpuTime = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime
+ } else 0L
val ser = SparkEnv.get.closureSerializer.newInstance()
val (rdd, func) = ser.deserialize[(RDD[T], (TaskContext, Iterator[T]) => U)](
ByteBuffer.wrap(taskBinary.value), Thread.currentThread.getContextClassLoader)
_executorDeserializeTime = System.currentTimeMillis() - deserializeStartTime
+ _executorDeserializeCpuTime = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime - deserializeStartCpuTime
+ } else 0L
func(context, rdd.iterator(partition, context))
}
diff --git a/core/src/main/scala/org/apache/spark/scheduler/ShuffleMapTask.scala b/core/src/main/scala/org/apache/spark/scheduler/ShuffleMapTask.scala
index 84b3e5ba6c..448fe02084 100644
--- a/core/src/main/scala/org/apache/spark/scheduler/ShuffleMapTask.scala
+++ b/core/src/main/scala/org/apache/spark/scheduler/ShuffleMapTask.scala
@@ -17,6 +17,7 @@
package org.apache.spark.scheduler
+import java.lang.management.ManagementFactory
import java.nio.ByteBuffer
import java.util.Properties
@@ -66,11 +67,18 @@ private[spark] class ShuffleMapTask(
override def runTask(context: TaskContext): MapStatus = {
// Deserialize the RDD using the broadcast variable.
+ val threadMXBean = ManagementFactory.getThreadMXBean
val deserializeStartTime = System.currentTimeMillis()
+ val deserializeStartCpuTime = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime
+ } else 0L
val ser = SparkEnv.get.closureSerializer.newInstance()
val (rdd, dep) = ser.deserialize[(RDD[_], ShuffleDependency[_, _, _])](
ByteBuffer.wrap(taskBinary.value), Thread.currentThread.getContextClassLoader)
_executorDeserializeTime = System.currentTimeMillis() - deserializeStartTime
+ _executorDeserializeCpuTime = if (threadMXBean.isCurrentThreadCpuTimeSupported) {
+ threadMXBean.getCurrentThreadCpuTime - deserializeStartCpuTime
+ } else 0L
var writer: ShuffleWriter[Any, Any] = null
try {
diff --git a/core/src/main/scala/org/apache/spark/scheduler/Task.scala b/core/src/main/scala/org/apache/spark/scheduler/Task.scala
index ea9dc3988d..48daa344f3 100644
--- a/core/src/main/scala/org/apache/spark/scheduler/Task.scala
+++ b/core/src/main/scala/org/apache/spark/scheduler/Task.scala
@@ -139,6 +139,7 @@ private[spark] abstract class Task[T](
@volatile @transient private var _killed = false
protected var _executorDeserializeTime: Long = 0
+ protected var _executorDeserializeCpuTime: Long = 0
/**
* Whether the task has been killed.
@@ -149,6 +150,7 @@ private[spark] abstract class Task[T](
* Returns the amount of time spent deserializing the RDD and function to be run.
*/
def executorDeserializeTime: Long = _executorDeserializeTime
+ def executorDeserializeCpuTime: Long = _executorDeserializeCpuTime
/**
* Collect the latest values of accumulators used in this task. If the task failed,
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala
index 7d63a8f734..acb7c23079 100644
--- a/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala
@@ -101,6 +101,7 @@ private[v1] object AllStagesResource {
numCompleteTasks = stageUiData.numCompleteTasks,
numFailedTasks = stageUiData.numFailedTasks,
executorRunTime = stageUiData.executorRunTime,
+ executorCpuTime = stageUiData.executorCpuTime,
submissionTime = stageInfo.submissionTime.map(new Date(_)),
firstTaskLaunchedTime,
completionTime = stageInfo.completionTime.map(new Date(_)),
@@ -220,7 +221,9 @@ private[v1] object AllStagesResource {
new TaskMetricDistributions(
quantiles = quantiles,
executorDeserializeTime = metricQuantiles(_.executorDeserializeTime),
+ executorDeserializeCpuTime = metricQuantiles(_.executorDeserializeCpuTime),
executorRunTime = metricQuantiles(_.executorRunTime),
+ executorCpuTime = metricQuantiles(_.executorCpuTime),
resultSize = metricQuantiles(_.resultSize),
jvmGcTime = metricQuantiles(_.jvmGCTime),
resultSerializationTime = metricQuantiles(_.resultSerializationTime),
@@ -241,7 +244,9 @@ private[v1] object AllStagesResource {
def convertUiTaskMetrics(internal: InternalTaskMetrics): TaskMetrics = {
new TaskMetrics(
executorDeserializeTime = internal.executorDeserializeTime,
+ executorDeserializeCpuTime = internal.executorDeserializeCpuTime,
executorRunTime = internal.executorRunTime,
+ executorCpuTime = internal.executorCpuTime,
resultSize = internal.resultSize,
jvmGcTime = internal.jvmGCTime,
resultSerializationTime = internal.resultSerializationTime,
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/api.scala b/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
index 32e332a9ad..44a929b310 100644
--- a/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
@@ -128,6 +128,7 @@ class StageData private[spark](
val numFailedTasks: Int,
val executorRunTime: Long,
+ val executorCpuTime: Long,
val submissionTime: Option[Date],
val firstTaskLaunchedTime: Option[Date],
val completionTime: Option[Date],
@@ -166,7 +167,9 @@ class TaskData private[spark](
class TaskMetrics private[spark](
val executorDeserializeTime: Long,
+ val executorDeserializeCpuTime: Long,
val executorRunTime: Long,
+ val executorCpuTime: Long,
val resultSize: Long,
val jvmGcTime: Long,
val resultSerializationTime: Long,
@@ -202,7 +205,9 @@ class TaskMetricDistributions private[spark](
val quantiles: IndexedSeq[Double],
val executorDeserializeTime: IndexedSeq[Double],
+ val executorDeserializeCpuTime: IndexedSeq[Double],
val executorRunTime: IndexedSeq[Double],
+ val executorCpuTime: IndexedSeq[Double],
val resultSize: IndexedSeq[Double],
val jvmGcTime: IndexedSeq[Double],
val resultSerializationTime: IndexedSeq[Double],
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala
index d3a4f9d322..83dc5d8745 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobProgressListener.scala
@@ -503,6 +503,10 @@ class JobProgressListener(conf: SparkConf) extends SparkListener with Logging {
val timeDelta =
taskMetrics.executorRunTime - oldMetrics.map(_.executorRunTime).getOrElse(0L)
stageData.executorRunTime += timeDelta
+
+ val cpuTimeDelta =
+ taskMetrics.executorCpuTime - oldMetrics.map(_.executorCpuTime).getOrElse(0L)
+ stageData.executorCpuTime += cpuTimeDelta
}
override def onExecutorMetricsUpdate(executorMetricsUpdate: SparkListenerExecutorMetricsUpdate) {
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/UIData.scala b/core/src/main/scala/org/apache/spark/ui/jobs/UIData.scala
index c729f03b3c..f4a04609c4 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/UIData.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/UIData.scala
@@ -80,6 +80,7 @@ private[spark] object UIData {
var numKilledTasks: Int = _
var executorRunTime: Long = _
+ var executorCpuTime: Long = _
var inputBytes: Long = _
var inputRecords: Long = _
@@ -137,7 +138,9 @@ private[spark] object UIData {
metrics.map { m =>
TaskMetricsUIData(
executorDeserializeTime = m.executorDeserializeTime,
+ executorDeserializeCpuTime = m.executorDeserializeCpuTime,
executorRunTime = m.executorRunTime,
+ executorCpuTime = m.executorCpuTime,
resultSize = m.resultSize,
jvmGCTime = m.jvmGCTime,
resultSerializationTime = m.resultSerializationTime,
@@ -179,7 +182,9 @@ private[spark] object UIData {
case class TaskMetricsUIData(
executorDeserializeTime: Long,
+ executorDeserializeCpuTime: Long,
executorRunTime: Long,
+ executorCpuTime: Long,
resultSize: Long,
jvmGCTime: Long,
resultSerializationTime: Long,
diff --git a/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala b/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
index 41d947c442..f4fa7b4061 100644
--- a/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
+++ b/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
@@ -348,7 +348,9 @@ private[spark] object JsonProtocol {
("Status" -> blockStatusToJson(status))
})
("Executor Deserialize Time" -> taskMetrics.executorDeserializeTime) ~
+ ("Executor Deserialize CPU Time" -> taskMetrics.executorDeserializeCpuTime) ~
("Executor Run Time" -> taskMetrics.executorRunTime) ~
+ ("Executor CPU Time" -> taskMetrics.executorCpuTime) ~
("Result Size" -> taskMetrics.resultSize) ~
("JVM GC Time" -> taskMetrics.jvmGCTime) ~
("Result Serialization Time" -> taskMetrics.resultSerializationTime) ~
@@ -759,7 +761,15 @@ private[spark] object JsonProtocol {
return metrics
}
metrics.setExecutorDeserializeTime((json \ "Executor Deserialize Time").extract[Long])
+ metrics.setExecutorDeserializeCpuTime((json \ "Executor Deserialize CPU Time") match {
+ case JNothing => 0
+ case x => x.extract[Long]
+ })
metrics.setExecutorRunTime((json \ "Executor Run Time").extract[Long])
+ metrics.setExecutorCpuTime((json \ "Executor CPU Time") match {
+ case JNothing => 0
+ case x => x.extract[Long]
+ })
metrics.setResultSize((json \ "Result Size").extract[Long])
metrics.setJvmGCTime((json \ "JVM GC Time").extract[Long])
metrics.setResultSerializationTime((json \ "Result Serialization Time").extract[Long])
diff --git a/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json
index 8f8067f86d..25c4fff77e 100644
--- a/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 162,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:07.191GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:07.191GMT",
"completionTime" : "2015-02-03T16:43:07.226GMT",
@@ -31,6 +32,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 3476,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:05.829GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:05.829GMT",
"completionTime" : "2015-02-03T16:43:06.286GMT",
@@ -56,6 +58,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 4338,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:04.228GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:04.234GMT",
"completionTime" : "2015-02-03T16:43:04.819GMT",
diff --git a/core/src/test/resources/HistoryServerExpectations/failed_stage_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/failed_stage_list_json_expectation.json
index 08b692eda8..b86ba1e65d 100644
--- a/core/src/test/resources/HistoryServerExpectations/failed_stage_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/failed_stage_list_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 7,
"numFailedTasks" : 1,
"executorRunTime" : 278,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:06.296GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:06.296GMT",
"completionTime" : "2015-02-03T16:43:06.347GMT",
diff --git a/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json
index 477a2fec8b..0084339d24 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 3476,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:05.829GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:05.829GMT",
"completionTime" : "2015-02-03T16:43:06.286GMT",
@@ -36,7 +37,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 435,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 2,
@@ -77,7 +80,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -118,7 +123,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -159,7 +166,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 2,
@@ -200,7 +209,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -241,7 +252,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 436,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 0,
@@ -282,7 +295,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -323,7 +338,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 435,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
diff --git a/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json
index 388e51f77a..63fe3b2f95 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 3476,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:05.829GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:05.829GMT",
"completionTime" : "2015-02-03T16:43:06.286GMT",
@@ -36,7 +37,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 435,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 2,
@@ -77,7 +80,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -118,7 +123,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -159,7 +166,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 2,
@@ -200,7 +209,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -241,7 +252,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 436,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 0,
@@ -282,7 +295,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 434,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
@@ -323,7 +338,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 435,
+ "executorCpuTime" : 0,
"resultSize" : 1902,
"jvmGcTime" : 19,
"resultSerializationTime" : 1,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_list_json_expectation.json
index 5b957ed549..6509df1508 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_list_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 162,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:07.191GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:07.191GMT",
"completionTime" : "2015-02-03T16:43:07.226GMT",
@@ -31,6 +32,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 3476,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:05.829GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:05.829GMT",
"completionTime" : "2015-02-03T16:43:06.286GMT",
@@ -56,6 +58,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 4338,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:04.228GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:04.234GMT",
"completionTime" : "2015-02-03T16:43:04.819GMT",
@@ -81,6 +84,7 @@
"numCompleteTasks" : 7,
"numFailedTasks" : 1,
"executorRunTime" : 278,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-02-03T16:43:06.296GMT",
"firstTaskLaunchedTime" : "2015-02-03T16:43:06.296GMT",
"completionTime" : "2015-02-03T16:43:06.347GMT",
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json
index afa425f8c2..8496863a93 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 120,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-03-16T19:25:36.103GMT",
"firstTaskLaunchedTime" : "2015-03-16T19:25:36.515GMT",
"completionTime" : "2015-03-16T19:25:36.579GMT",
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json
index 8e09aabbad..e0661c4641 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json
@@ -10,7 +10,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 32,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -50,7 +52,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 350,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 0,
@@ -90,7 +94,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 32,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 348,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 2,
@@ -130,7 +136,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 2,
@@ -170,7 +178,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -210,7 +220,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 30,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 350,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -250,7 +262,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 29,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 351,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -290,7 +304,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 0,
@@ -330,7 +346,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 80,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -370,7 +388,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -410,7 +430,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 8,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 73,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -450,7 +472,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 75,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -490,7 +514,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 77,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -530,7 +556,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 76,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -570,7 +598,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -610,7 +640,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 76,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -650,7 +682,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -690,7 +724,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 11,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 91,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 1,
@@ -730,7 +766,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 92,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -770,7 +808,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json
index 1dbf72b42a..8492f19ab7 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json
@@ -15,7 +15,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 14,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -60,7 +62,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 14,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -105,7 +109,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 13,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -150,7 +156,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 13,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -195,7 +203,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 1,
@@ -240,7 +250,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -285,7 +297,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -330,7 +344,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json
index 483492282d..4de4c501a4 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json
@@ -15,7 +15,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 14,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -60,7 +62,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 14,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -105,7 +109,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 13,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -150,7 +156,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 13,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -195,7 +203,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 1,
@@ -240,7 +250,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -285,7 +297,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -330,7 +344,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json
index 624f2bb16d..d2eceeb3f9 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json
@@ -10,7 +10,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 8,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 73,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -50,7 +52,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 75,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -90,7 +94,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 77,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -130,7 +136,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 76,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -170,7 +178,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -210,7 +220,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 76,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -250,7 +262,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -290,7 +304,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 11,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 91,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 1,
@@ -330,7 +346,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 92,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -370,7 +388,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -410,7 +430,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -450,7 +472,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 88,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -490,7 +514,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 93,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -530,7 +556,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 65,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -570,7 +598,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 43,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 1,
@@ -610,7 +640,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 49,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -650,7 +682,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 38,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -690,7 +724,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 32,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -730,7 +766,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 29,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -770,7 +808,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 39,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -810,7 +850,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 34,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -850,7 +892,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 36,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 24,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -890,7 +934,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -930,7 +976,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 43,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -970,7 +1018,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 27,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -1010,7 +1060,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 35,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -1050,7 +1102,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 29,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -1090,7 +1144,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 32,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -1130,7 +1186,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 31,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -1170,7 +1228,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1210,7 +1270,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 14,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1250,7 +1312,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1290,7 +1354,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1330,7 +1396,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1370,7 +1438,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1410,7 +1480,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 19,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1450,7 +1522,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 1,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 31,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 6,
"resultSerializationTime" : 0,
@@ -1490,7 +1564,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1530,7 +1606,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 24,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 6,
"resultSerializationTime" : 0,
@@ -1570,7 +1648,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 7,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 23,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 6,
"resultSerializationTime" : 0,
@@ -1610,7 +1690,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1650,7 +1732,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1690,7 +1774,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1730,7 +1816,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1770,7 +1858,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1810,7 +1900,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 21,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1850,7 +1942,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 20,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1890,7 +1984,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1930,7 +2026,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -1970,7 +2068,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json
index 96d86b7278..f42c3a4ee5 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json
@@ -10,7 +10,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 29,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 351,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -50,7 +52,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 350,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 0,
@@ -90,7 +94,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 30,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 350,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -130,7 +136,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 32,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -170,7 +178,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 2,
@@ -210,7 +220,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -250,7 +262,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 0,
@@ -290,7 +304,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 32,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 348,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 2,
@@ -330,7 +346,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 93,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -370,7 +388,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 92,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -410,7 +430,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 11,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 91,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 1,
@@ -450,7 +472,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 88,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -490,7 +514,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -530,7 +556,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -570,7 +598,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -610,7 +640,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -650,7 +682,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -690,7 +724,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 80,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -730,7 +766,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 77,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -770,7 +808,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 76,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json
index 96d86b7278..f42c3a4ee5 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json
@@ -10,7 +10,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 29,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 351,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -50,7 +52,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 350,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 0,
@@ -90,7 +94,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 30,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 350,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -130,7 +136,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 32,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -170,7 +178,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 2,
@@ -210,7 +220,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 1,
@@ -250,7 +262,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 31,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 349,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 0,
@@ -290,7 +304,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 32,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 348,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 7,
"resultSerializationTime" : 2,
@@ -330,7 +346,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 93,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -370,7 +388,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 92,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -410,7 +430,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 11,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 91,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 1,
@@ -450,7 +472,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 88,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -490,7 +514,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -530,7 +556,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -570,7 +598,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 84,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -610,7 +640,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 6,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -650,7 +682,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 83,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -690,7 +724,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 80,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -730,7 +766,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 77,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -770,7 +808,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 9,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 76,
+ "executorCpuTime" : 0,
"resultSize" : 2010,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json
index e0e9e8140c..db60ccccbf 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json
@@ -10,7 +10,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 14,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -50,7 +52,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -90,7 +94,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -130,7 +136,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -170,7 +178,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -210,7 +220,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -250,7 +262,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 16,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 1,
@@ -290,7 +304,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -330,7 +346,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -370,7 +388,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 10,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -410,7 +430,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -450,7 +472,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -490,7 +514,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 20,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 5,
"resultSerializationTime" : 0,
@@ -530,7 +556,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -570,7 +598,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -610,7 +640,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 17,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -650,7 +682,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 3,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -690,7 +724,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 2,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -730,7 +766,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 4,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
@@ -770,7 +808,9 @@
"accumulatorUpdates" : [ ],
"taskMetrics" : {
"executorDeserializeTime" : 5,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 18,
+ "executorCpuTime" : 0,
"resultSize" : 2065,
"jvmGcTime" : 0,
"resultSerializationTime" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json
index 76d1553bc8..5dcbc89043 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json
@@ -1,7 +1,9 @@
{
"quantiles" : [ 0.01, 0.5, 0.99 ],
"executorDeserializeTime" : [ 1.0, 3.0, 36.0 ],
+ "executorDeserializeCpuTime" : [ 0.0, 0.0, 0.0 ],
"executorRunTime" : [ 16.0, 28.0, 351.0 ],
+ "executorCpuTime" : [ 0.0, 0.0, 0.0],
"resultSize" : [ 2010.0, 2065.0, 2065.0 ],
"jvmGcTime" : [ 0.0, 0.0, 7.0 ],
"resultSerializationTime" : [ 0.0, 0.0, 2.0 ],
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json
index 7baffc5df0..6d230ac653 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json
@@ -1,7 +1,9 @@
{
"quantiles" : [ 0.05, 0.25, 0.5, 0.75, 0.95 ],
"executorDeserializeTime" : [ 1.0, 2.0, 2.0, 2.0, 3.0 ],
+ "executorDeserializeCpuTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
"executorRunTime" : [ 30.0, 74.0, 75.0, 76.0, 79.0 ],
+ "executorCpuTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
"resultSize" : [ 1034.0, 1034.0, 1034.0, 1034.0, 1034.0 ],
"jvmGcTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
"resultSerializationTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json
index f8c4b7c128..aea0f5413d 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json
@@ -1,7 +1,9 @@
{
"quantiles" : [ 0.05, 0.25, 0.5, 0.75, 0.95 ],
"executorDeserializeTime" : [ 2.0, 2.0, 3.0, 7.0, 31.0 ],
+ "executorDeserializeCpuTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
"executorRunTime" : [ 16.0, 18.0, 28.0, 49.0, 349.0 ],
+ "executorCpuTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
"resultSize" : [ 2010.0, 2065.0, 2065.0, 2065.0, 2065.0 ],
"jvmGcTime" : [ 0.0, 0.0, 0.0, 5.0, 7.0 ],
"resultSerializationTime" : [ 0.0, 0.0, 0.0, 0.0, 1.0 ],
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json
index ce008bf409..aaeef1f2f5 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json
@@ -6,6 +6,7 @@
"numCompleteTasks" : 8,
"numFailedTasks" : 0,
"executorRunTime" : 120,
+ "executorCpuTime" : 0,
"submissionTime" : "2015-03-16T19:25:36.103GMT",
"firstTaskLaunchedTime" : "2015-03-16T19:25:36.515GMT",
"completionTime" : "2015-03-16T19:25:36.579GMT",
@@ -45,7 +46,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 13,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -91,7 +94,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -137,7 +142,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 1,
@@ -183,7 +190,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -229,7 +238,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 14,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -275,7 +286,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 13,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -321,7 +334,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 12,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
@@ -367,7 +382,9 @@
} ],
"taskMetrics" : {
"executorDeserializeTime" : 14,
+ "executorDeserializeCpuTime" : 0,
"executorRunTime" : 15,
+ "executorCpuTime" : 0,
"resultSize" : 697,
"jvmGcTime" : 0,
"resultSerializationTime" : 2,
diff --git a/core/src/test/scala/org/apache/spark/util/JsonProtocolSuite.scala b/core/src/test/scala/org/apache/spark/util/JsonProtocolSuite.scala
index 00314abf49..d5146d70eb 100644
--- a/core/src/test/scala/org/apache/spark/util/JsonProtocolSuite.scala
+++ b/core/src/test/scala/org/apache/spark/util/JsonProtocolSuite.scala
@@ -606,6 +606,9 @@ private[spark] object JsonProtocolSuite extends Assertions {
private def assertEquals(metrics1: TaskMetrics, metrics2: TaskMetrics) {
assert(metrics1.executorDeserializeTime === metrics2.executorDeserializeTime)
+ assert(metrics1.executorDeserializeCpuTime === metrics2.executorDeserializeCpuTime)
+ assert(metrics1.executorRunTime === metrics2.executorRunTime)
+ assert(metrics1.executorCpuTime === metrics2.executorCpuTime)
assert(metrics1.resultSize === metrics2.resultSize)
assert(metrics1.jvmGCTime === metrics2.jvmGCTime)
assert(metrics1.resultSerializationTime === metrics2.resultSerializationTime)
@@ -816,8 +819,11 @@ private[spark] object JsonProtocolSuite extends Assertions {
hasOutput: Boolean,
hasRecords: Boolean = true) = {
val t = TaskMetrics.empty
+ // Set CPU times same as wall times for testing purpose
t.setExecutorDeserializeTime(a)
+ t.setExecutorDeserializeCpuTime(a)
t.setExecutorRunTime(b)
+ t.setExecutorCpuTime(b)
t.setResultSize(c)
t.setJvmGCTime(d)
t.setResultSerializationTime(a + b)
@@ -1097,7 +1103,9 @@ private[spark] object JsonProtocolSuite extends Assertions {
| },
| "Task Metrics": {
| "Executor Deserialize Time": 300,
+ | "Executor Deserialize CPU Time": 300,
| "Executor Run Time": 400,
+ | "Executor CPU Time": 400,
| "Result Size": 500,
| "JVM GC Time": 600,
| "Result Serialization Time": 700,
@@ -1195,7 +1203,9 @@ private[spark] object JsonProtocolSuite extends Assertions {
| },
| "Task Metrics": {
| "Executor Deserialize Time": 300,
+ | "Executor Deserialize CPU Time": 300,
| "Executor Run Time": 400,
+ | "Executor CPU Time": 400,
| "Result Size": 500,
| "JVM GC Time": 600,
| "Result Serialization Time": 700,
@@ -1293,7 +1303,9 @@ private[spark] object JsonProtocolSuite extends Assertions {
| },
| "Task Metrics": {
| "Executor Deserialize Time": 300,
+ | "Executor Deserialize CPU Time": 300,
| "Executor Run Time": 400,
+ | "Executor CPU Time": 400,
| "Result Size": 500,
| "JVM GC Time": 600,
| "Result Serialization Time": 700,
@@ -1785,55 +1797,70 @@ private[spark] object JsonProtocolSuite extends Assertions {
| },
| {
| "ID": 1,
+ | "Name": "$EXECUTOR_DESERIALIZE_CPU_TIME",
+ | "Update": 300,
+ | "Internal": true,
+ | "Count Failed Values": true
+ | },
+ |
+ | {
+ | "ID": 2,
| "Name": "$EXECUTOR_RUN_TIME",
| "Update": 400,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 2,
+ | "ID": 3,
+ | "Name": "$EXECUTOR_CPU_TIME",
+ | "Update": 400,
+ | "Internal": true,
+ | "Count Failed Values": true
+ | },
+ | {
+ | "ID": 4,
| "Name": "$RESULT_SIZE",
| "Update": 500,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 3,
+ | "ID": 5,
| "Name": "$JVM_GC_TIME",
| "Update": 600,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 4,
+ | "ID": 6,
| "Name": "$RESULT_SERIALIZATION_TIME",
| "Update": 700,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 5,
+ | "ID": 7,
| "Name": "$MEMORY_BYTES_SPILLED",
| "Update": 800,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 6,
+ | "ID": 8,
| "Name": "$DISK_BYTES_SPILLED",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 7,
+ | "ID": 9,
| "Name": "$PEAK_EXECUTION_MEMORY",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 8,
+ | "ID": 10,
| "Name": "$UPDATED_BLOCK_STATUSES",
| "Update": [
| {
@@ -1854,98 +1881,98 @@ private[spark] object JsonProtocolSuite extends Assertions {
| "Count Failed Values": true
| },
| {
- | "ID": 9,
+ | "ID": 11,
| "Name": "${shuffleRead.REMOTE_BLOCKS_FETCHED}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 10,
+ | "ID": 12,
| "Name": "${shuffleRead.LOCAL_BLOCKS_FETCHED}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 11,
+ | "ID": 13,
| "Name": "${shuffleRead.REMOTE_BYTES_READ}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 12,
+ | "ID": 14,
| "Name": "${shuffleRead.LOCAL_BYTES_READ}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 13,
+ | "ID": 15,
| "Name": "${shuffleRead.FETCH_WAIT_TIME}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 14,
+ | "ID": 16,
| "Name": "${shuffleRead.RECORDS_READ}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 15,
+ | "ID": 17,
| "Name": "${shuffleWrite.BYTES_WRITTEN}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 16,
+ | "ID": 18,
| "Name": "${shuffleWrite.RECORDS_WRITTEN}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 17,
+ | "ID": 19,
| "Name": "${shuffleWrite.WRITE_TIME}",
| "Update": 0,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 18,
+ | "ID": 20,
| "Name": "${input.BYTES_READ}",
| "Update": 2100,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 19,
+ | "ID": 21,
| "Name": "${input.RECORDS_READ}",
| "Update": 21,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 20,
+ | "ID": 22,
| "Name": "${output.BYTES_WRITTEN}",
| "Update": 1200,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 21,
+ | "ID": 23,
| "Name": "${output.RECORDS_WRITTEN}",
| "Update": 12,
| "Internal": true,
| "Count Failed Values": true
| },
| {
- | "ID": 22,
+ | "ID": 24,
| "Name": "$TEST_ACCUM",
| "Update": 0,
| "Internal": true,
diff --git a/project/MimaExcludes.scala b/project/MimaExcludes.scala
index b6f64e5a70..8024fbd21b 100644
--- a/project/MimaExcludes.scala
+++ b/project/MimaExcludes.scala
@@ -823,6 +823,10 @@ object MimaExcludes {
) ++ Seq(
// [SPARK-17365][Core] Remove/Kill multiple executors together to reduce RPC call time
ProblemFilters.exclude[MissingTypesProblem]("org.apache.spark.SparkContext")
+ ) ++ Seq(
+ // [SPARK-12221] Add CPU time to metrics
+ ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.spark.status.api.v1.TaskMetrics.this"),
+ ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.spark.status.api.v1.TaskMetricDistributions.this")
)
}