Skip to content
This repository has been archived by the owner on May 14, 2019. It is now read-only.

blakepettersson/reactmann

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

reactmann

reactmann is the reactive way to monitor your apps. Built on top of rxjava and the Riemann protocol to make monitoring suck less.

Caveats

This is based on a pre-release version of vert.x and should not be considered production quality (yet).

A non-exhaustive list of TODOs':

  • TCP only, for now
  • No SSL support
  • There's no built in way to do notifications yet. For e-mail I'll probably go with something like vertx-mail-service and there'll most likely be a Pagerduty plugin as well.
  • Needs performance testing, profiling etc
  • Add support for other languages, at the very least for Javascript

Usage

The simplest way to get started, assuming you're using Maven, is to use the java archetype.

mvn archetype:generate                                  \
  -DarchetypeGroupId=com.github.blakepettersson         \
  -DarchetypeArtifactId=reactmann-java-archetype        \
  -DarchetypeVersion=0.3-preview                        \
  -DgroupId={your group id}                             \
  -Dversion={your version}                              \
  -DartifactId={your artifact id}

This will generate a Maven project with a basic verticle, and a main class to run it from an IDE if desired.

In BasicVerticle.java, the generated file looks like this:

public class BasicVerticle extends RiemannVerticle {
    private final Logger log = LoggerFactory.getLogger(BasicVerticle.class);

    @Override
    public void observeStream(Observable<Event> events) {
        events.subscribe(e -> {
            log.info(e);
        });
    }
}

To try this out, cd into the project directory and compile it.

mvn package
java -jar target/{your artifact id}-{your version}-fat.jar

This will start up the Reactmann service. A simple way to see if this actually works would be to start up riemann-health. This tool requires Ruby and Rubygems to be installed first. Open up another terminal and try it out.

gem install riemann-tools

After this step, riemann-health will be available on your PATH. Running it is as simple as

riemann-health

This tool will post to localhost:5555 by default, and you should see incoming events being posted on stdout where the jar is running.

About

A Riemann inspired monitoring system using vert.x

Resources

License

Stars

Watchers

Forks

Packages

No packages published