DX Application Performance Management

Expand all | Collapse all

Is there a way to instrument a plain Java Application that is not running within an Application Server

Jump to Best Answer
  • 1.  Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-06-2014 03:08 PM

    I have an internal group that has written a plain Java application (a batch app).  They would like to gather metrics while the application runs.

     

    I tried just adding the JVM arguments:

     

         -javaagent:/opt/wily/Agent.jar -Dcom.wily.introscope.agentProfile=...

     

    Pointing to a profile that is a copy of IntroscopeAgent.default.profile.

     

    The Java Agent shows up in my Metric Browser, but the only metrics that show up are EM Host and EM Port.

     

    Thanks for any insight you can offer.



  • 2.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-06-2014 03:30 PM

    I have gotten standalone java apps to work before with Introscope. Sometimes the places where JVM arguments are loaded are in weird wrapper files. Try looking for different locations and breaking apart the JVM arguments. Check the autoprobe log to see if it is processing the classes they would expect to see in that application.



  • 3.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server
    Best Answer

    Posted 08-06-2014 03:34 PM

    Hi,

    Please check the EM clamps (live or historical limit), seems like one of those have been applied which is why you are not seeing any metrics reported by this new Agent.

     

    Regards,

    Kulbir.



  • 4.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-06-2014 05:15 PM

    Aha!  I do see that my collector is reporting "introscope.enterprisemanager.metrics.historical.limit" is exceeded.

     

    Problem is my team deals with both Nimsoft and APM, both without training, so I have no clue what to do about this message



  • 5.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-06-2014 05:21 PM

    Depending on your APM version if you have an EM_HOME/config/apm-events-thresholds-config.xml file you can dynamically increase the value of that property in there i.e. no EM restart required.



  • 6.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-06-2014 05:24 PM

    Also for future reference the APM Bookshelves have a Configuration and Administration Guide which will cover this subject

    http://www.ca.com/us/support/ca-support-online/support-by-product/ca-application-performance-management.aspx?d=t&language=en&type=ALL&typeofcontent=Bookshelves&page=1



  • 7.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-06-2014 05:22 PM

    Ok no problem we are getting close to resolution.

    On collector installation where you see this clamp being reported go to <EM_Home>/config folder and open apm-events-threshold-config.xml in a text editor.

    Locate this tag "introscope.enterprisemanager.metrics.historical.limit" and change it's value to a higher limit (default 1.2 million) for e.g 1500000.

    Keep in mind that the clamps are to prevent EM from being overloaded, as a temporary solution you can increase it's value to see Agent metrics but longer term you should review the amount of data collected on this EM and review why there are so many metrics.

     

    Regards,

    Kulbir.



  • 8.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-08-2014 01:38 PM

    So knowing a little better where to look, I have used the SmartStor Tools to remove some metrics.  I am now below the 1.2 million.

     

    However it is odd that before removing any metrics I ran the test_regex -metrics ".*" command.  The resulting file only had 410,318 metrics listed, not 1.2 million.



  • 9.  Re: Is there a way to instrument a plain Java Application that is not running within an Application Server

    Posted 08-11-2014 05:39 AM

    Hi,

    What you have seen is normal.

    The output of metrics you get from test_regex -metrics ".*" is just the metric part. They don't take into account the agent name,

    It's very possible for different agents to report metrics of the same name, particularly if you have an application distributed across multiple JVMs.

    Also if you might have had an agent with the same name in SuperDomain then it got mapped to a custom domain that would double up the historical metric count, even though in reality it's just one JVM/agent.

    So the actual historical value you see in the Investigator takes into account the metric names, but also which agents they are associated with, hence this value is normally higher.

     

    Thanks,

    David