Skip to content

Commit cc68cb4

Browse files
committed
[KYUUBI #7034] [KUBERNETES] Prefer to use pod spark-app-name label as application name than pod name
### Why are the changes needed? After apache/spark#34460 (Since Spark 3.3.0), the `spark-app-name` is available. We shall use it as the application name if it exists. ### How was this patch tested? Minor change. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #7034 from turboFei/k8s_app_name. Closes #7034 bfa88a4 [Wang, Fei] Get pod app name Authored-by: Wang, Fei <[email protected]> Signed-off-by: Wang, Fei <[email protected]>
1 parent 7e199d6 commit cc68cb4

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

kyuubi-server/src/main/scala/org/apache/kyuubi/engine/KubernetesApplicationAuditLogger.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import io.fabric8.kubernetes.api.model.Pod
2323

2424
import org.apache.kyuubi.Logging
2525
import org.apache.kyuubi.config.KyuubiConf.KubernetesApplicationStateSource.KubernetesApplicationStateSource
26-
import org.apache.kyuubi.engine.KubernetesApplicationOperation.{toApplicationStateAndError, LABEL_KYUUBI_UNIQUE_KEY, SPARK_APP_ID_LABEL}
26+
import org.apache.kyuubi.engine.KubernetesApplicationOperation.{getPodAppId, getPodAppName, toApplicationStateAndError, LABEL_KYUUBI_UNIQUE_KEY}
2727
import org.apache.kyuubi.engine.KubernetesResourceEventTypes.KubernetesResourceEventType
2828

2929
object KubernetesApplicationAuditLogger extends Logging {
@@ -49,7 +49,8 @@ object KubernetesApplicationAuditLogger extends Logging {
4949
s"${containerState.getName}->${containerState.getState}"
5050
}.mkString("[", ",", "]")
5151
sb.append(s"containers=$containerStatuses").append("\t")
52-
sb.append(s"appId=${pod.getMetadata.getLabels.get(SPARK_APP_ID_LABEL)}").append("\t")
52+
sb.append(s"appId=${getPodAppId(pod)}").append("\t")
53+
sb.append(s"appName=${getPodAppName(pod)}").append("\t")
5354
val (appState, appError) =
5455
toApplicationStateAndError(pod, appStateSource, appStateContainer, eventType)
5556
sb.append(s"appState=$appState").append("\t")

kyuubi-server/src/main/scala/org/apache/kyuubi/engine/KubernetesApplicationOperation.scala

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -408,16 +408,16 @@ class KubernetesApplicationOperation extends ApplicationOperation with Logging {
408408
appInfoStore.put(
409409
kyuubiUniqueKey,
410410
kubernetesInfo -> appInfo.copy(
411-
id = pod.getMetadata.getLabels.get(SPARK_APP_ID_LABEL),
412-
name = pod.getMetadata.getName,
411+
id = getPodAppId(pod),
412+
name = getPodAppName(pod),
413413
state = appState,
414414
error = appError))
415415
}.getOrElse {
416416
appInfoStore.put(
417417
kyuubiUniqueKey,
418418
kubernetesInfo -> ApplicationInfo(
419-
id = pod.getMetadata.getLabels.get(SPARK_APP_ID_LABEL),
420-
name = pod.getMetadata.getName,
419+
id = getPodAppId(pod),
420+
name = getPodAppName(pod),
421421
state = appState,
422422
error = appError))
423423
}
@@ -506,7 +506,8 @@ class KubernetesApplicationOperation extends ApplicationOperation with Logging {
506506

507507
object KubernetesApplicationOperation extends Logging {
508508
val LABEL_KYUUBI_UNIQUE_KEY = "kyuubi-unique-tag"
509-
val SPARK_APP_ID_LABEL = "spark-app-selector"
509+
private val SPARK_APP_ID_LABEL = "spark-app-selector"
510+
private val SPARK_APP_NAME_LABEL = "spark-app-name"
510511
val KUBERNETES_SERVICE_HOST = "KUBERNETES_SERVICE_HOST"
511512
val KUBERNETES_SERVICE_PORT = "KUBERNETES_SERVICE_PORT"
512513
val SPARK_UI_PORT_NAME = "spark-ui"
@@ -634,4 +635,12 @@ object KubernetesApplicationOperation extends Logging {
634635
.replace("{{KUBERNETES_NAMESPACE}}", kubernetesNamespace)
635636
.replace("{{SPARK_UI_PORT}}", sparkUiPort.toString)
636637
}
638+
639+
def getPodAppId(pod: Pod): String = {
640+
pod.getMetadata.getLabels.get(SPARK_APP_ID_LABEL)
641+
}
642+
643+
def getPodAppName(pod: Pod): String = {
644+
Option(pod.getMetadata.getLabels.get(SPARK_APP_NAME_LABEL)).getOrElse(pod.getMetadata.getName)
645+
}
637646
}

0 commit comments

Comments
 (0)