Coder Social home page Coder Social logo

jmxproxy's People

Contributors

asafm avatar mk23 avatar shoonoise 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jmxproxy's Issues

NaN values propagate as numbers in JSON payload.

When a JMX Attribute value yields a NaN (and, presumably +/- Infinity), they end up unquoted in the resulting JSON. For example:

    "\"org.eclipse.jetty.servlet\":type=\"ServletContextHandler\",name=\"percent-4xx-5m\"": {
        "Value": NaN
    }, 

These values are not in the json spec so some parsers (PHP) may break. Change this behavior to return a string "NaN" (and "Infinity" or "-Infinity") when appropriate.

Add unit tests for the ConnectionManager

  • Configure maven to run tests with jmx enabled in the jvm
  • getHost(...) valid input is not null
  • getHost(...) invalid input is null
  • getHost(...).getDomains() contains valid data
  • getHost(...).getDomain(...) valid input is not null
  • getHost(...).getDomain(...) invalid input is null
  • getHost(...).getDomain(...).getMBeans() contains valid data
  • getHost(...).getMBean(...) valid input is not null
  • getHost(...).getMBean(...) invalid input is null
  • getHost(...).getMBean(...).getAttributes() contains valid data
  • getHost(...).getMBean(...).getAttribute(...) valid input is not null
  • getHost(...).getMBean(...).getAttribute(...) invalid input is null

Add support for targeted domain/mbean/attribute URIs

  • drop includeDomains query param

  • add support for full query param to perform current behavior:

    /host:port?full=true =>

{ "mbean": {"attr": "value", ...}, ...}
  • add support for domain retrieval when bare host is requested:

    /host:port =>

["domain1", "domain2", ...]
  • add support for mbean retrieval when a domain is requested:

    /host:port/domain =>

["mbean1", "mbean2", ...]
  • add support for attribute retrieval when an mbean is requested:

    /host:port/domain:mbean =>

{"attr": "value", ...}
  • add support for value retrieval when an attribute is requested:

    /host:port/domain:mbean/attribute =>

"value"

Add proper tests for supported attribute types

Create a test class that exposes beans of supported attribute types and tests them via json fixtures.

  • null
  • int
  • Integer
  • boolean
  • Boolean
  • double
  • Double
  • String
  • array
  • List
  • String yielding proper json

Use findbugs and make jmxproxy findbugs free.

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>findbugs-maven-plugin</artifactId>
  <version>2.5.3</version>
  <configuration>
    <effort>Max</effort>
    <threshold>Default</threshold>
    <xmlOutput>true</xmlOutput>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Authenticated agent workflow has several problems.

  1. Authentication modal stays open after submitting credentials.
  2. Username field doesn't focus on modal show
  3. Race condition on first data prevents graphs from showing correctly.

Synchronize initial data load with authentication check. Add a loader animation to provide visual feedback.

Update debian packaging

  • fix maven2 -> maven dependency
  • add example config file
  • update documentation to dw7
  • modernize release driver
  • fix packaging warning
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: warning: source directory 'jmxproxy' is not <sourcepackage>-<upstreamversion> 'jmxproxy-3.0.0'

Use enforcer and make jmxproxy enforcer clean.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-enforcer-plugin</artifactId>
  <version>1.3.1</version>
  <executions>
    <execution>
      <id>enforce</id>
      <configuration>
        <rules>
          <DependencyConvergence/>
        </rules>
      </configuration>
      <goals>
        <goal>enforce</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Merge configuration classes

Depreciate JMXProxyServiceConfiguration.java creating a static class in JMXProxyConfiguration.java instead.

Make long string truncation smarter.

String values in mbean data tables should be dynamically sized with the cell. Currently an attribute modal that has only one column (i.e. java.lang / Runtime / InputArguments) looks bad with a hardcoded cutoff at 50 chars.

Fix attribute table sizing in Safari and Chrome.

When clicking on dynamic (nested) attribute links in Chrome, the main table doesn't resize vertically. After toggling the attribute back, the main table doesn't resize back to it's original width.

Does not build on saucy

mvn clean package hit an error with maven:
Detected Maven Version: 3.0.4 is not in the allowed range 3.0.5.

pdebuild hit an error regarding JDK:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jmxproxy: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

Add authentication support to the example scripts.

  • Fix cacti script URI to fetch full mbean dictionary changed by Issue #6
  • Cacti script support for authenticated JMX agents
  • Fix graphite script URI to fetch full mbean dictionary changed by Issue #6
  • Graphite script support for authenticated JMX agents

Ditch domain part of the URL

When requesting a bare host without ?full=true return the full list of mbeans available on a JVM. This makes matching by regex much simpler and requires less requests to get at desired data.

Compress long class names in the mbeans menu view.

Some JMX classes can have really long names (i.e. io.dropwizard.jetty.MutableServletContextHandler.5xx-responses). This causes the menu to wrap and look really bad. Compress these by taking initials of package paths until the total string length is less than 30.

Add debian init script to package

Include default config that lets the admin control startup flags and to enable/disable the service. Leave disabled on initial install.

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.