• Stars
    star
    763
  • Rank 59,305 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 14 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

JMX on Capsaicin

Jolokia - JMX on Capsaicin

Maven Central Build Status Coverage Technical Debt Gitter Code Quality: Java Total Alerts

Jolokia is a fresh way to access JMX MBeans remotely. It is different from JSR-160 connectors in that it is an agent-based approach which uses JSON over HTTP for its communication in a REST-stylish way.

Multiple agents are provided for different environments:

  • WAR Agent for deployment as web application in a Java EE Server.
  • OSGi Agent for deployment in an OSGi container. This agent is packaged as a bundle and comes in two flavors (minimal, all-in-one).
  • Mule Agent for usage within a Mule ESB
  • JVM JDK6 Agent which can be used with any Oracle/Sun JVM, Version 6 or later and which is able to attach to a running Java process dynamically.

Features

The agent approach as several advantages:

  • Firewall friendly

    Since all communication is over HTTP, proxying through firewalls becomes mostly a none-issue (in contrast to RMI communication, which is the default mode for JSR-160)

  • Polyglot

    No Java installation is required on the client side. E.g. Jmx4Perl provides a rich Perl client library and Perl based tools for accessing the agents.

  • Simple Setup

    The Setup is done by a simple agent deployment. In contrast, exporting JMX via JSR-160 can be remarkable complicated (see these blog posts for setting up Weblogic and JBoss for native remote JMX exposure setup)

Additionally, the agents provide extra features not available with JSR-160 connectors:

  • Bulk requests

    In contrast to JSR-160 remoting, Jolokia can process many JMX requests with a single round trip. A single HTTP POST request puts those requests in its JSON payload which gets dispatched on the agent side. These bulk requests can increase performance drastically, especially for monitoring solutions. The Nagios plugin check_jmx4perl uses bulk requests for its multi-check feature.

  • Fine grained security

    In addition to standard HTTP security (SSL, HTTP-Authentication) Jolokia supports a custom policy with fine grained restrictions based on multiple properties like the client's IP address or subnet, and the MBean names, attributes, and operations. The policy is defined in an XML format with support for allow/deny sections and wildcards.

  • Proxy mode

    Jolokia can operate in an agentless mode where the only requirement on the target platform is the standard JSR-160 export of its MBeanServer. A proxy listens on the front side for Jolokia requests via JSON/HTTP and propagates these to the target server through remote JSR-160 JMX calls. Bulk requests get dispatched into multiple JSR-160 requests on the proxy transparently.

Resources

Even more information on Jolokia can be found at www.jolokia.org, including a complete reference manual.

Contributions

Contributions in form of pull requests are highly appreciated. All your work must be donated under the Apache Public License, too. Please sign-off your work before doing a pull request. The sign-off is a simple line at the end of the patch description, which certifies that you wrote it or otherwise have the right to pass it on as an open-source patch. The rules are very simple: if you can certify the below (from developercertificate.org):

Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Then you just add a line to every git commit message:

Signed-off-by: Max Morlock <[email protected]>

Using your real name (sorry, no pseudonyms or anonymous contributions.)

If you set your user.name and user.email git configs, you can sign your commit automatically with git commit -s.

If you fix some documentation (typos, formatting, ...) you are not required to sign-off. It is possible to sign your commits in retrospective, too if you forgot it the first time.

More Repositories

1

jmx4perl

JMX access tools and modules
Perl
45
star
2

aji

AjΓ­ - Jolokia's fancy sister
JavaScript
40
star
3

docker-reveal

Docker image for creating and serving reveal.js presentation ... special effects included
HTML
19
star
4

docker-java-jolokia

Docker Image with Java and Jolokia
JavaScript
14
star
5

docker-maven-sample

Sample project with a use case for rhuss/docker-maven-plugin
Java
11
star
6

jolokia-extra

Addons to Jolokia, the HTTP-JMX Bridge
Java
8
star
7

ping-pong

Three Microservices playing table tennis
Java
6
star
8

dash

Go library for listening for Dash Buttons
Go
3
star
9

k8spatterns

Source code for Kubernetes Patterns book: https://leanpub.com/k8spatterns
Shell
3
star
10

knative-reports

Reports for Knative
2
star
11

poblano

Maven Configuration Documentation Generator
Java
2
star
12

osgish

A readline shell for OSGi using jmx4perl
Perl
2
star
13

puffer

Project for managing a hot water tank
Go
2
star
14

fmp-demo-random-generator

Demo for fabric8-maven-plugin using spring boot
Java
2
star
15

reverse-dns-test

A simple reverse DNS test for OpenShift using f-m-p
Java
1
star
16

random-generator

Demo App for Knative - Just return a random number
Java
1
star
17

wsh

WShell - A Kubernetes shell
Go
1
star
18

java-magazin-random-generator

Sample Microservice running on Kubernetes
Java
1
star
19

buildah-poc

PoC for showing how to use Buildah with an init container for uploading artefacts
Shell
1
star
20

dash2alexa

A Amazon Dash to Alexa bridge, via audio
Go
1
star
21

ansible-container-demo

Simple Ansible Container project serving a static HTML page with Nginx
1
star
22

aha

Perl interface to AVM's home automation HTTP API
Perl
1
star
23

meetup-docker-demo

Demo App for Docker Meetup, 6.8.2014
Java
1
star
24

quick_vertx_kube-configmap

Quickstart where Vert.X retrieves the Application parameters using Kubernetes ConfigMap
Java
1
star