Skip to content

Instantly share code, notes, and snippets.

@jsanda
Created July 12, 2017 17:30
Show Gist options
  • Save jsanda/f8aa2617da0bf3203b8ce2585bc561e1 to your computer and use it in GitHub Desktop.
Save jsanda/f8aa2617da0bf3203b8ce2585bc561e1 to your computer and use it in GitHub Desktop.
@Override
public void start() throws Exception {
ObjectMapper mapper = createMapper();
Router router = Router.router(vertx);
router.route(HttpMethod.POST, BASE_URL + "gauges/raw").handler(context ->
RxHelper.toObservable(context.request())
.map(buffer -> {
try {
TypeReference<List<Metric<Double>>> typeRef = new TypeReference<List<Metric<Double>>>() {};
List<Metric<Double>> gauges =
mapper.reader(typeRef).readValue(buffer.getBytes());
return gauges;
} catch (IOException e) {
throw Exceptions.propagate(e);
}
})
.flatMap(gauges -> metricsService.addDataPoints(GAUGE, Observable.from(gauges)))
.toCompletable()
.subscribe(
() -> context.response()
.setStatusCode(HttpResponseStatus.OK.code())
.end(),
context::fail
)
);
vertx.createHttpServer(new HttpServerOptions())
.requestHandler(router::accept)
.listen(8282);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment