diff --git a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
index f663b1ea19c0f..eedec979f7158 100644
--- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
+++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala
@@ -218,24 +218,27 @@ private[spark] object UIUtils extends Logging {
-
-
-
-
}
+ def timelineHeaderNodes(request: HttpServletRequest): Seq[Node] = {
+
+
+
+
+ }
+
def vizHeaderNodes(request: HttpServletRequest): Seq[Node] = {
@@ -266,7 +269,8 @@ private[spark] object UIUtils extends Logging {
activeTab: SparkUITab,
helpText: Option[String] = None,
showVisualization: Boolean = false,
- useDataTables: Boolean = false): Seq[Node] = {
+ useDataTables: Boolean = false,
+ useTimeline: Boolean = false): Seq[Node] = {
val appName = activeTab.appName
val shortAppName = if (appName.length < 36) appName else appName.take(32) + "..."
@@ -288,6 +292,7 @@ private[spark] object UIUtils extends Logging {
{if (showVisualization) vizHeaderNodes(request) else Seq.empty}
{if (useDataTables) dataTablesHeaderNodes(request) else Seq.empty}
+ {if (useTimeline) timelineHeaderNodes(request) else Seq.empty}
{appName} - {title}
@@ -352,7 +357,8 @@ private[spark] object UIUtils extends Logging {
request: HttpServletRequest,
content: => Seq[Node],
title: String,
- useDataTables: Boolean = false): Seq[Node] = {
+ useDataTables: Boolean = false,
+ useTimeline: Boolean = false): Seq[Node] = {
{commonHeaderNodes(request)}
@@ -361,6 +367,7 @@ private[spark] object UIUtils extends Logging {
"localStorage.getItem('spark-theme')||" +
"(matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light'))")}
{if (useDataTables) dataTablesHeaderNodes(request) else Seq.empty}
+ {if (useTimeline) timelineHeaderNodes(request) else Seq.empty}
{title}
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
index 6898cbbd82880..75115ed4366ea 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala
@@ -406,7 +406,7 @@ private[ui] class AllJobsPage(parent: JobsTab, store: AppStatusStore) extends We
" Click on a job to see information about the stages of tasks inside it."
UIUtils.headerSparkPage(request, "Spark Jobs", content, parent,
- helpText = Some(helpText))
+ helpText = Some(helpText), useTimeline = true)
}
}
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala
index 30e0f678de782..a5c8aaab9ec0c 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala
@@ -530,6 +530,7 @@ private[ui] class JobPage(parent: JobsTab, store: AppStatusStore) extends WebUIP
}
UIUtils.headerSparkPage(
- request, s"Details for Job $jobId", content, parent, showVisualization = true)
+ request, s"Details for Job $jobId", content, parent, showVisualization = true,
+ useTimeline = true)
}
}
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
index 264a57efff0c6..391345f74dff9 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
@@ -243,7 +243,7 @@ private[ui] class StagePage(parent: StagesTab, store: AppStatusStore) extends We
UIUtils.headerSparkPage(request, stageHeader, content, parent, showVisualization = true,
- useDataTables = true)
+ useDataTables = true, useTimeline = true)
}
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala
index b9f0b91dfde4b..3c8f0c1bec9d1 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala
@@ -128,7 +128,7 @@ class ExecutionPage(parent: SQLTab) extends WebUIPage("execution") with Logging
}
UIUtils.headerSparkPage(
- request, s"Details for Query $executionId", content, parent)
+ request, s"Details for Query $executionId", content, parent, useTimeline = true)
}