Github user vanzin commented on a diff in the pull request:
https://github.com/apache/spark/pull/17747#discussion_r127022304
--- Diff:
core/src/main/scala/org/apache/spark/deploy/history/FsHistoryProvider.scala ---
@@ -240,43 +253,52 @@ private[history] class FsHistoryProvider(conf:
SparkConf, clock: Clock)
override def getLastUpdatedTime(): Long = lastScanTime.get()
override def getAppUI(appId: String, attemptId: Option[String]):
Option[LoadedAppUI] = {
- try {
- applications.get(appId).flatMap { appInfo =>
- appInfo.attempts.find(_.attemptId == attemptId).flatMap { attempt
=>
- val replayBus = new ReplayListenerBus()
- val ui = {
- val conf = this.conf.clone()
- val appSecManager = new SecurityManager(conf)
- SparkUI.createHistoryUI(conf, replayBus, appSecManager,
appInfo.name,
- HistoryServer.getAttemptURI(appId, attempt.attemptId),
- attempt.startTime)
- // Do not call ui.bind() to avoid creating a new server for
each application
- }
-
- val fileStatus = fs.getFileStatus(new Path(logDir,
attempt.logPath))
-
- val appListener = replay(fileStatus,
isApplicationCompleted(fileStatus), replayBus)
-
- if (appListener.appId.isDefined) {
- ui.appSparkVersion = appListener.appSparkVersion.getOrElse("")
- ui.getSecurityManager.setAcls(HISTORY_UI_ACLS_ENABLE)
- // make sure to set admin acls before view acls so they are
properly picked up
- val adminAcls = HISTORY_UI_ADMIN_ACLS + "," +
appListener.adminAcls.getOrElse("")
- ui.getSecurityManager.setAdminAcls(adminAcls)
- ui.getSecurityManager.setViewAcls(attempt.sparkUser,
appListener.viewAcls.getOrElse(""))
- val adminAclsGroups = HISTORY_UI_ADMIN_ACLS_GROUPS + "," +
- appListener.adminAclsGroups.getOrElse("")
- ui.getSecurityManager.setAdminAclsGroups(adminAclsGroups)
-
ui.getSecurityManager.setViewAclsGroups(appListener.viewAclsGroups.getOrElse(""))
- Some(LoadedAppUI(ui, updateProbe(appId, attemptId,
attempt.fileSize)))
- } else {
- None
+ metrics.appUILoadCount.inc()
+ time(metrics.appUiLoadTimer, Some(metrics.appUITotalLoadTime)) {
--- End diff --
So, I've commented on these kinds of metrics numerous times in this and in
the previous version of this PR... but can you explain exactly how this metric
is useful in any way?
Every application is different, so the average time to load the app's UI is
pretty useless, since it will vary wildly.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]