This project encompasses:
- A Java client for the Riemann protocol
- The Riemann protocol buffer definition, and
- Its corresponding (autogenerated) Java classes
RiemannClient c = new RiemannTcpClient(new InetSocketAddress("my.riemann.server", 5555));
c.event().
service("fridge").
state("running").
metric(5.3).
tags("appliance", "cold").
send();
c.query("tagged \"cold\" and metric > 0"); // => List<Event>;
The TCP client is in its early stages; it does not handle server error responses correctly and offers no pooling or retries. The top-level API for sending events and querying the index is functional and threadsafe. A small DSL is available to make sending events easier.
- Set host automatically.
- Add error handling to TcpClient--raise exceptions when msg.getOk() is false.
- Write a UDP client.
- Write a hybrid client which dispatches to UDP and TCP clients as appropriate.
You'll need protoc 2.3.0. After that, mvn package
should build a JAR, and mvn install
will drop it in your local repository.