sysmon/server/src/main/java/org/sysmon/server/ServerRouteBuilder.java

51 lines
1.5 KiB
Java
Raw Normal View History

package org.sysmon.server;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.rest.RestBindingMode;
2021-05-07 15:53:47 +00:00
import org.apache.camel.spi.Registry;
import org.sysmon.shared.MetricResult;
2021-05-07 15:53:47 +00:00
public class ServerRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
2021-05-07 15:53:47 +00:00
Registry registry = getContext().getRegistry();
restConfiguration().component("jetty")
.bindingMode(RestBindingMode.auto)
.host("127.0.0.1")
2021-05-07 15:53:47 +00:00
.port((Integer) registry.lookupByName("myListenPort"));
rest()
.get("/")
.produces("text/html")
.route()
.to("log:stdout")
.endRest();
rest()
.post("/metrics")
.consumes("application/json")
.produces("text/html")
.type(MetricResult.class)
.route()
.to("seda:inbound")
.endRest();
//from("seda:inbound").log("Got metric from: ${header.component}").to("mock:sink");
from("seda:inbound")
.log(">>> metric: ${header.hostname} - ${body}")
.doTry()
.process(new MetricResultToPointProcessor())
.to("influxdb://myInfluxConnection?databaseName=sysmon&retentionPolicy=autogen")
.doCatch(Exception.class)
.log("Error storing metric to InfluxDB: ${exception}")
.end();
}
}