logstash-integration-logstash 1.0.3-java → 1.1.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/docs/input-logstash.asciidoc +10 -0
- data/lib/logstash/inputs/logstash.rb +5 -1
- data/lib/logstash/outputs/logstash.rb +1 -1
- data/logstash-integration-logstash.gemspec +1 -1
- data/spec/fixtures/certs/generated/client_from_root.jks +0 -0
- data/spec/fixtures/certs/generated/client_from_root.key.pem +50 -50
- data/spec/fixtures/certs/generated/client_from_root.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/client_from_root.p12 +0 -0
- data/spec/fixtures/certs/generated/client_from_root.pem +28 -28
- data/spec/fixtures/certs/generated/client_from_untrusted.jks +0 -0
- data/spec/fixtures/certs/generated/client_from_untrusted.key.pem +50 -50
- data/spec/fixtures/certs/generated/client_from_untrusted.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/client_from_untrusted.p12 +0 -0
- data/spec/fixtures/certs/generated/client_from_untrusted.pem +28 -28
- data/spec/fixtures/certs/generated/client_self_signed.jks +0 -0
- data/spec/fixtures/certs/generated/client_self_signed.key.pem +50 -50
- data/spec/fixtures/certs/generated/client_self_signed.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/client_self_signed.p12 +0 -0
- data/spec/fixtures/certs/generated/client_self_signed.pem +28 -28
- data/spec/fixtures/certs/generated/root.key.pem +50 -50
- data/spec/fixtures/certs/generated/root.pem +28 -28
- data/spec/fixtures/certs/generated/server_from_root-key-pkcs8.pem +50 -50
- data/spec/fixtures/certs/generated/server_from_root.jks +0 -0
- data/spec/fixtures/certs/generated/server_from_root.key.pem +50 -50
- data/spec/fixtures/certs/generated/server_from_root.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/server_from_root.p12 +0 -0
- data/spec/fixtures/certs/generated/server_from_root.pem +29 -29
- data/spec/fixtures/certs/generated/untrusted.key.pem +50 -50
- data/spec/fixtures/certs/generated/untrusted.pem +28 -28
- data/spec/unit/logstash_input_spec.rb +29 -1
- data/spec/unit/logstash_output_spec.rb +37 -2
- metadata +15 -18
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
|
2
|
-
|
|
2
|
+
MIIFlTCCA32gAwIBAgIUKrpIoReK5N2zR8+1J1OYTemSHG4wDQYJKoZIhvcNAQEL
|
|
3
3
|
BQAwUjELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEOMAwGA1UEAwwFb3RoZXIwHhcNMjYxMDI5
|
|
5
|
+
MDgxMTI5WhcNMzExMDI5MDgxMTI5WjBSMQswCQYDVQQGEwJMUzELMAkGA1UECAwC
|
|
6
6
|
TkExEzARBgNVBAcMCkh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0YXNoMQ4wDAYD
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
7
|
+
VQQDDAVvdGhlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKOePrpU
|
|
8
|
+
h7eSky2Rq+4YsLy0JcZj6OIs9uyEo3g8NjKFAqB/HbyzJyGfHPSM3YQdLUj6XXr2
|
|
9
|
+
HTzTJ2K0Mi1Cpe3MNxj4Jindy+c7NpBPZdpLmP1k/nibJb/SxCfyURRB/Cgh1AT9
|
|
10
|
+
8cCPdyn/y3L/UHSu1P1N/mg78/XQXY2qi39Q0z121rwmJBy+6fagF6SntAZhh3Xl
|
|
11
|
+
F4CDchIQ0NkVCWhnaTX3az9zJoB98R5y6jHRh3IxYpGbVQwfhpQmdJJDCQMvCF1b
|
|
12
|
+
11rqGRkBokw0//FENnZBOg2rI27UT7rdswsoED/gZkdd6rHoXRcdPV8+CRy3Kco1
|
|
13
|
+
1SH48B/hhss9k2nIHjjTsmfveF1qIhnO8/kBfD3XaMPwomco0dCN/FerChreIdRk
|
|
14
|
+
Lz6/mF4s98puBWXu1hbLjZBB4lVSJTZv/vzh+2DjrEqJwRfv/hbXe6dxzYC5ydb+
|
|
15
|
+
E7YW8cTnEnsj38FkOa4MF5ZO7/ajBWRCViZVMefDi5TsDQXeyWaRzaVIR6KwLOVT
|
|
16
|
+
KiUeToGVUxnFe0WkPpAkFGJDkg0ZYtcd434sey+tCYYyXFRPJDjFLmBuW4vVmJT0
|
|
17
|
+
DeO21GtPBnu4tcFnBydyCJsBaXkwwCoktq8v3RqPLw0nI4gRRNXYlGBvG6gEAx/k
|
|
18
|
+
J5UlApha1Rsqq7Nxz/zpKe+AovItdfwzUHO5AgMBAAGjYzBhMB0GA1UdDgQWBBRM
|
|
19
|
+
7XH2ag7bTtnSZp9Wbjz6E2D9ajAfBgNVHSMEGDAWgBRM7XH2ag7bTtnSZp9Wbjz6
|
|
20
|
+
E2D9ajAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0B
|
|
21
|
+
AQsFAAOCAgEAjUWlk1paU1D71cnPwwrnIUjxbIRDGlSRbUAhYL22CnYsZUpeel9o
|
|
22
|
+
/YwgWJi8Nur0haNBvch/TRO7oAoTpQeuSCTf3pdrNlLSXduqcCEoya9/JIkRyN2Z
|
|
23
|
+
htqTz3EqelguhADlZnUJUHNEjNykg19XQNhWDiMBZQx8d63jcrqC3eIFHuDK6ffE
|
|
24
|
+
pmg3PQb3b3q/4MyBky4i2/4oDUixU9Mdj7faWvgSv/BwbBhSx8mBt0q53LFXBbbo
|
|
25
|
+
JNg31/VNnRtw9RCxnVw4kFV1qp5gU7aHs7uejI55tU8EL0TapZ8Xu+SbIx/u3hD/
|
|
26
|
+
nfjT/PduHwmBFHNPkAH3R4Qh7EDanvDZr4JualUVrRUeSO4F9lA1H7UKa6rAI+Lt
|
|
27
|
+
McMd0LDvs72LxJx0SslpYYujE1i95YM0zIswU8y286FzDZzeazyoIqWIyY3NBB8h
|
|
28
|
+
6KYjdGvsGqFX/l6JebZA1aN0gYDLSAA6VHQZnmWF9AImDxnBi+EBL1v2Ut3RzRJS
|
|
29
|
+
Oge7zK1m3nuelkjl3yq/8b6MTjAzOEzfloJxEoTHVl5Ak96HW9ndulFD1aWbQZZs
|
|
30
|
+
sd/zlzMVTvxhYbI3yBRQV57ke8oTsSFCAfIYN7yv5vk5LPec/t6hdxjKFmIDbFY4
|
|
31
|
+
6QmD2q6mq2G1h+B7OhgQdinTkx+eU9s6K6aV45B3EtFc0jcKzudXv5M=
|
|
32
32
|
-----END CERTIFICATE-----
|
|
@@ -28,7 +28,14 @@ describe LogStash::Inputs::Logstash do
|
|
|
28
28
|
describe "plugin register" do
|
|
29
29
|
let(:config) {{ }}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
# Register without letting the inner HTTP input bind a real socket, so these
|
|
32
|
+
# config-reflection unit tests don't depend on port/address availability.
|
|
33
|
+
let(:registered_plugin) do
|
|
34
|
+
plugin.tap do |p|
|
|
35
|
+
allow(p.instance_variable_get(:@internal_http)).to receive(:register)
|
|
36
|
+
p.register
|
|
37
|
+
end
|
|
38
|
+
end
|
|
32
39
|
context "configuring port" do
|
|
33
40
|
let(:config) { { "ssl_enabled" => false } } # minimum config
|
|
34
41
|
context "default value" do
|
|
@@ -44,6 +51,27 @@ describe LogStash::Inputs::Logstash do
|
|
|
44
51
|
end
|
|
45
52
|
end
|
|
46
53
|
|
|
54
|
+
context "configuring decode_size_limit_bytes" do
|
|
55
|
+
let(:config) { { "ssl_enabled" => false } } # minimum config
|
|
56
|
+
|
|
57
|
+
context "default value" do
|
|
58
|
+
it "is not passed, so the inner codec's default applies" do
|
|
59
|
+
expect(registered_plugin.inner_json_lines_codec_options.keys).not_to include('decode_size_limit_bytes')
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
context "explicitly configured" do
|
|
64
|
+
let(:config) { super().merge("decode_size_limit_bytes" => 512) }
|
|
65
|
+
|
|
66
|
+
it "is passed to the inner codec" do
|
|
67
|
+
expect(registered_plugin.inner_json_lines_codec_options).to include("decode_size_limit_bytes" => 512)
|
|
68
|
+
|
|
69
|
+
inner_http = registered_plugin.instance_variable_get(:@internal_http)
|
|
70
|
+
expect(inner_http.codec).to have_attributes(:decode_size_limit_bytes => 512)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
47
75
|
context "configuring host" do
|
|
48
76
|
let(:config) { { "ssl_enabled" => false } } # minimum config
|
|
49
77
|
context "default value" do
|
|
@@ -202,11 +202,46 @@ describe LogStash::Outputs::Logstash do
|
|
|
202
202
|
end
|
|
203
203
|
end
|
|
204
204
|
|
|
205
|
+
describe "#send_events" do
|
|
206
|
+
let(:events) {
|
|
207
|
+
[
|
|
208
|
+
{"message" => "one"},
|
|
209
|
+
{"message" => "two"},
|
|
210
|
+
{"message" => "three"}
|
|
211
|
+
].map{|eh| LogStash::Event.new(eh)}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
before(:each) do
|
|
215
|
+
allow(registered_plugin).to receive(:transmit).and_return(:done)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
it 'invokes #transmit with newline-delimited JSON body' do
|
|
219
|
+
registered_plugin.send(:send_events, events)
|
|
220
|
+
|
|
221
|
+
expect(registered_plugin).to have_received(:transmit) do |body, gzipped_body|
|
|
222
|
+
expect(body).to be_a_kind_of(String)
|
|
223
|
+
expect(gzipped_body).to be_a_kind_of(String)
|
|
224
|
+
.and(have_attributes(:encoding => Encoding::BINARY))
|
|
225
|
+
.and(start_with("\x1F\x8B".b))
|
|
226
|
+
.and(be_gzip_encoded_form_of(body))
|
|
227
|
+
|
|
228
|
+
expect(body.split(/(?<=\n)/)).to have(3).items.and(all(start_with("{").and(end_with("}\n"))))
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
RSpec::Matchers.define :be_gzip_encoded_form_of do |expected|
|
|
233
|
+
match do |actual|
|
|
234
|
+
decoded_actual = Zlib::GzipReader.new(StringIO.new(actual)).read
|
|
235
|
+
decoded_actual == expected
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
|
|
205
240
|
describe "#transmit" do
|
|
206
241
|
let(:normalized_host_uri) { "https://127.0.0.1:9800" }
|
|
207
242
|
|
|
208
|
-
let(:encoded_body) { "
|
|
209
|
-
let(:compressed_body) { "\x1F\
|
|
243
|
+
let(:encoded_body) { %w({"this":1}\n{"that":2}\n) }
|
|
244
|
+
let(:compressed_body) { "\x1F\x8B\b\x00\xC0\xECQg\x00\xFF\x8BV\xAA\x8EQ*\xC9\xC8,\x8EQ\xB22\xAC\x8D\x89\xC9\x03s\x13K\x80\\#\x10W)\x16\x00\x00g\xDEy\"\x00\x00\x00".b }
|
|
210
245
|
|
|
211
246
|
subject(:transmit_result) { registered_plugin.send(:transmit, encoded_body, compressed_body) }
|
|
212
247
|
|
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-integration-logstash
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Elastic
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-10-29 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: logstash-core-plugin-api
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
@@ -19,7 +19,6 @@ dependencies:
|
|
|
19
19
|
- - "<="
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
21
|
version: '2.99'
|
|
22
|
-
name: logstash-core-plugin-api
|
|
23
22
|
type: :runtime
|
|
24
23
|
prerelease: false
|
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -31,12 +30,12 @@ dependencies:
|
|
|
31
30
|
- !ruby/object:Gem::Version
|
|
32
31
|
version: '2.99'
|
|
33
32
|
- !ruby/object:Gem::Dependency
|
|
33
|
+
name: logstash-mixin-plugin_factory_support
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
35
35
|
requirements:
|
|
36
36
|
- - "~>"
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
38
|
version: '1.0'
|
|
39
|
-
name: logstash-mixin-plugin_factory_support
|
|
40
39
|
type: :runtime
|
|
41
40
|
prerelease: false
|
|
42
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -45,12 +44,12 @@ dependencies:
|
|
|
45
44
|
- !ruby/object:Gem::Version
|
|
46
45
|
version: '1.0'
|
|
47
46
|
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: logstash-mixin-validator_support
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
50
|
- - "~>"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
52
|
version: '1.1'
|
|
53
|
-
name: logstash-mixin-validator_support
|
|
54
53
|
type: :runtime
|
|
55
54
|
prerelease: false
|
|
56
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -59,26 +58,26 @@ dependencies:
|
|
|
59
58
|
- !ruby/object:Gem::Version
|
|
60
59
|
version: '1.1'
|
|
61
60
|
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: logstash-codec-json_lines
|
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
|
63
63
|
requirements:
|
|
64
64
|
- - "~>"
|
|
65
65
|
- !ruby/object:Gem::Version
|
|
66
|
-
version: '3.
|
|
67
|
-
name: logstash-codec-json_lines
|
|
66
|
+
version: '3.2'
|
|
68
67
|
type: :runtime
|
|
69
68
|
prerelease: false
|
|
70
69
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
70
|
requirements:
|
|
72
71
|
- - "~>"
|
|
73
72
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '3.
|
|
73
|
+
version: '3.2'
|
|
75
74
|
- !ruby/object:Gem::Dependency
|
|
75
|
+
name: logstash-mixin-http_client
|
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
|
77
77
|
requirements:
|
|
78
78
|
- - "~>"
|
|
79
79
|
- !ruby/object:Gem::Version
|
|
80
80
|
version: '7.3'
|
|
81
|
-
name: logstash-mixin-http_client
|
|
82
81
|
type: :runtime
|
|
83
82
|
prerelease: false
|
|
84
83
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -87,12 +86,12 @@ dependencies:
|
|
|
87
86
|
- !ruby/object:Gem::Version
|
|
88
87
|
version: '7.3'
|
|
89
88
|
- !ruby/object:Gem::Dependency
|
|
89
|
+
name: logstash-input-http
|
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
|
91
91
|
requirements:
|
|
92
92
|
- - ">="
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
94
|
version: 3.7.0
|
|
95
|
-
name: logstash-input-http
|
|
96
95
|
type: :runtime
|
|
97
96
|
prerelease: false
|
|
98
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -101,12 +100,12 @@ dependencies:
|
|
|
101
100
|
- !ruby/object:Gem::Version
|
|
102
101
|
version: 3.7.0
|
|
103
102
|
- !ruby/object:Gem::Dependency
|
|
103
|
+
name: stud
|
|
104
104
|
requirement: !ruby/object:Gem::Requirement
|
|
105
105
|
requirements:
|
|
106
106
|
- - ">="
|
|
107
107
|
- !ruby/object:Gem::Version
|
|
108
108
|
version: '0'
|
|
109
|
-
name: stud
|
|
110
109
|
type: :runtime
|
|
111
110
|
prerelease: false
|
|
112
111
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -115,12 +114,12 @@ dependencies:
|
|
|
115
114
|
- !ruby/object:Gem::Version
|
|
116
115
|
version: '0'
|
|
117
116
|
- !ruby/object:Gem::Dependency
|
|
117
|
+
name: logstash-devutils
|
|
118
118
|
requirement: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - ">="
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
122
|
version: '0'
|
|
123
|
-
name: logstash-devutils
|
|
124
123
|
type: :development
|
|
125
124
|
prerelease: false
|
|
126
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -129,12 +128,12 @@ dependencies:
|
|
|
129
128
|
- !ruby/object:Gem::Version
|
|
130
129
|
version: '0'
|
|
131
130
|
- !ruby/object:Gem::Dependency
|
|
131
|
+
name: rspec-collection_matchers
|
|
132
132
|
requirement: !ruby/object:Gem::Requirement
|
|
133
133
|
requirements:
|
|
134
134
|
- - ">="
|
|
135
135
|
- !ruby/object:Gem::Version
|
|
136
136
|
version: '0'
|
|
137
|
-
name: rspec-collection_matchers
|
|
138
137
|
type: :development
|
|
139
138
|
prerelease: false
|
|
140
139
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -143,12 +142,12 @@ dependencies:
|
|
|
143
142
|
- !ruby/object:Gem::Version
|
|
144
143
|
version: '0'
|
|
145
144
|
- !ruby/object:Gem::Dependency
|
|
145
|
+
name: random-port
|
|
146
146
|
requirement: !ruby/object:Gem::Requirement
|
|
147
147
|
requirements:
|
|
148
148
|
- - ">="
|
|
149
149
|
- !ruby/object:Gem::Version
|
|
150
150
|
version: '0'
|
|
151
|
-
name: random-port
|
|
152
151
|
type: :development
|
|
153
152
|
prerelease: false
|
|
154
153
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -217,7 +216,6 @@ metadata:
|
|
|
217
216
|
logstash_plugin: 'true'
|
|
218
217
|
logstash_group: integration
|
|
219
218
|
integration_plugins: logstash-input-logstash,logstash-output-logstash
|
|
220
|
-
post_install_message:
|
|
221
219
|
rdoc_options: []
|
|
222
220
|
require_paths:
|
|
223
221
|
- lib
|
|
@@ -233,8 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
233
231
|
- !ruby/object:Gem::Version
|
|
234
232
|
version: '0'
|
|
235
233
|
requirements: []
|
|
236
|
-
rubygems_version: 3.3
|
|
237
|
-
signing_key:
|
|
234
|
+
rubygems_version: 3.6.3
|
|
238
235
|
specification_version: 4
|
|
239
236
|
summary: Collection of Logstash plugins that enable sending events from one Logstash
|
|
240
237
|
pipeline to another
|