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.