Commit graph

8588 commits

Author SHA1 Message Date
Pier-Hugues Pellerin
60b4e81812 Remove deprecate call to jruby 1.9
With the move to JRuby9k which use the 2.3 syntax, this make the
 following constant deprecated

 ```
 config_19.setCompatVersion(CompatVersion.RUBY1_9);
 ```

Fixes #7446
2017-06-14 13:36:08 +00:00
Pier-Hugues Pellerin
27755dcc24 remove unused logstash/program file
The logstash/program doesn't seems to be used anymore, no logic or test require it

Fixes #7445
2017-06-14 12:55:00 +00:00
Christoph Wurm
385dda00b3 Properly catch connection refused error when installing plugin.
Fixes #7447
2017-06-14 12:52:06 +00:00
Pier-Hugues Pellerin
0332ee5087 update the set strategy
Make sure when you set a logstash version that we are not wiping
the content of the versions file but instead merge it so we preserve
jruby information.

Fixes #7434
2017-06-13 15:44:32 +00:00
Pier-Hugues Pellerin
6a4766a01f Centralize the JRuby version
We have multiple places to declare the jruby version, this commit
centralize everything into the `version.yml` file. This is now used by
the ruby part and the gradle build file to correctly fetch the jruby
library.

Fixes #7434
2017-06-13 15:44:31 +00:00
Armin
2ab35b61ea #7399 stress test full queue situation
Fixes #7405
2017-06-13 14:27:36 +00:00
Andrew Cholakian
f5c6c5a4b1 Use file hashing where possible in LIR
This commit further improves hashing performance, using SourceWithMetadata
objects where present to determine Vertex IDs and the hash of the source
file. If those objects are not present LIR will revert to graph hashing,
which is slower, but always works. This is still useful for things like
testing, so it makes sense to leave that code in.

In the future it might be nice to extract the hashing code using the
strategy pattern to clean things up.

This commit also improves the Hashable interface, moving hashSource into
its own interface, letting classes that do their own hashing simply
implement uniqueHash instead of requiring them to also implement
hashSource.

A requirement of these changes was also that SourceWithMetadata no
longer accept null or empty arguments. This patch now enforces that
requirement. This also is nicer from an API standpoint, as you now know
that if a SourceWithMetadata object exists, it will actually have all
its fields in use.

Fixes #7408
2017-06-13 14:09:17 +00:00
Andrew Cholakian
dc52add283 Optimize LIR pipeline hashing
Fixes #7379

Prior to this patch large configuration files would take a long time to
load. This patch improves the graph hashing algorithm in the following
ways:

1. Caches expensive to compute paths
2. Use parallel computation where possible to speed calculations
3. Removes unnecessary validation on Graph#chainVertices
4. Validates the entire graph in PipelineIR which allows the cache to be
used for both validation and hashing
5. Validation now only checks for duplicate IDs, not duplicate hashes.
If the user supplies their own IDs this check will be sped up.
6. Hashing only consists of calculating the unique hash for the leaf
nodes. Since hashing is sensitive to the full ancestry of a given node
this is sufficient vs. previously where each vertex's hash was
combined. We will still calculate the hash for each vertex if no ID is
specified however.

Fixes #7408
2017-06-13 14:09:16 +00:00
Pier-Hugues Pellerin
eaf52ff7c9 The Task.leftShift(Closure) method has been deprecated
This the `<<` closure is now deprecated, this commit change it to the
`doLast(action)`, this will remove the warning in our build

Fixes #7424
2017-06-13 12:49:13 +00:00
Pier-Hugues Pellerin
a01842cd33 Update our JRuby Wrapper
`RubyHash#visitAll` and `RubyArray#getList` are now deprecated.

- RubyArray now implements List, so we don't need to convert it.
- We need to be a bit more explicit with the visitAll and pass the ruby
context.

Fixes: #7427

Fixes #7425
2017-06-13 12:44:01 +00:00
Pier-Hugues Pellerin
d87071edc9 update the .travis with the new bundler
Fixes #7425
2017-06-13 12:44:01 +00:00
Pier-Hugues Pellerin
6e6589e773 Use uniform version withing our gradle dependencies
Make sure we use the same provided and runtime JRuby with our gradle
projects

Fixes: #7421

Fixes #7425
2017-06-13 12:44:01 +00:00
Pier-Hugues Pellerin
7dcf9ad763 Update to JRuby 9.1.10.0
Update from 9.1.9.0 to 9.1.10.0

Fixes #7425
2017-06-13 12:44:00 +00:00
Armin
26a8163f19 #6696 validate evaluation result
Fixes #7411
2017-06-13 07:57:12 +00:00
Pier-Hugues Pellerin
32709ae72e Readme missing update for JRuby 9k
Update the README and replace any mention of JRuby 1.7.x with 9k

Fixes #7426
2017-06-12 21:48:30 +00:00
Pier-Hugues Pellerin
76286b4f0e use jruby 9.1.9.0
Work done by @guyboertje and @ph

Since JRuby 1.7.25 is now EOL we are migrating Logstash to use JRuby 9k and JDK8 only,
Not much needed updating to make this work, its was mostly a drop in replacement from the previous version.

The major point was the change in the implementation of Time in JRuby, JRuby now use `java.time`
instead of joda time, this allow JRuby to have nanoseconds precision on time object.
2017-06-12 12:35:10 -04:00
Suyog Rao
fae99f1f9f Handle ingest on_failure processor (#7412)
* Handle ingest on_failure processor

Ingest `on_failure` processor allows to define a new sub-piplene when a failure
happens in the current processor. Logstash does not have an on_failure but this can
be emulated using the tag and conditional.

Also added a set processor converter which is typically used in `on_failure`.

* generalize on_failure method

* Add comments

* Fix indentation issue
2017-06-12 08:18:04 -07:00
Armin
9b922e7e9b #7375 plugin install rake task should depend on bootstrap task
Fixes #7415
2017-06-12 11:06:45 +00:00
Armin
941446a6dc PERFORMANCE: Queue RW benchmark for in memory queue
Fixes #7410
2017-06-10 15:05:13 +00:00
Armin
4926f5b6bb PERFORMANCE: Queue RW benchmark baseline
Fixes #7400
2017-06-09 17:22:39 +00:00
Rob Bavey
2d2cee4d2e Add Metrics for dead letter queue
Add an initial set of metrics for the dead letter queue.

Metrics are supplied under the pipeline in the following format:

"dead_letter_queue": {
        "queue_size_in_bytes": ...,
      }

Metrics are populated via a PeriodicPoller

Also fixed up calculation of currentQueueSize to take account
of version headers, which was previously being skipped.

Additionally, whether the dlq is enabled, and if so, the path
of the dlq is supplied under the pipelines API endpoint

Resolves #7287

Fixes #7338
2017-06-09 17:14:18 +00:00
Jake Landis
5b4a725a36 Fix #7277 Review updates
Fixes #7321
2017-06-09 14:56:40 +00:00
Jake Landis
55979c3a07 Bug Fix: Fix ability to change log level via the API
The ability to change the log level as described at https://www.elastic.co/guide/en/logstash/current/logging.html#_logging_apis appears to no longer work. The root cause of this issue is that log4j2 context we initialize is different from the log4j2 context that we are setting via the API. The fix here is to mirror the functionality of org.apache.logging.log4j.core.config.Configurator.setLevel Java method, but instead use the logging_context initialized in our code via JRuby.

Fixes #7277

Fixes #7321
2017-06-09 14:56:40 +00:00
Suyog Rao
254d58d3a4 Reduce log level for modules importer
We load a lot of Kibana files and the log lines are not actionable to the user.
Moving it to debug.

Fixes #7395
2017-06-09 06:24:46 +00:00
Armin
edad14c6d0 MINOR: Removed Redundant Java Wrapper
Fixes #7394
2017-06-09 05:55:20 +00:00
DeDe Morton
7448c92e46 Add changes from the review
Fixes #7354
2017-06-09 00:07:58 +00:00
DeDe Morton
dd8e6b6d41 Update monitoring api docs for multiple pipelines
Fixes #7354
2017-06-09 00:07:58 +00:00
Pier-Hugues Pellerin
42e9c0d758 Extraction of the document from ruby to actual asciidoc file
This PR is based on the proposal from #6846, it does the following

- Change the format of the plugin help page
- Create an external file for each plugin type that will get included by the plugin
- Add a script to generate the PR on each plugin repo with the static doc
- Add a script `ci/ci_docs.sh` that will be used to generate the list of plugins that can be installed in logstash from all the available plugins from the community organization

This PR is the building block for change in https://github.com/elastic/docs-tools/issues/3

Fixes #6941
2017-06-08 20:14:36 +00:00
Armin
87223c6701 #7382 Signal Queue not empty condition on every append as is standard BlockingQueue behaviour
Fixes #7380
2017-06-08 19:25:50 +00:00
Armin
b6e051acbc #7317 Queue RW Benchmark
Fixes #7355
2017-06-08 13:38:41 +00:00
Armin
54fa8d06a0 MINOR: Add log config to benchmarks
Fixes #7359
2017-06-08 04:51:33 +00:00
Armin
4a5156d020 MINOR: Fix static logic not declared static
Fixes #7370
2017-06-07 21:03:09 +00:00
DeDe Morton
8e491652e5 Edit multiple pipelines doc
Fixes #7337
2017-06-07 19:57:12 +00:00
Andrew Cholakian
373958f25c Bump concurrent gem dep to allow for more recent version
The old version (1.0.0) had a broken version of Concurrent::Timer that
did not work on all machines for reasons that are still unclear, but may
be related to the Java version

Fixes #7368
2017-06-07 19:56:54 +00:00
Guy Boertje
2793d780bd MODULES: Fixes for bad module specified and elasticsearch client logging silence (#7367)
* Fixes for bad module specified and elasticsearch client logging silence & iterate over the intersection of specified and available modules
2017-06-07 19:57:56 +01:00
Armin
554b4ad229 MINOR: Remove dead and duplicate code from Event and EventTest
Fixes #7360
2017-06-07 16:06:11 +00:00
Armin
12264efad2 #7329 invoker script for convert jar
Fixes #7335
2017-06-07 07:17:53 +00:00
Armin
40876a4e29 #7178 disable docker legacy registry use on Travis
Fixes #7356
2017-06-07 07:05:27 +00:00
Armin
5a693466e9 Performance: Use Jitted Lock call in wrapped_acked_queue
Fixes #7300
2017-06-07 02:53:59 +00:00
Armin
b5c24ae438 Performance: Use Jitted Lock call
Fixes #7300
2017-06-07 02:53:59 +00:00
Armin
842658f3a6 lock more efficiently
Fixes #7300
2017-06-07 02:53:59 +00:00
Suyog Rao
7733dd0f86 Add DLQ to default plugins (#7342) 2017-06-06 11:52:12 -07:00
Suyog Rao
dcd79d2f57 bump master version to 6.0.0-alpha3 (#7343)
* bump master version to 6.0.0-alpha3
2017-06-06 11:51:02 -07:00
Guy Boertje
06c97acea7 use common 2017-06-06 17:38:16 +01:00
Guy Boertje
96df9a7e71 extract common for cherrypick 2017-06-06 17:38:06 +01:00
Suyog Rao
9d19809436 add release notes for 6.0.0-alpha2 (#7322)
* add release notes for 6.0.0-alpha2

* Call it alpha2 in link

* Re-arrange breaking notes
2017-06-06 08:00:46 -07:00
Wainer dos Santos Moschetta
0020541370 ci: dockerized elastisearch service.
This change makes the elasticsearch service used
in integration tests be installed and started in
a docker container.

Fixes #7097

Fixes #7234
2017-06-06 10:29:19 +00:00
Suyog Rao
647900c6e3 Handle rename ingest processor (#7332)
* Handle rename ingest processor

Fixes #7325
2017-06-06 00:06:49 -07:00
Suyog Rao
119b4f6768 Refactor common code to a util function
Fixes #7331
2017-06-06 06:37:39 +00:00
Suyog Rao
deb2ce9f3f Add ingest append (#7324)
* Add Append processor converto

* Fix bug in convert processor

* Updated comment

* add JSON processor convertor

* use the right name for the variable

* Fix the double space in convert
2017-06-05 22:48:48 -07:00