Git Product home page Git Product logo

riemann-jmx's Introduction

riemann-jmx-clj

A Clojure clone of riemann-jmx.

Building

Use lein uberjar to build the standalone jar. You can download leiningen here.

Usage

Pass each of the riemann-jmx-config.yaml as command line options, e.g.:

java -jar riemann-jmx-clj-standalone.jar jvm-config-1.yaml jvm-config-2.yaml jvm-config-3.yaml

Note that passing multiple config files is the same as running a separate copy of riemann-jmx for each config file, except that it uses fewer resources.

Supports composite mbeans as well, unlike the current riemann-jmx.

See riemann-jmx.yaml.example for an example of how to write a configuration file.

License

Copyright © 2013-2015 Two Sigma

Distributed under the Eclipse Public License version 1.0

riemann-jmx's People

Contributors

dgrnbrg avatar elyast avatar ylgrgyq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

riemann-jmx's Issues

IP resolution error in hostname is a number

We have the client running on some servers called "1.", "2.", "3." etc.

Since the latest Java upgrade (now running on 1.8.0_65-b17) we got the following error:
java.rmi.ConnectIOException: Exception creating connection to: 0.0.0.4; nested exception is:
java.net.SocketException: Invalid argument or cannot assign requested address
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:631)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:130)
at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2432)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)
at riemann_jmx_clj.core$run_queries.invoke(core.clj:25)
at riemann_jmx_clj.core$run_configuration.invoke(core.clj:54)
at riemann_jmx_clj.core$start_config$fn__661$fn__662.invoke(core.clj:84)
at riemann_jmx_clj.core$start_config$fn__661.invoke(core.clj:83)
at clojure.core$binding_conveyor_fn$fn__4107.invoke(core.clj:1836)
at clojure.lang.AFn.call(AFn.java:18)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

That looks connected to the Java issue: https://bugs.openjdk.java.net/browse/JDK-8191991
(there is a similar issue on the Oracle JDK too).
The Riemann client seems also unable to pickup a different server name from the yaml file.

add default host

Is it a little better to have local hostname as the default "host" param for jmx in *.yaml file ?
Such as when the user doesn't give riemann-jmx a specific host param, riemann-jmx get local hostname as "host" param automatically.
If you agree with this please let me know and I can give a PR.

is it possible to disable netty epoll and rebuild with lein

our centos image has restrictive policies for /tmp, and I cannot seem to force the java process to use an alternate tmp dir. It could also be umask related, but first I would like to to build riemann-jmx-clj without netty epoll. the error i'm getting while trying to start the service is

ERROR [2015-05-29 18:27:38,871] main - riemann.bin - Couldn't start
java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: /tmp/libnetty-transport-native-epoll4869207597932075362.so: /tmp/libnetty-transport-native-epoll4869207597932075362.so: failed t
o map segment from shared object: Operation not permitted
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:188)
        at clojure.core$deref_future.invoke(core.clj:2180)
        at clojure.core$future_call$reify__6320.deref(core.clj:6420)
        at clojure.core$deref.invoke(core.clj:2200)
        at clojure.core$pmap$step__6333$fn__6335.invoke(core.clj:6470)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.Cons.next(Cons.java:39)
        at clojure.lang.RT.next(RT.java:598)
        at clojure.core$next.invoke(core.clj:64)
        at clojure.core$dorun.invoke(core.clj:2856)
        at riemann.core$transition_BANG_.invoke(core.clj:156)
        at clojure.lang.Atom.swap(Atom.java:51)
        at clojure.core$swap_BANG_.invoke(core.clj:2233)
        at riemann.config$apply_BANG_.invoke(config.clj:295)
        at riemann.bin$_main.invoke(bin.clj:69)
        at riemann.bin$_main.invoke(bin.clj:58)
        at clojure.lang.AFn.applyToHelper(AFn.java:154)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at riemann.bin.main(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/libnetty-transport-native-epoll4869207597932075362.so: /tmp/libnetty-transport-native-epoll4869207597932075362.so: failed to map segment from shared obje
ct: Operation not permitted
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
        at java.lang.Runtime.load0(Runtime.java:795)
        at java.lang.System.load(System.java:1062)
        at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:193)
        at io.netty.channel.epoll.Native.<clinit>(Native.java:46)
        at io.netty.channel.epoll.EpollEventLoop.<init>(EpollEventLoop.java:70)
        at io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:71)
        at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:64)
        at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:49)
        at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:56)
        at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:48)
        at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:41)
        at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:34)
        at riemann.transport.tcp$fn__5914.invoke(tcp.clj:79)
        at riemann.transport.tcp.TCPServer.start_BANG_(tcp.clj:133)
        at riemann.service$fn__3148$G__3142__3150.invoke(service.clj:20)
        at riemann.service$fn__3148$G__3141__3153.invoke(service.clj:20)
        at clojure.core$pmap$fn__6328$fn__6329.invoke(core.clj:6466)
        at clojure.core$binding_conveyor_fn$fn__4145.invoke(core.clj:1910)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
INFO [2015-05-29 18:27:38,928] clojure-agent-send-off-pool-4 - riemann.transport.udp - UDP server 127.0.0.1 5555 16384 -1 online

i have forked the riemann repo and commented out the epoll lines in https://github.com/rojomisin/riemann/blob/epolldisabled/src/riemann/transport/tcp.clj

Can I now build this by pointing the project.clj url at this branch?
https://github.com/twosigma/riemann-jmx/blob/master/project.clj#L3

thanks for any help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.