Skip to content

Commit b5319c1

Browse files
committed
Avoid any exception break metrics reporting in SystemGaugeSet
1 parent 9d40db7 commit b5319c1

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

subsys/metrics/core/src/main/java/org/commonjava/indy/metrics/system/SystemGaugesSet.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import com.codahale.metrics.Gauge;
1919
import com.codahale.metrics.Metric;
2020
import com.codahale.metrics.MetricSet;
21+
import org.slf4j.Logger;
22+
import org.slf4j.LoggerFactory;
2123

2224
import java.lang.management.ManagementFactory;
2325
import java.lang.management.OperatingSystemMXBean;
@@ -31,6 +33,8 @@
3133
public 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

Comments
 (0)