Github user skonto commented on a diff in the pull request:
https://github.com/apache/spark/pull/22381#discussion_r225339052
--- Diff:
core/src/main/scala/org/apache/spark/status/AppStatusListener.scala ---
@@ -382,11 +391,38 @@ private[spark] class AppStatusListener(
}
job.status = event.jobResult match {
- case JobSucceeded => JobExecutionStatus.SUCCEEDED
- case JobFailed(_) => JobExecutionStatus.FAILED
+ case JobSucceeded =>
+ appStatusSource.foreach{_.SUCCEEDED_JOBS.inc(1)}
+ JobExecutionStatus.SUCCEEDED
+ case JobFailed(_) =>
+ appStatusSource.foreach{_.FAILED_JOBS.inc(1)}
+ JobExecutionStatus.FAILED
}
job.completionTime = if (event.time > 0) Some(new Date(event.time))
else None
+
+ for {
+ source <- appStatusSource
+ submissionTime <- job.submissionTime
+ completionTime <- job.completionTime
+ } yield {
+ val localSubmissionTime =
+ LocalDateTime.ofInstant(submissionTime.toInstant,
ZoneId.systemDefault)
+ val localCompletionTime =
+ LocalDateTime.ofInstant(completionTime.toInstant,
ZoneId.systemDefault)
+ val duration = Duration.between(localSubmissionTime,
localCompletionTime)
+ source.JOB_DURATION.value.set(duration.toMillis)
+ }
+
+ // update global app status counters
+
appStatusSource.foreach(_.COMPLETED_STAGES.inc(job.completedStages.size))
--- End diff --
ok will fix.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]