diff --git a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala index 042ec54ee1240..f64b449851d86 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala @@ -108,12 +108,17 @@ private[ui] class MasterPage(parent: MasterWebUI) extends WebUIPage("") { val completedApps = state.completedApps.sortBy(_.endTime).reverse val completedAppsTable = UIUtils.listingTable(appHeaders, appRow, completedApps) - val driverHeaders = Seq("Submission ID", "Submitted Time", "Worker", "State", "Cores", - "Memory", "Resources", "Main Class") + val activeDriverHeaders = Seq("Submission ID", "Submitted Time", "Worker", "State", "Cores", + "Memory", "Resources", "Main Class", "Duration") val activeDrivers = state.activeDrivers.sortBy(_.startTime).reverse - val activeDriversTable = UIUtils.listingTable(driverHeaders, driverRow, activeDrivers) + val activeDriversTable = + UIUtils.listingTable(activeDriverHeaders, activeDriverRow, activeDrivers) + + val completedDriverHeaders = Seq("Submission ID", "Submitted Time", "Worker", "State", "Cores", + "Memory", "Resources", "Main Class") val completedDrivers = state.completedDrivers.sortBy(_.startTime).reverse - val completedDriversTable = UIUtils.listingTable(driverHeaders, driverRow, completedDrivers) + val completedDriversTable = + UIUtils.listingTable(completedDriverHeaders, completedDriverRow, completedDrivers) // For now we only show driver information if the user has submitted drivers to the cluster. // This is until we integrate the notion of drivers and applications in the UI. @@ -310,7 +315,11 @@ private[ui] class MasterPage(parent: MasterWebUI) extends WebUIPage("") { } - private def driverRow(driver: DriverInfo): Seq[Node] = { + private def activeDriverRow(driver: DriverInfo) = driverRow(driver, showDuration = true) + + private def completedDriverRow(driver: DriverInfo) = driverRow(driver, showDuration = false) + + private def driverRow(driver: DriverInfo, showDuration: Boolean): Seq[Node] = { val killLink = if (parent.killEnabled && (driver.state == DriverState.RUNNING || driver.state == DriverState.SUBMITTED || @@ -345,6 +354,9 @@ private[ui] class MasterPage(parent: MasterWebUI) extends WebUIPage("") { {formatResourcesAddresses(driver.resources)} {driver.desc.command.arguments(2)} + {if (showDuration) { + {UIUtils.formatDuration(System.currentTimeMillis() - driver.startTime)} + }} } }