From 09ee0d4798fbc9d468f2ab314847a3aa06bc86dd Mon Sep 17 00:00:00 2001 From: Pavithra Ramachandran Date: Mon, 4 Nov 2019 16:32:50 +0530 Subject: [PATCH] tooltip for sessions in JDBC /ODBC page --- .../thriftserver/ui/ThriftServerPage.scala | 43 ++++++++++++++----- .../sql/hive/thriftserver/ui/ToolTips.scala | 7 +++ 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index 368db975ec88..d3351f3d6ca1 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -443,10 +443,13 @@ private[ui] class SessionStatsPagedTable( val sessionTableHeaders = Seq("User", "IP", "Session ID", "Start Time", "Finish Time", "Duration", "Total Execute") + val tooltips = Seq(None, None, None, None, None, Some(THRIFT_SESSION_DURATION), + Some(THRIFT_SESSION_TOTAL_EXECUTE)) + assert(sessionTableHeaders.length == tooltips.length) val colWidthAttr = s"${100.toDouble / sessionTableHeaders.size}%" val headerRow: Seq[Node] = { - sessionTableHeaders.map { header => + sessionTableHeaders.zip(tooltips).map { case (header, tooltip) => if (header == sortColumn) { val headerLink = Unparsed( parameterPath + @@ -455,12 +458,22 @@ private[ui] class SessionStatsPagedTable( s"&$sessionStatsTableTag.pageSize=$pageSize" + s"#$sessionStatsTableTag") val arrow = if (desc) "▾" else "▴" // UP or DOWN + + + { + if (tooltip.nonEmpty) { + + {header} {Unparsed(arrow)} + + } else { + + {header} {Unparsed(arrow)} + + } + } + + - - - {header} {Unparsed(arrow)} - - } else { val headerLink = Unparsed( parameterPath + @@ -468,11 +481,19 @@ private[ui] class SessionStatsPagedTable( s"&$sessionStatsTableTag.pageSize=$pageSize" + s"#$sessionStatsTableTag") - - - {header} - - + + + { + if (tooltip.nonEmpty) { + + {header} + + } else { + {header} + } + } + + } } } diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala index 1990b8f2d328..56ab766f4aab 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala @@ -29,4 +29,11 @@ private[ui] object ToolTips { val THRIFT_SERVER_DURATION = "Difference between start time and close time" + + val THRIFT_SESSION_TOTAL_EXECUTE = + "Number of operations submitted in this session" + + val THRIFT_SESSION_DURATION = + "Elapsed time since session start, or until closed if the session was closed" + }