Giter Site home page Giter Site logo

hawtio-jmx's People

Contributors

abkieling avatar astefanutti avatar davsclaus avatar gashcrumb avatar jamesnetherton avatar jimmidyson avatar kwesterfeld avatar kwesterfeld2 avatar skarsaune avatar tadayosi avatar

Stargazers

 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

hawtio-jmx's Issues

jmx-plugin - Tidy up JMX attribute dialog

The layout of this dialog could use some work, might just be a matter of switching it to the form2 plugin. Also perhaps using hawtio-editor instead of the textarea for any json that shows up would be good.

Consider using hawtio-oauth and removing ConnectOptions.token support

@tadayosi @akieling I wonder whether we should depend on hawtio-oauth directly in hawtio-jmx as it is used in hawtio v2 and hawtio-online. If that is the case, then we may consider removing ConnectOptions.token which is redundant.

That follows #47 up. Actually in the OpenShift console, the user stays in the same window and in hawtio-online the token is passed in the URL hash. So we may use the session store instead of the local store. We still need ConnectOptions.token if we want to open a new window.

I would tend to think end-users may want to have multiple windows opened. So that leaves us with the following options:

  • Use hawtio-oauth and store the token in the local store
  • Pass the token in the URL hash and rely on ConnectOptions.token stored in the session store
    The former would allow to logout from any window using the hawtio-logout extension and would allow using the token throughout its entire lifespan, while the later might be more secure.

Discovery of jolokiaUrl broken with jquery 2.1.*

The interrogation of the jolokiaUrl is incorrect. If the url returns a 403 or 401, on the jquery.$ajax() call, around line 607.....the code is incorrect for jquery 2.1.*. Currently the code probably only works if jolokiaUrl is in the query params.

The doc here: http://api.jquery.com/jquery.ajax/, indicates the 2nd parameter is probably the only way to discriminate for the .always() method.

Possibly the clearest approach will be to chain these together:

$.ajax({})
  .done(fn)
  .error(fn)

Login dialog - excessive invocation of checkCredentials function

On the login dialog, the password field ng-change binds to checkCredentials(). This means for every character entered, a request is sent to the target Jolokia instance. If a long password is entered, this results in many requests being sent in a potentially very short period of time.

Maybe it's best to just call checkCredentials when the login button is clicked.

JMX plugin - incorrect Jolokia URL in Attribute dialog

The Jolokia URL shown in Attribute dialog is something like this:

http://localhost:2772/undefined/read/org.apache.activemq:type=Broker,brokerName=amq-broker,destinationType=Queue,destinationName=TEST/Name

On the other hand, the Copy Jolokia URL menu in Operations tab generates the URL correctly:

http://localhost:2772/proxy/http/localhost/8181/hawtio/jolokia/exec/org.apache.activemq:type=Broker,brokerName=amq-broker,destinationType=Queue,destinationName=TEST/browse()

More intuitive feedback on connecting to other JVM

Maybe some responsibility falls on hawtio-core or other components, in that case please split the issue as you see fit (if the request seems sensible).

  1. Is it possible to show the PID in the page title like in 1.5 ? I think that would be very valuable. Additionally there used to be some preference to use different color labels for different connection patterns? I got the impression that it was never in fact completely implemented, but I think the idea was quite promising. Does anyone know why it was dropped and if its worth picking up?
  2. When connecting to a local/discovered process and this for some reason fails, the new tab is then actually connected to the original Java process, and no warning is given. This can cause confusion. Is it possible to detect this situation give and error message and close the new tab immediately, so that the user does not get confused and waste time introspecting the wrong process?
  3. Alternatively I could port the runtime plugin from 1.x and we could open that path by default on these ad hoc connections. That would immediately show the PID, uptime, host and other information helpful in verifying that the connection is indeed to the intended destination.

Add support for front end tests in build

I would like to include some regression tests, preferrably in typescript. Could someone experienced with front end set it up, or advise on how to best do it?
Cheers!

Error callback is always ignored in JolokiaService

I've been testing some functionality over in the hawtio-integration project, and I expected to see some error messages being displayed when Jolokia returns an error response. However, this never happens.

I think the syntax defining the success / error callbacks is wrong in each of the JolokiaService methods. E.g we have:

      return this.$q((resolve, reject) => {
        this.jolokia.request(
          { type: 'read', mbean: mbean, attribute: attribute },
          { success: response => resolve(response.value) },
          { error: response => {
              log.error(`JolokiaService.getAttribute('${mbean}', '${attribute}') failed. Error: ${response.error}`);
              reject(response.error);
            }
          });
      });

The success and error callbacks are within separate objects. I think they should be part of the same object, else the error option will get ignored.

Various shortcomings in jvm/connect compared to 1.x

  • icons not displayed in 2.x:
    • discover : connect icon is not displayed
    • local : start / stop icons are not displayed
  • connect to local discover does not work properly
    • new tab shows the same process, not the one connected to. (similar to hawtio/hawtio#2339)
    • all new connections show in same tab, instead of opening new ones
  • local start / stop not reflected in same refresh cycle: (similar to hawtio/hawtio#2355)
  • discover jvm icon size not constrained :
    image

Have some fixes in progress and plan to submit a PR shortly.

Improve Diagnostics UI

Improve Diagnostics UI using PatternFly and Angular PatternFly.

A few things to improve:

  • Java Flight Recorder
    • Stop showing the warning alert after the user closes it.
    • What's the information alert for? When you open the page, it doesn't show any valuable information. Would make sense hiding it at that point?
    • Replace use of hawtio-forms with HTML form based on PatternFly Forms
    • Would be great to redesign the tape recorder image.
  • Heap Use
    • Use the tab title as page title
    • Stop showing the warning alert after the user closes it.
    • Use the pfTableView with toolbar so they look integrated (pfTableView - with Toolbar)
  • JVM Flags

jmx-plugin - tidy up JMX operation page

The JMX operation page could use a bit of layout work. Perhaps some descriptive text for starters explaining what the page does, maybe improve the list layout of the operations, etc.

Also the buttons that do stuff (execute, reset etc) for the form should maybe go underneath the form. And the "Back" button could maybe just be a list icon.

Bower warning about the "main" field

When installing hawtio-jmx using Bower, the following message is printed:

bower hawtio-jmx#~2.0.50 invalid-meta The "main" field has to contain only 1 file per filetype; found multiple .js files: ["dist/dangle.js","dist/dagre.js","dist/jolokia.js","dist/cubism.v1.js","dist/jolokia-simple.js","dist/jolokia-cubism.js","dist/hawtio-jmx.js"]

Bower expects only one main JavaScript file. A solution would be concatenating the files into one.

JMX Connection Warning Modal Malformed

Not sure if this is the appropriate project to log this issue or not, because the CSS interfering may be elsewhere (like hawtio/openshift-jvm)

Modal style is malformed:

openshift-jvm

happens during unauthorized requests..

openshift-jvm 2

Versions affected:
origin v1.5.0+031cbe4
repro chrome 58.0.3029.110

Repro steps:
1.) Open up two tabs via "Open Java Console" on a pod that exposes a jolokia port
2.) In first tab, log out
3.) Reload 2nd tab to get pod request authorization to fail

Spring Boot runtime metrics card remains in loading state

To avoid duplicate data being displayed on the Runtime > Metrics page, the Spring Boot metrics card only displays metrics that are relevant to the Spring Boot application.

However, when no such metrics are found, the card remains in the loading state indefinitely.

screenshot_2019-01-17_08-40-30

Stop injecting 'workspace' in the hawtio-ui tree component

The workspace resource from hawtio-jmx is being injected in the hawtio-ui tree component with the intention of being notified about node selections. The correct way for hawtio-jmx to be notified about node selections is via the onSelect callback.

Move jolokia preference to hawtio-jmx

[15:19:00] davsclaus: hmm, now that I think about it, the jolokia preference page would probably be best suited to be in hawtio-jmx if you fancy porting that over
[15:19:19] the one that lets you tweak the jolokia settings

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.