From 3af55a53b5008ce502c3055256ea42dd30d3dd8b Mon Sep 17 00:00:00 2001 From: wusheng Date: Tue, 4 Jul 2017 23:28:00 +0800 Subject: [PATCH] Avoid a classNotFound exception when collect CPU metrics. --- .../org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java index 781016ad7..8b61f596c 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/jvm/cpu/CPUProvider.java @@ -15,8 +15,9 @@ public enum CPUProvider { CPUProvider() { int processorNum = ProcessorUtil.getNumberOfProcessors(); try { - CPUProvider.class.getClassLoader().loadClass("com.sun.management.OperatingSystemMXBean"); - this.cpuMetricAccessor = new SunCpuAccessor(processorNum); + this.cpuMetricAccessor = + (CPUMetricAccessor)CPUProvider.class.getClassLoader().loadClass("org.skywalking.apm.agent.core.jvm.cpu.SunCpuAccessor") + .getConstructor(int.class).newInstance(processorNum); } catch (Exception e) { this.cpuMetricAccessor = new NoSupportedCPUAccessor(processorNum); ILog logger = LogManager.getLogger(CPUProvider.class);