* Don't use regex to find the contents between `%{}`, it's way too inefficient for a simple case like this with all its allocations
* Flatten logic out of the many helper classes
* Use a reusable, thread-local `StringBuilder` to serialize into
* Don't use `.substring` for comparisons
* `static` `ObjectMapper`
* `org.joda.time.format.DateTimeFormat#forPattern` not being cached is not an issue, since it's cached in `org.joda.time.format.DateTimeFormat#cPatternCache`
* Added benchmark
* ~15% faster for a few cases I ran, even for repeated patterns with interpolation + couldn't find any case even with date formatting, where this implementation is slower than the cached one
* no leaking on dynamic patterns
Fixes#7692
Fixes 2 seekByTimestamp failure scenarios that occur when a segment is closed with entries smaller than BLOCK_SIZE
If the next segment is > BLOCK_SIZE, then the seek will advance to the next segment. (Skipping past all events
in the closed segment)
If the next segment < BLOCK_SIZE, then the seek will advance to the start of the small segment. (Processing
entries prior to the timestamp)
Fixes#7789
The hot threads endpoint used to require thread names to be unique in a map and would crash otherwise. This patch fixes this by internally using a List instead of a Map to store these thread ids.
Additionally, this patch adds the `thread_id` to the response to allow for disambiguation of of threads for any client applications.
Fixes https://github.com/elastic/logstash/issues/7608Fixes#7617
The test that calls out to /proc/loadavg has been intermittently
failing, because /proc/loadavg is being read from more than once
This should be benign, so this commit allows it to happen
Fixes#6867Fixes#7757
This change moves the definition of the counters and gauges from Ruby to Java, providing a Ruby bridge that allows support for Ruby duck typing to Java strict typing.
This change also moves the serialzation from JRuby (Jackson) to Java (Jackson).
This change also removes the decrement from counter api and requires counters start at zero. This helps to allowing for reliable aggregrations over time.
This change removes the base Ruby class for metrics, and replaces with base Java class.
This change removes the to_hash method (no known usages).
This change also has minor changes to the Ruby type() and inspect() methods.
Fixes#7509Fixes#7595
This change to ensure that Java and JRuby agree upon the version of Jackson. This downgrades Java from 2.7.4 to 2.7.3 (which is the JRuby version).
Fixes: #6781Fixes#7614
* Add support for using kibana dashboard import api
- Add support for versioned folders below 'module'/configuration/kibana
- Rename cef to module_test_files/tester and simplify it.
- Remove skips on tests using above modules test files.
- In pipeline.rb, moved method default_logging_keys to the base class,
it was being called from BasePipeline during a config-test.
- In modules_common, added a backtrace to LogStash::ConfigLoadingError
for better debugging
- Improve layout when user_lines et al were empty in logstash_config
* Change specificity of maj/min/patch folder search
* Use logger to surface manticore error
* Add suppor for Kibana auth
* improve error message
* support es and kibana authentication in the logstash modules