Allow TabularData objects to be traversed in a manner similar to CompositeData objects.
Attached is a version of the JMXItemChecker.java - modified from version 2.4.4 of the Zabbix Java Gateway version - which does this.
As it traverses the structure returned from a JMX call, if it encounters a TabularData object it will search all the keys within that using the specified field name as the indexes. The keys are matched using their toString() values, allowing indexes that are not strings to match the provided attribute string. This field name can include one or more commas to allow a multi-value index to be used.
- Attributes: SomeData.Index1,Index2.SomeValue.SomeOtherValue
- Zabbix key from real usage: jmx["com.xyz.abc:type=GroupExecutorService","ExecutorsDetails.CoreQuotesProcessing.ExecutorDetails.1.CompletedTasksCount"]
- This one as two nested TabularData objects, indexed by "CoreQuotesProcessing" and "1"
This is being used in production at my firm right now.
If accepted into Zabbix proper please credit "Douglas P. Fields, Jr." where appropriate. Thanks!