logstash-input-azure_event_hubs 1.1.3 → 1.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ce1293dd83e610effb52c31c5aed6e6b565de16a373631956777e339f76343c
4
- data.tar.gz: a1456715ca44e1b9eb749d2abc93f392d792f9246538d74fd469ea6821f63c91
3
+ metadata.gz: 504e5a3185917fb8bad235bc1c9198919be6186d2ce5c40b4a26679fb4cd2a6a
4
+ data.tar.gz: 3b50e6b5485c8af058624264881a9c0ba43f916861774582d1e021e98339305d
5
5
  SHA512:
6
- metadata.gz: 9ad2df11598dc8b07fd01ffe414ea67d8a3b779c396077a2c1bb4aa5019065ee589f5f8015a763df8b2813181c4790d3a73410acf080429e4a9351168bb3570d
7
- data.tar.gz: 94598d9b66bd83e232c2b808c2945e0bb234a118cad2ec7d824c6abd44daa1c97a2d740e20ac02eb0fbd97253adf71d9cf94a5a0bc9cbea246a142b53700c62a
6
+ metadata.gz: 7c9307f7a58a4cb971f1a3417740e47aec017de26c4554df0f5ddeb18d1cd44e3f1220f00e2dd3dfb1a228402cf06c810d8840998bdef9f985ac17fa4d69004c
7
+ data.tar.gz: 4bad8dbe16d7169093fd93d644957ce10dfbde9ff3898cb4b408ef82f6befc494a77c9aa7bf9ba53904acb77dbdf80b4d3465288fb9d40653f3a330df107428d
@@ -1,3 +1,18 @@
1
+ ## 1.2.3
2
+ - Fixed missing configuration of `prefetch_count` and `receive_timeout` [#61](https://github.com/logstash-plugins/logstash-input-azure_event_hubs/pull/61)
3
+
4
+ ## 1.2.2
5
+ - Refactor: scope and review global java_imports [#57](https://github.com/logstash-plugins/logstash-input-azure_event_hubs/pull/57)
6
+
7
+ ## 1.2.1
8
+ - [DOC] Changed documentation to update the default number of threads [#55](https://github.com/logstash-plugins/logstash-input-azure_event_hubs/pull/55)
9
+
10
+ ## 1.2.0
11
+ - Changed the default number of threads from `4` to `16` to match the default number from the Azure-Sdk EventProcessorHost [#54](https://github.com/logstash-plugins/logstash-input-azure_event_hubs/pull/54)
12
+
13
+ ## 1.1.4
14
+ - Fixed missing configuration of the `max_batch_size`setting [#52](https://github.com/logstash-plugins/logstash-input-azure_event_hubs/pull/52)
15
+
1
16
  ## 1.1.3
2
17
  - [DOC] Added clarification for threads parameter [#50](https://github.com/logstash-plugins/logstash-input-azure_event_hubs/pull/50)
3
18
 
@@ -25,6 +40,6 @@
25
40
  ## 1.0.1
26
41
  - Fixed logging for exception handler
27
42
 
28
- ## 1.0.0
43
+ ## 1.0.0
29
44
  - Initial release of `logstash-input-azure_event_hubs` supersedes `logstash-input-azureeventhub`
30
45
  - Re-implementation that uses Event Processor Host API and new configuration options.
data/LICENSE CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  Apache License
2
3
  Version 2.0, January 2004
3
4
  http://www.apache.org/licenses/
@@ -186,7 +187,7 @@
186
187
  same "printed page" as the copyright notice for easier
187
188
  identification within third-party archives.
188
189
 
189
- Copyright [yyyy] [name of copyright owner]
190
+ Copyright 2020 Elastic and contributors
190
191
 
191
192
  Licensed under the Apache License, Version 2.0 (the "License");
192
193
  you may not use this file except in compliance with the License.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.3
1
+ 1.2.3
@@ -8,18 +8,18 @@ require "logstash/inputs/error_notification_handler"
8
8
  require "logstash/inputs/named_thread_factory"
9
9
  require "logstash/inputs/look_back_position_provider"
10
10
 
11
+ class LogStash::Inputs::AzureEventHubs < LogStash::Inputs::Base
11
12
 
12
- java_import com.microsoft.azure.eventprocessorhost.EventProcessorHost
13
- java_import com.microsoft.azure.eventprocessorhost.EventProcessorOptions
14
- java_import com.microsoft.azure.eventprocessorhost.InMemoryCheckpointManager
15
- java_import com.microsoft.azure.eventprocessorhost.InMemoryLeaseManager
16
- java_import com.microsoft.azure.eventprocessorhost.HostContext
17
- java_import com.microsoft.azure.eventhubs.ConnectionStringBuilder
18
- java_import java.util.concurrent.Executors
19
- java_import java.util.concurrent.TimeUnit
20
-
13
+ java_import com.microsoft.azure.eventprocessorhost.EventProcessorHost
14
+ java_import com.microsoft.azure.eventprocessorhost.EventProcessorOptions
15
+ java_import com.microsoft.azure.eventprocessorhost.InMemoryCheckpointManager
16
+ java_import com.microsoft.azure.eventprocessorhost.InMemoryLeaseManager
17
+ java_import com.microsoft.azure.eventprocessorhost.HostContext
18
+ java_import com.microsoft.azure.eventhubs.ConnectionStringBuilder
19
+ java_import java.util.concurrent.Executors
20
+ java_import java.util.concurrent.TimeUnit
21
+ java_import java.time.Duration
21
22
 
22
- class LogStash::Inputs::AzureEventHubs < LogStash::Inputs::Base
23
23
  config_name "azure_event_hubs"
24
24
 
25
25
  # This plugin supports two styles of configuration
@@ -111,9 +111,9 @@ class LogStash::Inputs::AzureEventHubs < LogStash::Inputs::Base
111
111
 
112
112
  # Total threads used process events. Requires at minimum 2 threads. This option can not be set per Event Hub.
113
113
  # azure_event_hubs {
114
- # threads => 4
114
+ # threads => 16
115
115
  # }
116
- config :threads, :validate => :number, :default => 4
116
+ config :threads, :validate => :number, :default => 16
117
117
 
118
118
  # Consumer group used to read the Event Hub(s). It is recommended to change from the $Default to a consumer group specifically for Logstash, and ensure that all instances of Logstash use that consumer group.
119
119
  # basic Example:
@@ -291,7 +291,7 @@ class LogStash::Inputs::AzureEventHubs < LogStash::Inputs::Base
291
291
  # }
292
292
  config :decorate_events, :validate => :boolean, :default => false
293
293
 
294
- attr_reader :count, :pre_count
294
+ attr_reader :count
295
295
 
296
296
  def initialize(params)
297
297
 
@@ -409,6 +409,10 @@ class LogStash::Inputs::AzureEventHubs < LogStash::Inputs::Base
409
409
  checkpoint_manager.java_send :initialize, [HostContext], event_processor_host.getHostContext
410
410
  end
411
411
  options = EventProcessorOptions.new
412
+ options.setMaxBatchSize(max_batch_size)
413
+ options.setPrefetchCount(prefetch_count)
414
+ options.setReceiveTimeOut(Duration.ofSeconds(receive_timeout))
415
+
412
416
  options.setExceptionNotification(LogStash::Inputs::Azure::ErrorNotificationHandler.new)
413
417
  case @initial_position
414
418
  when 'beginning'
@@ -475,5 +479,3 @@ class LogStash::Inputs::AzureEventHubs < LogStash::Inputs::Base
475
479
  end
476
480
  end
477
481
  end
478
-
479
-
@@ -1,12 +1,11 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/util/loggable"
3
- java_import java.util.function.Consumer
4
3
 
5
4
  module LogStash
6
5
  module Inputs
7
6
  module Azure
8
7
  class ErrorNotificationHandler
9
- include Consumer
8
+ include java.util.function.Consumer
10
9
  include LogStash::Util::Loggable
11
10
 
12
11
  def initialize
@@ -14,9 +13,9 @@ module LogStash
14
13
  end
15
14
 
16
15
  def accept(exception_received_event_args)
17
- @logger.error("Error with Event Processor Host. ",
16
+ @logger.error("Error with Event Processor Host. ",
18
17
  :host_name => exception_received_event_args.getHostname(),
19
- :action => exception_received_event_args.getAction(),
18
+ :action => exception_received_event_args.getAction(),
20
19
  :exception => exception_received_event_args.getException().toString())
21
20
  end
22
21
  end
@@ -1,14 +1,15 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/util/loggable"
3
- java_import java.util.function.Function
4
- java_import com.microsoft.azure.eventhubs.EventPosition
5
- java_import java.time.Instant
6
3
 
7
4
  module LogStash
8
5
  module Inputs
9
6
  module Azure
10
7
  class LookBackPositionProvider
11
- include Function
8
+
9
+ java_import com.microsoft.azure.eventhubs.EventPosition
10
+ java_import java.time.Instant
11
+
12
+ include java.util.function.Function
12
13
  include LogStash::Util::Loggable
13
14
 
14
15
  def initialize(look_back_seconds)
@@ -26,7 +26,7 @@ module LogStash
26
26
  end
27
27
 
28
28
  def onEvents(context, batch)
29
- @logger.debug("Event Hub: #{context.getEventHubPath.to_s}, Partition: #{context.getPartitionId.to_s} is processing a batch.") if @logger.debug?
29
+ @logger.debug("Event Hub: #{context.getEventHubPath.to_s}, Partition: #{context.getPartitionId.to_s} is processing a batch of size #{batch.size}.") if @logger.debug?
30
30
  last_payload = nil
31
31
  batch_size = 0
32
32
  batch.each do |payload|
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/inputs/processor"
3
+
3
4
  module LogStash
4
5
  module Inputs
5
6
  module Azure
@@ -22,6 +23,3 @@ module LogStash
22
23
  end
23
24
  end
24
25
  end
25
-
26
-
27
-
@@ -24,5 +24,5 @@ Gem::Specification.new do |s|
24
24
  s.add_runtime_dependency 'logstash-codec-plain'
25
25
  s.add_runtime_dependency 'logstash-codec-json'
26
26
  s.add_runtime_dependency 'stud', '>= 0.0.22'
27
- s.add_development_dependency 'logstash-devutils', '>= 0.0.16'
27
+ s.add_development_dependency 'logstash-devutils', '>= 1.0.0'
28
28
  end
@@ -2,16 +2,9 @@
2
2
  require "logstash/devutils/rspec/spec_helper"
3
3
  require "logstash/inputs/azure_event_hubs"
4
4
 
5
-
6
5
  java_import com.microsoft.azure.eventprocessorhost.EventProcessorHost
7
- java_import com.microsoft.azure.eventprocessorhost.EventProcessorOptions
8
6
  java_import com.microsoft.azure.eventprocessorhost.InMemoryCheckpointManager
9
7
  java_import com.microsoft.azure.eventprocessorhost.InMemoryLeaseManager
10
- java_import java.util.concurrent.ScheduledThreadPoolExecutor
11
- java_import java.util.concurrent.CompletableFuture
12
- java_import java.util.concurrent.TimeUnit
13
- java_import java.util.concurrent.atomic.AtomicInteger
14
-
15
8
 
16
9
  describe LogStash::Inputs::AzureEventHubs do
17
10
 
@@ -28,7 +21,7 @@ describe LogStash::Inputs::AzureEventHubs do
28
21
  expect(exploded_config[i]['event_hub_connections'][0].value).to start_with('Endpoint=sb://...')
29
22
  expect(exploded_config[i]['storage_connection'].value).to eql('DefaultEndpointsProtocol=https;AccountName=...')
30
23
  expect(exploded_config[i]['threads']).to be == 9
31
- expect(exploded_config[i]['codec']).to be_a_kind_of(LogStash::Codecs::Plain)
24
+ expect(exploded_config[i]['codec'].class.to_s).to eq("LogStash::Codecs::Plain")
32
25
  expect(exploded_config[i]['consumer_group']).to eql('cg')
33
26
  expect(exploded_config[i]['max_batch_size']).to be == 20
34
27
  expect(exploded_config[i]['prefetch_count']).to be == 30
@@ -67,7 +60,7 @@ describe LogStash::Inputs::AzureEventHubs do
67
60
  mock_queue = double("queue")
68
61
  mock_host = double("event_processor_host")
69
62
  mock_host_context = double("host_context")
70
- completable_future = CompletableFuture.new
63
+ completable_future = java.util.concurrent.CompletableFuture.new
71
64
  #simulate work being done before completing the future
72
65
  Thread.new do
73
66
  sleep 2
@@ -75,10 +68,10 @@ describe LogStash::Inputs::AzureEventHubs do
75
68
  end
76
69
 
77
70
  # rspec has issues with counters and concurrent code, so use threadsafe counters instead
78
- host_counter = AtomicInteger.new
79
- register_counter = AtomicInteger.new
80
- unregister_counter = AtomicInteger.new
81
- assertion_count = AtomicInteger.new
71
+ host_counter = java.util.concurrent.atomic.AtomicInteger.new
72
+ register_counter = java.util.concurrent.atomic.AtomicInteger.new
73
+ unregister_counter = java.util.concurrent.atomic.AtomicInteger.new
74
+ assertion_count = java.util.concurrent.atomic.AtomicInteger.new
82
75
 
83
76
  allow(mock_host).to receive(:getHostContext) {mock_host_context}
84
77
  allow(mock_host_context).to receive(:getEventHubPath) {"foo"}
@@ -186,7 +179,7 @@ describe LogStash::Inputs::AzureEventHubs do
186
179
  expect(exploded_config[1]['event_hub_connections'][0].value).to eql('1Endpoint=sb://...')
187
180
  expect(exploded_config[1]['storage_connection'].value).to eql('1DefaultEndpointsProtocol=https;AccountName=...')
188
181
  expect(exploded_config[1]['threads']).to be == 9
189
- expect(exploded_config[1]['codec']).to be_a_kind_of(LogStash::Codecs::JSON) # different between configs
182
+ expect(exploded_config[1]['codec'].class.to_s).to eq("LogStash::Codecs::JSON") # different between configs
190
183
  expect(exploded_config[1]['consumer_group']).to eql('cg1') # override global
191
184
  expect(exploded_config[1]['max_batch_size']).to be == 21 # filled from global
192
185
  expect(exploded_config[1]['prefetch_count']).to be == 300 # default
@@ -202,7 +195,7 @@ describe LogStash::Inputs::AzureEventHubs do
202
195
  mock_queue = double("queue")
203
196
  mock_host = double("event_processor_host")
204
197
  mock_host_context = double("host_context")
205
- completable_future = CompletableFuture.new
198
+ completable_future = java.util.concurrent.CompletableFuture.new
206
199
  #simulate work being done before completing the future
207
200
  Thread.new do
208
201
  sleep 2
@@ -210,10 +203,10 @@ describe LogStash::Inputs::AzureEventHubs do
210
203
  end
211
204
 
212
205
  # rspec has issues with counters and concurrent code, so use threadsafe counters instead
213
- host_counter = AtomicInteger.new
214
- register_counter = AtomicInteger.new
215
- unregister_counter = AtomicInteger.new
216
- assertion_count = AtomicInteger.new
206
+ host_counter = java.util.concurrent.atomic.AtomicInteger.new
207
+ register_counter = java.util.concurrent.atomic.AtomicInteger.new
208
+ unregister_counter = java.util.concurrent.atomic.AtomicInteger.new
209
+ assertion_count = java.util.concurrent.atomic.AtomicInteger.new
217
210
  allow_any_instance_of(InMemoryLeaseManager).to receive(:java_send)
218
211
  allow_any_instance_of(InMemoryCheckpointManager).to receive(:java_send)
219
212
 
@@ -319,4 +312,3 @@ describe LogStash::Inputs::AzureEventHubs do
319
312
  end
320
313
  end
321
314
  end
322
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-azure_event_hubs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-28 00:00:00.000000000 Z
11
+ date: 2020-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -71,7 +71,7 @@ dependencies:
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 0.0.16
74
+ version: 1.0.0
75
75
  name: logstash-devutils
76
76
  prerelease: false
77
77
  type: :development
@@ -79,7 +79,7 @@ dependencies:
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.0.16
82
+ version: 1.0.0
83
83
  description: This gem is a Logstash plugin required to be installed on top of the
84
84
  Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
85
85
  gem is not a stand-alone program