@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletRequest
23
23
import scala .xml .Node
24
24
25
25
import org .apache .spark .internal .Logging
26
+ import org .apache .spark .internal .config .SECRET_REDACTION_PATTERN
26
27
import org .apache .spark .ui .UIUtils ._
27
28
import org .apache .spark .util .Utils
28
29
@@ -31,6 +32,10 @@ case class EngineSessionPage(parent: EngineTab)
31
32
extends WebUIPage (" session" ) with Logging {
32
33
val store = parent.store
33
34
35
+ private def propertyHeader = Seq (" Name" , " Value" )
36
+ private def headerClasses = Seq (" sorttable_alpha" , " sorttable_alpha" )
37
+ private def propertyRow (kv : (String , String )) = <tr ><td >{kv._1}</td ><td >{kv._2}</td ></tr >
38
+
34
39
/** Render the page */
35
40
def render (request : HttpServletRequest ): Seq [Node ] = {
36
41
val parameterId = request.getParameter(" id" )
@@ -40,6 +45,34 @@ case class EngineSessionPage(parent: EngineTab)
40
45
val sessionStat = store.getSession(parameterId).getOrElse(null )
41
46
require(sessionStat != null , " Invalid sessionID[" + parameterId + " ]" )
42
47
48
+ val redactionPattern = parent.sparkUI match {
49
+ case Some (ui) => Some (ui.conf.get(SECRET_REDACTION_PATTERN ))
50
+ case None => SECRET_REDACTION_PATTERN .defaultValue
51
+ }
52
+
53
+ val sessionPropertiesTable =
54
+ if (sessionStat.conf != null && ! sessionStat.conf.isEmpty) {
55
+ val table = UIUtils .listingTable(
56
+ propertyHeader,
57
+ propertyRow,
58
+ Utils .redact(redactionPattern, sessionStat.conf.toSeq.sorted),
59
+ fixedWidth = true ,
60
+ headerClasses = headerClasses)
61
+ < span class = " collapse-aggregated-kyuubiSessioinProperties collapse-table"
62
+ onClick= " collapseTable('collapse-aggregated-kyuubiSessioinProperties',
63
+ 'aggregated-kyuubiSessioinProperties')" >
64
+ <h4 >
65
+ <span class =" collapse-table-arrow arrow-open" ></span >
66
+ <a >Session Properties </a >
67
+ </h4 >
68
+ </span >
69
+ <div class =" aggregated-kyuubiSessioinProperties collapsible-table" >
70
+ {table}
71
+ </div >
72
+ } else {
73
+ Seq ()
74
+ }
75
+
43
76
generateBasicStats() ++
44
77
<br /> ++
45
78
<h4 >
@@ -49,6 +82,7 @@ case class EngineSessionPage(parent: EngineTab)
49
82
Session created at {formatDate(sessionStat.startTime)},
50
83
Total run {sessionStat.totalOperations} SQL
51
84
</h4 > ++
85
+ sessionPropertiesTable ++
52
86
generateSQLStatsTable(request, sessionStat.sessionId)
53
87
}
54
88
UIUtils .headerSparkPage(request, parent.name + " Session" , content, parent)
0 commit comments