 <p>It seems that org.wisdom-framework can provide CPU utilization information and it's easy to add inside Spark. Check this out: <a href="https://github.com/wisdom-framework/wisdom/blob/master/extensions/wisdom-monitor/src/main/java/org/wisdom/monitor/extensions/dashboard/CpuGaugeSet.java" rel="nofollow">https://github.com/wisdom-framework/wisdom/blob/master/extensions/wisdom-monitor/src/main/java/org/wisdom/monitor/extensions/dashboard/CpuGaugeSet.java</a></p> <p>This is what I did:</p> <p>Add the following information at the end of the dependency section in ./core/pom.xml:</p> <pre><code> &lt;dependency&gt; &lt;groupId&gt;org.wisdom-framework&lt;/groupId&gt; &lt;artifactId&gt;wisdom-monitor&lt;/artifactId&gt; &lt;/dependency&gt; </code></pre> <p>and add these in at the end of the dependency section in ./pom.xml:</p> <pre><code> &lt;dependency&gt; &lt;groupId&gt;org.wisdom-framework&lt;/groupId&gt; &lt;artifactId&gt;wisdom-monitor&lt;/artifactId&gt; &lt;version&gt;0.9.1&lt;/version&gt; &lt;/dependency&gt; </code></pre> <p>Register cpuGaugeSet in org/apache/spark/metrics/source/JvmSource.scala</p> <pre><code> import org.wisdom.monitor.extensions.dashboard.CpuGaugeSet metricRegistry.registerAll(new CpuGaugeSet) </code></pre> <p>Build spark again. When you report jvm info for through metrics for the executor and driver, you will see three more stats files related to CPU utilization.</p>