ankuriitg commented on a change in pull request #23306: [SPARK-26357][Core] 
Expose executors' procfs metrics to Metrics system
URL: https://github.com/apache/spark/pull/23306#discussion_r241537922
 
 

 ##########
 File path: 
core/src/main/scala/org/apache/spark/executor/ProcfsMetricsGetter.scala
 ##########
 @@ -62,7 +62,21 @@ private[spark] class ProcfsMetricsGetter(procfsDir: String 
= "/proc/") extends L
         SparkEnv.get.conf.get(config.EVENT_LOG_STAGE_EXECUTOR_METRICS)
       val shouldLogStageExecutorProcessTreeMetrics =
         SparkEnv.get.conf.get(config.EVENT_LOG_PROCESS_TREE_METRICS)
-      procDirExists.get && shouldLogStageExecutorProcessTreeMetrics && 
shouldLogStageExecutorMetrics
+      val shouldAddProcessTreeMetricsToMetricsSet =
+        SparkEnv.get.conf.get(config.METRICS_PROCESS_TREE_METRICS)
+      val pickEitherUIOrMetricsSet = shouldLogStageExecutorProcessTreeMetrics ^
+        shouldAddProcessTreeMetricsToMetricsSet
+      val areBothUIMetricsEnabled = shouldLogStageExecutorProcessTreeMetrics &&
+        shouldAddProcessTreeMetricsToMetricsSet
+      if (areBothUIMetricsEnabled) {
+        logWarning("You have enabled " +
+          "both spark.eventLog.logStageExecutorProcessTreeMetrics.enabled" +
+          " and spark.metrics.logStageExecutorProcessTreeMetrics.enabled. This 
isn't " +
+          "allowed. As a result Procfs metrics won't be reported to UI or 
Metricsset")
+      }
+      (procDirExists.get && shouldLogStageExecutorMetrics && 
pickEitherUIOrMetricsSet) ||
 
 Review comment:
   I think if pickEitherUIOrMetricsSet is changed to use || operator, then the 
above return statement should suffice.
   
   Regarding, caching of the metrics, I agree with that as well. I will just 
recommend to have caching built in 
ProcfsMetricsGetter.pTreeInfo.computeAllMetrics(). This method should just 
return last cached metrics if they are not stale, otherwise compute new 
metrics. This way it can be used by both of MetricSet and Logging.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to