From e7ed1c632fa928840b698c525a32ee9b67c9630f Mon Sep 17 00:00:00 2001 From: gjoranv Date: Mon, 19 Aug 2019 17:07:07 +0200 Subject: Start SystemPoller only when running on Linux. --- .../metricsproxy/service/SystemPollerProvider.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPollerProvider.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPollerProvider.java index 30fd79c1338..ea47933ddf0 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPollerProvider.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPollerProvider.java @@ -19,16 +19,30 @@ public class SystemPollerProvider implements Provider { * @param monitoringConfig The interval in seconds between each polling. */ public SystemPollerProvider (VespaServices services, MonitoringConfig monitoringConfig) { - poller = new SystemPoller(services.getVespaServices(), 60 * monitoringConfig.intervalMinutes()); - poller.poll(); + if (runningOnLinux()) { + poller = new SystemPoller(services.getVespaServices(), 60 * monitoringConfig.intervalMinutes()); + poller.poll(); + } else { + poller = null; + } } public void deconstruct() { - poller.stop(); + if (poller != null) poller.stop(); } public SystemPoller get() { + if (poller == null) { + throw new IllegalStateException("System poller is only available on Linux, current OS is" + getOs()); + } return poller; } + private static boolean runningOnLinux() { + return getOs().contains("nux"); + } + + private static String getOs() { + return System.getProperty("os.name"); + } } -- cgit v1.2.3