Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
[SPARK-29466][WEBUI] Show Duration for running drivers in Standalon…
…e master web UI
  • Loading branch information
dongjoon-hyun committed Oct 14, 2019
commit fab5ec494ca96e841e9a01c9589138812a7548c4
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -310,7 +315,11 @@ private[ui] class MasterPage(parent: MasterWebUI) extends WebUIPage("") {
</tr>
}

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 ||
Expand Down Expand Up @@ -345,6 +354,9 @@ private[ui] class MasterPage(parent: MasterWebUI) extends WebUIPage("") {
</td>
<td>{formatResourcesAddresses(driver.resources)}</td>
<td>{driver.desc.command.arguments(2)}</td>
{if (showDuration) {
<td>{UIUtils.formatDuration(System.currentTimeMillis() - driver.startTime)}</td>
}}
</tr>
}
}