Home AMX Technical Discussion

Performance Monitor

PhreaKPhreaK Senior MemberPosts: 966
I finally got round to putting together a little performance monitor util for the NI's. It's pretty simple at the moment but it will give you real time(-ish) graphing of processor, memory (volatile, non-volatile and Duet) as well as your disk utilization.

If you want to jump straight in and use it grab a copy of the compiled jar from here. To get started execute it with the host name or IP address of the box you want to monitor as the first command line argument. It will default to 10Hz sampling but you can specify a custom interval via the second argument in ms if you like.

It's all open source to so feel free to chop and change as you see fit. You can find it on GitHub here. Also if you break it / can think of a way to make it better let me know.


  • bwestlakebwestlake Junior Member Posts: 82
    Remote monitoring?

    This is great, thanks. I got it to work on my local master. Can it be used on remote masters?
  • PhreaKPhreaK Senior Member Posts: 966
    Yep. It just opens up a socket connection to port 23 of the master you specify. On my todo list is to swap this out for Apache Commons network library so that it actually handles the telnet layer, then also add direct serial and SSH support. Oh, and at the moment it will break if you have security enabled for telnet access but that's an easy fix.
  • karageurkarageur Junior Member Posts: 97
    Please tell me how to use your valueable module? I'm a bit confused - where should it be uploaded ?
  • nicholasjamesnicholasjames Junior Member Posts: 154
    karageur wrote: »
    Please tell me how to use your valueable module? I'm a bit confused - where should it be uploaded ?

    It doesn't get uploaded anywhere.

    1. Download the compiled jar from PhreaK's github.

    2. Using the command prompt from the folder you downloaded the jar to, run "AMXPerfMon.jar <ip address>". So if your processor's IP is, you would run "AMXPerfMon.jar". If you have trouble using the command prompt I'd suggest Googling "How to use the command prompt". There are many many tutorials out there.
  • karageurkarageur Junior Member Posts: 97
    I got it! It's great! Thanks for very fast reply!
    One more thing - does it support icsp secured masters?
    Mine NI3100 is with icsp authentication turned on.
    So I ran the module but seems that all the characteristics stand still.
    See the screenshot.

  • karageurkarageur Junior Member Posts: 97
    I turned off icsp - still no result :(
    Diag says: Line 14 (23:56:59):: Failed Telnet login attempt #0 from : socket=34, addr=
    Oops, sorry
    I disabled the telnet pass and got the app to work!
    Excellent, thanks again!
  • PhreaKPhreaK Senior Member Posts: 966
    Great. As you noticed this is just something I quickly threw together for testing a few things on a dev master so does not play nice with security. It's all open source though so if you've got the need / time feel free to modify it as much as you like. If you end up implementing telnet login / ssh support submit a pull request and I'll merge it back into the main repo.
  • trobertstroberts Member Posts: 226
    "Phreak"ing awesome

    I don't think this js got enough attention. I have been looking and posting how do I get a real test of my systems performance and can only find telnet commands, which I do on a monthly basis and copy them to an xls spreadsheet...obviously very time consuming. This is a "Phreak"ing awesome way to quickly see CPU usage and other valuable info and export it.
    Us people that don't know "real" programming languages really appreciate tools like this one and programmers like you. Thanks for sharing!
  • RJkrispRJkrisp Junior Member Posts: 3
    java issues

    This performance monitor looks interesting. I can't get it to run on windows 8.1 with jre v1.7, it seems to be looking for java v1.5 (Attached image 1). Is there a workaround? When I downgraded to test with java 1.5, I received a plethora of different errors (attached image 2).
  • PhreaKPhreaK Senior Member Posts: 966
    If you've downloaded the compiled version and are attempting to run it you will need to use the '-jar' switch as it's all sitting inside a jar file rather than a .class.

    Try 'java -jar AMXPerfMon.jar <ip address> [<polling interval (ms)>]'.
  • HARMAN_icraigieHARMAN_icraigie Technical Trainer II, Harman Professional University Posts: 524
    You need to get that rolled into RMS. I've rolled my own that sits on the NI and reports up to the server but having one less thing running on the NI is always a good thing.
  • PhreaKPhreaK Senior Member Posts: 966
    Not sure if it would really fit with RMS. One of the super nice things about RMS Enterprise is that all comms are inbound to the server. This lets you have a fair bit of freedom in terms of where your server is deployed and makes things much nicer form a networking perspective. Whereas this is a tool which will directly connect to an NI and interrogate it. Also, it was written one afternoon and is probably buggy as hell.

    If you are wanting to monitor these sorts of stats within RMS you can do this with the tools available today. I'm not aware of a way to pull this information directly from within NetLinx however you can have a master telnet to itself, run commands and parse the responses. If you set up a timeline to run on a 30 second interval and check CPU usage you can extract the 30 second average and report it back to RMS.
Sign In or Register to comment.