From fab5ec494ca96e841e9a01c9589138812a7548c4 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Mon, 14 Oct 2019 12:55:10 -0700 Subject: [PATCH] [SPARK-29466][WEBUI] Show `Duration` for running drivers in Standalone master web UI --- .../spark/deploy/master/ui/MasterPage.scala | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) 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 042ec54ee124..f64b449851d8 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)} + }} } }