New input plugin: logstash-input-jmx-pipe
- Dominant language
- Java
- Stars
- 14.9k
- Forks
- 3.5k
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 88
Description
I (or rather "we") have written a JMX input plugin from scratch. It differs in design from the existing logstash-input-jmx greatly, and I believe it to be superior. I would like you to consider its inclusion in the logstash-plugins repository. It seems to work as is (we already use it to monitor our production systems) and the biggest issue I see is that it is missing most essential unit tests (ie. specs). Only the ones that test configuration validation have been written. I hope to have the tests completed in a few weeks, but the review of the plugin itself could be ongoing in the meantime.
https://github.com/mpolajnar/logstash-input-jmx-pipe
As mentioned in its documentation, the key differences in comparison to logstash-input-jmx are:
* It supports MBean notification subscription. We currently use it to monitor garbage collection events, which is crucial to maintain stability of the JVMs, and plan to use it for many other purposes.
* Our plugin has no outside configuration; all configuration is done within the logstash.conf file.
* It spawns no additional threads it would have to manage. Instead, user is required to configure multiple instances of the plugin to monitor multiple JMX endpoints (or even if she wishes to distribute the load to multiple threads.)
* It allows (and indeed requires) original MBean attribute names to be specified, not the snake_cased_ones.
* It allows multiple MBeans to be queried to produce one logstash event, or, alternatively, querying multiple MBeans using wildcards and producing multiple events at each iteration.
* It allows logging values from the MBean object name key-value property pairs.
* It should be more performant due to the use of getAttributes to obtain the values of all the observed attributes of the MBean at once instead of using the getAttribute in a loop, which is what logstash-input-jmx does.
Contributor guide
Research direction
Start with the linked logstash-input-jmx-pipe repository and its documentation, then compare its design with the existing logstash-input-jmx plugin. Review the configuration-validation specs and identify the missing essential unit tests. Done means the plugin has been reviewed for inclusion and its remaining test coverage is addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100