1818import com .codahale .metrics .Gauge ;
1919import com .codahale .metrics .Metric ;
2020import com .codahale .metrics .MetricSet ;
21+ import org .slf4j .Logger ;
22+ import org .slf4j .LoggerFactory ;
2123
2224import java .lang .management .ManagementFactory ;
2325import java .lang .management .OperatingSystemMXBean ;
3133public class SystemGaugesSet
3234 implements MetricSet
3335{
36+ private final Logger logger = LoggerFactory .getLogger ( this .getClass () );
37+
3438 private final OperatingSystemMXBean operatingSystemMXBean ;
3539
3640 public SystemGaugesSet ()
@@ -55,15 +59,22 @@ public Map<String, Metric> getMetrics()
5559
5660 final Map <String , Metric > gauges = new HashMap <>();
5761
58- gauges .put ( "process.cpu.load" , (Gauge <Double >) osMxBean ::getProcessCpuLoad );
59- gauges .put ( "system.cpu.load" , (Gauge <Double >) osMxBean ::getSystemCpuLoad );
60- gauges .put ( "system.load.avg" , (Gauge <Double >) osMxBean ::getSystemLoadAverage );
61- gauges .put ( "process.cpu.time.ms" , (Gauge <Long >) () -> osMxBean .getProcessCpuTime () * 1000 );
62+ try
63+ {
64+ gauges .put ( "process.cpu.load" , (Gauge <Double >) osMxBean ::getProcessCpuLoad );
65+ gauges .put ( "system.cpu.load" , (Gauge <Double >) osMxBean ::getSystemCpuLoad );
66+ gauges .put ( "system.load.avg" , (Gauge <Double >) osMxBean ::getSystemLoadAverage );
67+ gauges .put ( "process.cpu.time.ms" , (Gauge <Long >) () -> osMxBean .getProcessCpuTime () * 1000 );
6268
63- gauges .put ( "mem.total.swap" , (Gauge <Long >) osMxBean ::getTotalSwapSpaceSize );
64- gauges .put ( "mem.total.physical" , (Gauge <Long >) osMxBean ::getTotalPhysicalMemorySize );
65- gauges .put ( "mem.free.physical" , (Gauge <Long >) osMxBean ::getFreePhysicalMemorySize );
66- gauges .put ( "mem.free.swap" , (Gauge <Long >) osMxBean ::getFreeSwapSpaceSize );
69+ gauges .put ( "mem.total.swap" , (Gauge <Long >) osMxBean ::getTotalSwapSpaceSize );
70+ gauges .put ( "mem.total.physical" , (Gauge <Long >) osMxBean ::getTotalPhysicalMemorySize );
71+ gauges .put ( "mem.free.physical" , (Gauge <Long >) osMxBean ::getFreePhysicalMemorySize );
72+ gauges .put ( "mem.free.swap" , (Gauge <Long >) osMxBean ::getFreeSwapSpaceSize );
73+ }
74+ catch ( Throwable e )
75+ {
76+ logger .warn ( "Can not get system level metrics. Reason: {}" , e .getMessage () );
77+ }
6778
6879 return Collections .unmodifiableMap ( gauges );
6980
0 commit comments