This is an automated email from the ASF dual-hosted git repository.

gengliang pushed a commit to branch branch-3.5
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-3.5 by this push:
     new a39d59f6a21 [SPARK-44770][WEBUI] Add a displayOrder variable to 
WebUITab to specify the order in which tabs appear
a39d59f6a21 is described below

commit a39d59f6a21759957cb16ba1b44b21e4966ab776
Author: Jason Li <jason...@databricks.com>
AuthorDate: Fri Aug 11 16:43:22 2023 -0700

    [SPARK-44770][WEBUI] Add a displayOrder variable to WebUITab to specify the 
order in which tabs appear
    
    ### What changes were proposed in this pull request?
    Add a displayOrder variable to WebUITab to specify the order in which tabs 
appear. Currently, the tabs are ordered by when they get attached, which isn't 
always desired. The default is MIN_VALUE, meaning if it's not specified, it 
will appear in the order added before any tabs with a non-default displayOrder.
    
    ### Why are the changes needed?
    These changes allow control over the order which tabs appear in the UI. 
Currently, the tabs are ordered by when they get attached, but this doesn't 
always match the desired order. For example, we would like to have the SQL Tab 
appear before the Connect tab; however, based on the code flow, the Connect tab 
will be attached first and with the current logic, that tab would also appear 
first.
    
    ### Does this PR introduce _any_ user-facing change?
    Yes, minor user-facing change affecting the order in which tabs appear in 
the Spark UI
    
    ### How was this patch tested?
    Manually tested
    
    Before:
    <img width="1696" alt="Screenshot 2023-08-10 at 3 54 26 PM" 
src="https://github.com/apache/spark/assets/65624911/a04ac6a9-c845-4a13-8780-ffe85de15285";>
    
    After:
    <img width="1679" alt="Screenshot 2023-08-10 at 3 54 42 PM" 
src="https://github.com/apache/spark/assets/65624911/fb332f73-5e3e-4b03-adfc-15402db01197";>
    
    Closes #42459 from jasonli-db/spark-ui-tab-order-3.5.
    
    Authored-by: Jason Li <jason...@databricks.com>
    Signed-off-by: Gengliang Wang <gengli...@apache.org>
---
 .../org/apache/spark/sql/connect/ui/SparkConnectServerTab.scala     | 2 ++
 core/src/main/scala/org/apache/spark/ui/WebUI.scala                 | 6 ++++--
 .../src/main/scala/org/apache/spark/sql/execution/ui/SQLTab.scala   | 2 ++
 .../scala/org/apache/spark/sql/streaming/ui/StreamingQueryTab.scala | 2 ++
 .../org/apache/spark/sql/hive/thriftserver/ui/ThriftServerTab.scala | 2 ++
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerTab.scala
 
b/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerTab.scala
index 4d1820a994c..c5ea0bf618b 100644
--- 
a/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerTab.scala
+++ 
b/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerTab.scala
@@ -46,6 +46,8 @@ private[connect] class SparkConnectServerTab(
   def detach(): Unit = {
     parent.detachTab(this)
   }
+
+  override def displayOrder: Int = 3
 }
 
 private[connect] object SparkConnectServerTab {
diff --git a/core/src/main/scala/org/apache/spark/ui/WebUI.scala 
b/core/src/main/scala/org/apache/spark/ui/WebUI.scala
index b3c8ddb44c4..b23247c5ee1 100644
--- a/core/src/main/scala/org/apache/spark/ui/WebUI.scala
+++ b/core/src/main/scala/org/apache/spark/ui/WebUI.scala
@@ -198,10 +198,12 @@ private[spark] abstract class WebUITab(parent: WebUI, val 
prefix: String) {
     pages += page
   }
 
-  /** Get a list of header tabs from the parent UI. */
-  def headerTabs: Seq[WebUITab] = parent.getTabs
+  /** Get a list of header tabs from the parent UI sorted by displayOrder. */
+  def headerTabs: Seq[WebUITab] = parent.getTabs.sortBy(_.displayOrder)
 
   def basePath: String = parent.getBasePath
+
+  def displayOrder: Int = Integer.MIN_VALUE
 }
 
 
diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLTab.scala 
b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLTab.scala
index 5aa6ddbdb7a..e6c72ce2e1f 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLTab.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLTab.scala
@@ -35,6 +35,8 @@ class SQLTab(val sqlStore: SQLAppStatusStore, sparkUI: 
SparkUI)
   parent.attachTab(this)
 
   parent.addStaticHandler(SQLTab.STATIC_RESOURCE_DIR, "/static/sql")
+
+  override def displayOrder: Int = 0
 }
 
 object SQLTab {
diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryTab.scala
 
b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryTab.scala
index 65cad8f06cc..6fa32ac2c11 100644
--- 
a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryTab.scala
+++ 
b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryTab.scala
@@ -33,6 +33,8 @@ private[sql] class StreamingQueryTab(
   parent.attachTab(this)
 
   parent.addStaticHandler(StreamingQueryTab.STATIC_RESOURCE_DIR, "/static/sql")
+
+  override def displayOrder: Int = 2
 }
 
 private[sql] object StreamingQueryTab {
diff --git 
a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerTab.scala
 
b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerTab.scala
index d89780c5e41..9c3d32918ea 100644
--- 
a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerTab.scala
+++ 
b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerTab.scala
@@ -40,6 +40,8 @@ private[thriftserver] class ThriftServerTab(
   def detach(): Unit = {
     sparkUI.detachTab(this)
   }
+
+  override def displayOrder: Int = 1
 }
 
 private[thriftserver] object ThriftServerTab {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to