From 0f42e8dcc623a0c34437e2023d7fdd24602dfa06 Mon Sep 17 00:00:00 2001 From: Mark Nellemann Date: Wed, 22 Sep 2021 10:07:31 +0200 Subject: [PATCH] Cleanup. --- doc/monitoring-eye-svgrepo-com.png | Bin 0 -> 29086 bytes doc/monitoring-eye-svgrepo-com.svg | 74 ++++++++++++++++++ .../main/java/sysmon/server/Application.java | 2 +- .../server/ComboResultToPointProcessor.java | 16 +--- .../server/MetricResultToPointProcessor.java | 3 - 5 files changed, 79 insertions(+), 16 deletions(-) create mode 100644 doc/monitoring-eye-svgrepo-com.png create mode 100644 doc/monitoring-eye-svgrepo-com.svg diff --git a/doc/monitoring-eye-svgrepo-com.png b/doc/monitoring-eye-svgrepo-com.png new file mode 100644 index 0000000000000000000000000000000000000000..8c022edca457a4df6f9892618b67196e41e5e5b3 GIT binary patch literal 29086 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/src/main/java/sysmon/server/Application.java b/server/src/main/java/sysmon/server/Application.java index 1b4c8e7..e95b5e7 100644 --- a/server/src/main/java/sysmon/server/Application.java +++ b/server/src/main/java/sysmon/server/Application.java @@ -32,7 +32,7 @@ public class Application implements Callable { private Integer listenPort = 9925; @CommandLine.Option(names = { "-t", "--threads" }, description = "Threads for processing inbound metrics(default: ${DEFAULT-VALUE}).", paramLabel = "") - private Integer threads = 5; + private Integer threads = 1; @CommandLine.Option(names = { "-d", "--debug" }, description = "Enable debugging (default: ${DEFAULT_VALUE}).") private boolean enableDebug = false; diff --git a/server/src/main/java/sysmon/server/ComboResultToPointProcessor.java b/server/src/main/java/sysmon/server/ComboResultToPointProcessor.java index 5cbfbd6..a8c4f33 100644 --- a/server/src/main/java/sysmon/server/ComboResultToPointProcessor.java +++ b/server/src/main/java/sysmon/server/ComboResultToPointProcessor.java @@ -4,19 +4,15 @@ import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.influxdb.dto.BatchPoints; import org.influxdb.dto.Point; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import sysmon.shared.ComboResult; import sysmon.shared.Measurement; import sysmon.shared.MetricResult; -import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; public class ComboResultToPointProcessor implements Processor { - private static final Logger log = LoggerFactory.getLogger(ComboResultToPointProcessor.class); private static String influxDbName; ComboResultToPointProcessor(String influxDbName) { @@ -24,22 +20,17 @@ public class ComboResultToPointProcessor implements Processor { } @Override - public void process(Exchange exchange) throws Exception { + public void process(Exchange exchange) { ComboResult comboResult = exchange.getIn().getBody(ComboResult.class); - //MetricResult metricResult = exchange.getIn().getBody(MetricResult.class); - - //log.info("Size of measurements: " + measurementList.size()); BatchPoints.Builder batchPoints = BatchPoints .database(ComboResultToPointProcessor.influxDbName) .precision(TimeUnit.MILLISECONDS); - List results = comboResult.getMetricResults(); - for(MetricResult metricResult : results) { + for(MetricResult metricResult : comboResult.getMetricResults()) { - List measurementList = metricResult.getMeasurements(); - for(Measurement measurement : measurementList) { + for(Measurement measurement : metricResult.getMeasurements()) { Point.Builder point = Point.measurement(metricResult.getName()) .time(metricResult.getTimestamp(), TimeUnit.MILLISECONDS) @@ -65,6 +56,7 @@ public class ComboResultToPointProcessor implements Processor { } batchPoints.point(point.build()); } + } exchange.getIn().setBody(batchPoints.build()); diff --git a/server/src/main/java/sysmon/server/MetricResultToPointProcessor.java b/server/src/main/java/sysmon/server/MetricResultToPointProcessor.java index 7afafd0..70216f5 100644 --- a/server/src/main/java/sysmon/server/MetricResultToPointProcessor.java +++ b/server/src/main/java/sysmon/server/MetricResultToPointProcessor.java @@ -4,8 +4,6 @@ import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.influxdb.dto.BatchPoints; import org.influxdb.dto.Point; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import sysmon.shared.Measurement; import sysmon.shared.MetricResult; @@ -15,7 +13,6 @@ import java.util.concurrent.TimeUnit; public class MetricResultToPointProcessor implements Processor { - private static final Logger log = LoggerFactory.getLogger(MetricResultToPointProcessor.class); private static String influxDbName; MetricResultToPointProcessor(String influxDbName) {