Uploaded image for project: 'ZABBIX FEATURE REQUESTS'
  1. ZABBIX FEATURE REQUESTS
  2. ZBXNEXT-3509

Patch to provide Java Gateway support for wildcard JMX discovery

    XMLWordPrintable

    Details

      Description

      Hello,

      We required additional functionality within the the Java Gateway to allow JMX Discovery rules with wildcards which allows limiting of the data returned from the JMX request.

      This allows us to write Discovery rules as follows.
      jmx.discovery["org.mongodb.driver:clusterId=*,host=*,port=*,type=ConnectionPool"]

      With item prototypes
      jmx["{#JMXOBJ}",CheckedOutCount]
      jmx["{#JMXOBJ}",MaxSize]
      jmx["{#JMXOBJ}",Size]
      jmx["{#JMXOBJ}",WaitQueueSize]

      Which provide final host items of
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host04.gst-men,port=27017,type=ConnectionPool",CheckedOutCount]
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host04.gst-men,port=27017,type=ConnectionPool",MaxSize]
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host04.gst-men,port=27017,type=ConnectionPool",Size]
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host04.gst-men,port=27017,type=ConnectionPool",WaitQueueSize]
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host05.gst-men,port=27017,type=ConnectionPool",CheckedOutCount]
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host05.gst-men,port=27017,type=ConnectionPool",MaxSize]
      jmx["org.mongodb.driver:clusterId=580860194994c505434e9ed7,host=host06.gst-men,port=27017,type=ConnectionPool",CheckedOutCount]

      Additionally we have added the support for Java Maps in exposed JMX attributes.

      An example item would be as follows.
      jmx["com.gamesparks.jmx:name=AnalysisService",LogCounts.sendMessage]

      #JMX returned data
      "com.gamesparks.jmx:name=AnalysisService" LogCounts
      10/20/2016 12:51:10 +0000 org.archive.jmx.Client LogCounts:

      {auth=8895, buyInternalVirtualGood=6, verifyMock=10, .ScriptingService.findAndExecuteMessageScript=387, .ScheduledScriptExecutorImpl$1.run=1780, .PortalFormService.processFormRequest=5, verifyWindowsStore=4, .TwitterAuthenticationService.getTwitterProfileFromAuthToken=14, .XBOXLiveAuthenticationService.getProfileFromAuthToken=4, verifyAmazon=2, verifyGooglePlay=2, buyStoreCurrencyPack=2, .ScriptingService.findAndExecuteResponseScript=11197, connect=8811, .GameSparksWebSocketService.onSocketMessage=28711, .BulkJobProcessor.runCloudCode=6, verifySteam=2, .FacebookAuthenticationService.extendAccessToken=28, buyStoreVirtualGood=12, custom=4, batchUpdateQueue=0, sendMessage=1806, .ScriptingService.getFacebookProfileFromAuthToken=34, .ScriptExecutionService.execute=28773, .ScriptingService.getTwitchProfileFromAuthToken=4, .ScriptingService.getKongregateProfileFromAuthToken=6, newUser=25, verifyIos=2}

      We have been running this code on the Java gateway for over a year with no issues. Originally written for zabbix 2.2.9 and now ported to 2.2.15.

      We generated the attached patch file from the source code available http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.15/zabbix-2.2.15.tar.gz/download

      JMXItemChecker.java.orig - The original file.
      JMX.patch - The patch file
      JMXItemChecker.java - The patched version of the file from 2.2.15

      This maybe related to https://support.zabbix.com/browse/ZBXNEXT-1223

      In the future(next few months) we plan to upgrade to Zabbix 3.0LTS.

      Thank you for building the core of our monitoring platform. Keep up the good work!

      Cheers,
      Luke

        Attachments

        1. JMX.patch
          10 kB
        2. JMXItemChecker.java
          11 kB
        3. JMXItemChecker.java.orig
          9 kB

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              lukemorfitt Luke Morfitt
              Votes:
              3 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated: