Github user maropu commented on a diff in the pull request:
https://github.com/apache/spark/pull/22218#discussion_r214490061
--- Diff:
core/src/main/scala/org/apache/spark/executor/ExecutorSource.scala ---
@@ -73,6 +75,29 @@ class ExecutorSource(threadPool: ThreadPoolExecutor,
executorId: String) extends
registerFileSystemStat(scheme, "write_ops", _.getWriteOps(), 0)
}
+ /** Dropwizard metrics gauge measuring the executor's process CPU time.
+ * This code will try to get JVM Process CPU time or return -1
otherwise.
+ * The CPU time value is returned in nanoseconds.
+ * It will use proprietary extensions as
com.sun.management.OperatingSystemMXBean or
+ * com.ibm.lang.management.OperatingSystemMXBean if available
+ */
+ val mBean: MBeanServer = ManagementFactory.getPlatformMBeanServer
+ val name = new ObjectName("java.lang", "type", "OperatingSystem")
+ metricRegistry.register(MetricRegistry.name("executorCPUTime" ), new
Gauge[Long] {
+ override def getValue: Long = {
+ try {
+ val attribute = mBean.getAttribute(name, "ProcessCpuTime")
+ if (attribute != null) {
+ attribute.asInstanceOf[Long]
+ } else {
+ -1L
--- End diff --
Any reason to return -1 instead of 0?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]