diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index e0f15db..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.configuration.updateBuildConfiguration": "automatic" -} \ No newline at end of file diff --git a/client/doc/sysmon-client.toml b/client/doc/sysmon-client.toml index 60bb7c3..8e71096 100644 --- a/client/doc/sysmon-client.toml +++ b/client/doc/sysmon-client.toml @@ -4,6 +4,10 @@ ### Example configuration with default values. ### +[extension.base_info] +enabled = true +interval = '60m' + [extension.base_disk] enabled = true diff --git a/client/src/main/java/sysmon/client/ClientRouteBuilder.java b/client/src/main/java/sysmon/client/ClientRouteBuilder.java index 7c98785..0ea76c8 100644 --- a/client/src/main/java/sysmon/client/ClientRouteBuilder.java +++ b/client/src/main/java/sysmon/client/ClientRouteBuilder.java @@ -61,7 +61,8 @@ public class ClientRouteBuilder extends RouteBuilder { // Setup Camel route for this extension // a unique timer name gives the timer it's own thread, otherwise it's a shared thread for other timers with same name. String timerName = ext.isThreaded() ? ext.getProvides() : "default"; - from("timer:"+timerName+"?fixedRate=true&period=30s") + String timerInterval = (ext.getInterval() != null) ? ext.getInterval() : "30s"; + from("timer:"+timerName+"?fixedRate=true&period="+timerInterval) .bean(ext, "getMetrics") .outputType(MetricResult.class) .process(new MetricEnrichProcessor(registry)) diff --git a/client/src/main/java/sysmon/client/Configuration.java b/client/src/main/java/sysmon/client/Configuration.java index 90f2227..bc07038 100644 --- a/client/src/main/java/sysmon/client/Configuration.java +++ b/client/src/main/java/sysmon/client/Configuration.java @@ -56,6 +56,8 @@ public final class Configuration { map.put(k, table.getDouble(k)); } else if(table.isArray(k)) { map.put(k, Objects.requireNonNull(table.getArray(k)).toList()); + } else if(table.isTable(k)) { + map.put(k, table.getTable(k)); } }); @@ -63,4 +65,4 @@ public final class Configuration { return map; } -} \ No newline at end of file +} diff --git a/client/src/main/java/sysmon/client/ListOfResultsStrategy.java b/client/src/main/java/sysmon/client/ListOfResultsStrategy.java index edc33f7..542266d 100644 --- a/client/src/main/java/sysmon/client/ListOfResultsStrategy.java +++ b/client/src/main/java/sysmon/client/ListOfResultsStrategy.java @@ -10,4 +10,5 @@ public class ListOfResultsStrategy extends AbstractListAggregationStrategy tags = new HashMap<>(); private SystemInfo systemInfo; @@ -54,6 +56,9 @@ public class BaseDetailsExtension implements MetricExtension { return provides; } + @Override + public String getInterval() { return interval; } + @Override public String getDescription() { return description; @@ -67,22 +72,25 @@ public class BaseDetailsExtension implements MetricExtension { if (map.containsKey("threaded")) { threaded = (boolean) map.get("threaded"); } + if (map.containsKey("interval")) { + interval = (String) map.get("interval"); + } } @Override public MetricResult getMetrics() { HashMap fieldsMap = new HashMap() {{ - put("family", systemInfo.getOperatingSystem().getFamily()); // Freedesktop.org / AIX - put("manufacturer", systemInfo.getOperatingSystem().getManufacturer()); // GNU/Linux / IBM + put("os_manufacturer", systemInfo.getOperatingSystem().getManufacturer()); // GNU/Linux / IBM + put("os_family", systemInfo.getOperatingSystem().getFamily()); // Freedesktop.org / AIX put("os_codename", systemInfo.getOperatingSystem().getVersionInfo().getCodeName()); // Flatpak runtime / ppc64 put("os_version", systemInfo.getOperatingSystem().getVersionInfo().getVersion()); // 21.08.4 / 7.2 put("os_build", systemInfo.getOperatingSystem().getVersionInfo().getBuildNumber()); // 5.13.0-7620-generic / 2045B_72V - put("uptime", systemInfo.getOperatingSystem().getSystemUptime()); - put("threads", systemInfo.getOperatingSystem().getThreadCount()); + put("boot_time", systemInfo.getOperatingSystem().getSystemBootTime()); }}; - return new MetricResult(name, new Measurement(new HashMap<>(), fieldsMap)); + log.info(fieldsMap.toString()); + return new MetricResult(name, new Measurement(tags, fieldsMap)); } -} \ No newline at end of file +} diff --git a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseLoadExtension.java b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseLoadExtension.java index b49ce60..d6541f4 100644 --- a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseLoadExtension.java +++ b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseLoadExtension.java @@ -48,6 +48,11 @@ public class BaseLoadExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseMemoryExtension.java b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseMemoryExtension.java index dd5b694..e286274 100644 --- a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseMemoryExtension.java +++ b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseMemoryExtension.java @@ -49,6 +49,11 @@ public class BaseMemoryExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetstatExtension.java b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetstatExtension.java index bf1a383..214fac1 100644 --- a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetstatExtension.java +++ b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetstatExtension.java @@ -49,6 +49,11 @@ public class BaseNetstatExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; @@ -99,4 +104,4 @@ public class BaseNetstatExtension implements MetricExtension { return new MetricResult(name, new Measurement(new HashMap<>(), fieldsMap)); } -} \ No newline at end of file +} diff --git a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetworkExtension.java b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetworkExtension.java index f4a7a05..de3c7ac 100644 --- a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetworkExtension.java +++ b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseNetworkExtension.java @@ -52,6 +52,11 @@ public class BaseNetworkExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessExtension.java b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessExtension.java index 91bb0d1..b2209f5 100644 --- a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessExtension.java +++ b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessExtension.java @@ -65,6 +65,11 @@ public class BaseProcessExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessorExtension.java b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessorExtension.java index 69bbed2..49d05cf 100644 --- a/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessorExtension.java +++ b/plugins/os-base/src/main/java/sysmon/plugins/os_base/BaseProcessorExtension.java @@ -50,6 +50,11 @@ public class BaseProcessorExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-ibmi/src/main/java/sysmon/plugins/os_ibmi/TestExtension.java b/plugins/os-ibmi/src/main/java/sysmon/plugins/os_ibmi/TestExtension.java index c5f41b1..0e9dc96 100644 --- a/plugins/os-ibmi/src/main/java/sysmon/plugins/os_ibmi/TestExtension.java +++ b/plugins/os-ibmi/src/main/java/sysmon/plugins/os_ibmi/TestExtension.java @@ -50,6 +50,11 @@ public class TestExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxNetstatExtension.java b/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxNetstatExtension.java index 996c611..70e73aa 100644 --- a/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxNetstatExtension.java +++ b/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxNetstatExtension.java @@ -59,6 +59,11 @@ public class LinuxNetstatExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxSocketExtension.java b/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxSocketExtension.java index 6526df5..f6dab78 100644 --- a/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxSocketExtension.java +++ b/plugins/os-linux/src/main/java/sysmon/plugins/os_linux/LinuxSocketExtension.java @@ -53,6 +53,11 @@ public class LinuxSocketExtension implements MetricExtension { return name; } + @Override + public String getInterval() { + return null; + } + @Override public String getProvides() { return provides; diff --git a/shared/src/main/java/sysmon/shared/MetricExtension.java b/shared/src/main/java/sysmon/shared/MetricExtension.java index e5ae3a7..9cfce61 100644 --- a/shared/src/main/java/sysmon/shared/MetricExtension.java +++ b/shared/src/main/java/sysmon/shared/MetricExtension.java @@ -11,6 +11,7 @@ public interface MetricExtension extends ExtensionPoint { boolean isSupported(); String getName(); + String getInterval(); String getProvides(); String getDescription();