DX Application Performance Management

Expand all | Collapse all

JRockit JVM and GC Monitor

  • 1.  JRockit JVM and GC Monitor

    Posted 02-06-2014 01:09 PM

    I have a number of JVMs that are using JRockit as seen here.

    • java version "1.6.0_45" Java(TM)
    • SE Runtime Environment (build 1.6.0_45-b06)
    • Oracle JRockit(R) (build R28.2.7-7-155314-1.6.0_45-20130329-0641-linux-x86_64, compiled mode)

    I'm using version 9.5.0.0. I have no GC Monitor data on them. I see this entry in the logs:

    • [Ljava.lang.Object;@201bc1a0 JVM Not Supported by Garbage Collection Monitor Agent Service

    Can someone tell me where it is documented that GC Monitor is not supported on this JVM? I have the APM Compatibility guide, but it makes no sense. I don't see any references to JREs on the Agent tab, which is where you think it would mention the agents compatibility. Is there any way to get the GC data for JRockit?



  • 2.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 01:23 PM

    If you search the forums, JRockit is not currently supported with GC Monitor.

    You can however get JRockit GC information from JMX under 'oracle.jrockit.management'. The JRockitRuntimeBean gives very little useful information so I would grab it from the other MBean.



  • 3.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 01:59 PM

    Thanks for the info.

    Do you know what I would want in the jmx filter to see that?  Would it be:

    • java.lang:type=GarbageCollector

    or

    • oracle.jrockit.management:type=GarbageCollector

    I want to limit what I'm pulling so I don't what everything.



  • 4.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 02:02 PM

    I would use the primarykeys property to get rid of the '=' signs to make filtering easier.

    Your primarykeys property should be like: Type,Name,type

    I'll update when I get my filter in place.



  • 5.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 02:07 PM

    Currently primarykeys is commented out and I have this in the filter. 

    • introscope.agent.jmx.name.filter=ThreadPoolRuntime:ExecuteThreadIdleCount,ThreadPoolRuntime:ExecuteThreadTotalCount,ThreadPoolRuntime:HoggingThreadCount,ThreadPoolRuntime:PendingUserRequestCount,ThreadPoolRuntime:QueueLength,ThreadPoolRuntime:StandbyThreadCount,ThreadPoolRuntime:Throughput,JDBCDataSourceRuntime*:ActiveConnectionsCurrentCount,JDBCDataSourceRuntime*:ActiveConnectionsHighCount,JDBCDataSourceRuntime*:ConnectionDelayTime,JDBCDataSourceRuntime*:ConnectionsTotalCount,JDBCDataSourceRuntime*:CurrCapacity,JDBCDataSourceRuntime*:CurrCapacityHighCount,JDBCDataSourceRuntime*:FailedReserveRequestCount,JDBCDataSourceRuntime*:FailuresToReconnectCount,JDBCDataSourceRuntime*:HighestNumAvailable,JDBCDataSourceRuntime*:HighestNumUnavailable,JDBCDataSourceRuntime*:LeakedConnectionCount,JDBCDataSourceRuntime*:NumAvailable,JDBCDataSourceRuntime*:NumUnavailable,JDBCDataSourceRuntime*:WaitingForConnectionCurrentCount,JDBCDataSourceRuntime*:WaitingForConnectionFailureTotal,JDBCDataSourceRuntime*:WaitingForConnectionHighCount,JDBCDataSourceRuntime*:WaitingForConnectionSuccessTotal,JDBCDataSourceRuntime*:WaitingForConnectionTotal,JDBCDataSourceRuntime*:WaitSecondsHighCount,JMSDestinationRuntime*:BytesCurrentCount,JMSDestinationRuntime*:BytesHighCount,JMSDestinationRuntime*:BytesPendingCount,JMSDestinationRuntime*:BytesReceivedCount,JMSDestinationRuntime*:ConsumersCurrentCount,JMSDestinationRuntime*:ConsumersHighCount,JMSDestinationRuntime*:ConsumersTotalCount,JMSDestinationRuntime*:MessagesCurrentCount,JMSDestinationRuntime*:MessagesDeletedCurrentCount,JMSDestinationRuntime*:MessagesHighCount,JMSDestinationRuntime*:MessagesPendingCount,JMSDestinationRuntime*:MessagesReceivedCount
       

    I'd rather not alter this greatly at this point as I don't have many testing/restart cycles with the app team.  Would I just need to add something like this to the filter:

    • oracle.jrockit.management:type*GarbageCollector

     



  • 6.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 02:13 PM

    oracle\.jrockit\.management|type\=GarbageCollector*



  • 7.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 02:18 PM

    Thank you!



  • 8.  RE: JRockit JVM and GC Monitor

    Posted 02-06-2014 02:36 PM

    If that doesn't work try

    GarbageCollector:*

    It may take a few goes at this to get the filter right, which is why I always use the primarykeys to make the regex easier to deal with.



  • 9.  RE: JRockit JVM and GC Monitor

    Posted 03-06-2014 09:45 AM

    Hi hdavis,

    I have the same problem on JRockit Enviroment. I tried to confgi JMX filters like you said, but have no sucess.

    Something is wrong, can you please check the variables of my "IntroscopeAgent.profile".

    ------------------------------------------------------------------------------------------------------------------------------------
    # Introscope uses default conversion method for WebLogic 9.x onwards since
    # it does not have universally available primary keys.
    # You must restart the managed application before changes to this property take effect.
    introscope.agent.jmx.name.primarykeys=Type,Name,type
     
    # Controls which JMX data is gathered - a comma-separated
    # list of desired keywords  If the Introscope metric name contains 
    # one of them, the metric will be polled by the Introscope Agent.
    # Leave empty to include all MBean data available in the system.
    # Here are some interesting keywords for WebLogic, gathering session counts,
    # JDBC connection pool, and execute queue data.
    # * and ? wildcard characters are supported and can be escaped with \\.
    # You must restart the managed application before changes to this property take effect.
     
    introscope.agent.jmx.name.filter=ThreadPoolRuntime:ExecuteThreadIdleCount,ThreadPoolRuntime:ExecuteThreadTotalCount,ThreadPoolRuntime:HoggingThreadCount,ThreadPoolRuntime:PendingUserRequestCount,ThreadPoolRuntime:QueueLength,ThreadPoolRuntime:StandbyThreadCount,ThreadPoolRuntime:Throughput,JDBCDataSourceRuntime*:ActiveConnectionsCurrentCount,JDBCDataSourceRuntime*:ActiveConnectionsHighCount,JDBCDataSourceRuntime*:ConnectionDelayTime,JDBCDataSourceRuntime*:ConnectionsTotalCount,JDBCDataSourceRuntime*:CurrCapacity,JDBCDataSourceRuntime*:CurrCapacityHighCount,JDBCDataSourceRuntime*:FailedReserveRequestCount,JDBCDataSourceRuntime*:FailuresToReconnectCount,JDBCDataSourceRuntime*:HighestNumAvailable,JDBCDataSourceRuntime*:HighestNumUnavailable,JDBCDataSourceRuntime*:LeakedConnectionCount,JDBCDataSourceRuntime*:NumAvailable,JDBCDataSourceRuntime*:NumUnavailable,JDBCDataSourceRuntime*:WaitingForConnectionCurrentCount,JDBCDataSourceRuntime*:WaitingForConnectionFailureTotal,JDBCDataSourceRuntime*:WaitingForConnectionHighCount,JDBCDataSourceRuntime*:WaitingForConnectionSuccessTotal,JDBCDataSourceRuntime*:WaitingForConnectionTotal,JDBCDataSourceRuntime*:WaitSecondsHighCount,JMSDestinationRuntime*:BytesCurrentCount,JMSDestinationRuntime*:BytesHighCount,JMSDestinationRuntime*:BytesPendingCount,JMSDestinationRuntime*:BytesReceivedCount,JMSDestinationRuntime*:ConsumersCurrentCount,JMSDestinationRuntime*:ConsumersHighCount,JMSDestinationRuntime*:ConsumersTotalCount,JMSDestinationRuntime*:MessagesCurrentCount,JMSDestinationRuntime*:MessagesDeletedCurrentCount,JMSDestinationRuntime*:MessagesHighCount,JMSDestinationRuntime*:MessagesPendingCount,JMSDestinationRuntime*:MessagesReceivedCount,WorkManagerRuntime*:CompletedRequests,WorkManagerRuntime*:PendingRequests,WorkManagerRuntime*:StuckThreadCount,ExecuteQueueRuntime*:ExecuteThreadCurrentIdleCount,ExecuteQueueRuntime*:ExecuteThreadTotalCount,ExecuteQueueRuntime*:PendingRequestCurrentCount,ExecuteQueueRuntime*:ServicedRequestTotalCount,WebAppComponentRuntime*:OpenSessionsCurrentCount,WebAppComponentRuntime*:OpenSessionsHighCount,WebAppComponentRuntime*:SessionsOpenedTotalCount,WebAppComponentRuntime*:SessionTimeoutSecs:GarbageCollector:oracle\.jrockit\.management|type\=GarbageCollector*
    ------------------------------------------------------------------------------------------------------------------------------------
     
     
    Best Regards,
     
    Taian
     


  • 10.  RE: JRockit JVM and GC Monitor

    Posted 03-06-2014 12:34 PM

    I have found that the JRockitRuntime MBean does not provide a lot of value.

    However, there is another branch that does provide the same metrics that you can see in Mission Control under 'JMX|com.oracle.jrockit.management'.

    I would first remove the JMX filter and restart your agent. Ensure your agent is configured properly and you're seeing JMX metrics. Start to apply back the filter one or two metrics at a time to validate your filter.