logstash-input-jsqs 0.9.1-java → 0.9.2-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/lib/logstash/inputs/jsqs.rb +30 -44
- data/logstash-input-jsqs.gemspec +1 -1
- data/vendor/jar-dependencies/runtime-jars/{httpclient-4.4.jar → httpclient-4.4.1.jar} +0 -0
- metadata +3 -8
- data/vendor/jar-dependencies/runtime-jars/commons-codec-1.9.jar +0 -0
- data/vendor/jar-dependencies/runtime-jars/jackson-annotations-2.5.1.jar +0 -0
- data/vendor/jar-dependencies/runtime-jars/jackson-core-2.5.1.jar +0 -0
- data/vendor/jar-dependencies/runtime-jars/jackson-databind-2.5.1.jar +0 -0
- data/vendor/jar-dependencies/runtime-jars/joda-time-2.7.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7035e8063acc3862a7b7289f94cff69691ec567
|
4
|
+
data.tar.gz: b9fe883cf27a4d52f0e829c41dfbba59d96c0508
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1d08cca6ac2023c98d47c5af70b698ba5aa3c9992b8cfd1cbd12661b9b38ccf0ed0905ad552eeccff32f31c498f686f2c89cf24e6f5edb275d2084aef219ea2
|
7
|
+
data.tar.gz: e66f13d7a80cd27f50bbf8796e8f705b5ad702e25ee41f0116fdd9d2db1f8ed47a708372f4c8e5a1b3d1df886a7d20c954700902a93e569e3b441c1c0c6f1a4c
|
data/lib/logstash/inputs/jsqs.rb
CHANGED
@@ -1,20 +1,9 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
# Original plugin by Al Belsky (https://logstash.jira.com/browse/LOGSTASH-1968)
|
3
|
+
|
2
4
|
require "logstash/inputs/threadable"
|
3
|
-
require "logstash/namespace"
|
4
|
-
require "logstash/plugin_mixins/aws_config"
|
5
|
-
require "digest/sha2"
|
6
5
|
require 'logstash-input-jsqs_jars.rb'
|
7
6
|
|
8
|
-
# aws-java-sdk dependencies
|
9
|
-
# require 'jar/aws-java-sdk.jar'
|
10
|
-
# require 'jar/httpclient-4.2.jar'
|
11
|
-
# require 'jar/httpcore-4.2.jar'
|
12
|
-
# require 'jar/commons-codec-1.6'
|
13
|
-
# require 'jar/jackson-core-2.1.1.jar'
|
14
|
-
# require 'jar/jackson-databind-2.1.1.jar'
|
15
|
-
# require 'jar/jackson-annotations-2.1.1.jar'
|
16
|
-
#
|
17
|
-
|
18
7
|
# Pull events from an Amazon Web Services Simple Queue Service (SQS) queue.
|
19
8
|
#
|
20
9
|
# SQS is a simple, scalable queue system that is part of the
|
@@ -68,14 +57,6 @@ require 'logstash-input-jsqs_jars.rb'
|
|
68
57
|
# See http://aws.amazon.com/iam/ for more details on setting up AWS identities.
|
69
58
|
#
|
70
59
|
|
71
|
-
# -------------------------------------
|
72
|
-
# NOTICE:
|
73
|
-
# This is a custom SQS input that uses the Java AWS SDK (Ruby SDK didn't scale beyond 200 messages per second).
|
74
|
-
# This plugin assumes that the logstash distribution contains the Java AWS SDK its required dependencies.
|
75
|
-
# In Logstash 1.3.3, Apache HTTP client (4.1) had to be removed from the Logstash distribution,
|
76
|
-
# as it was incompatible with the Apache HTTP client 4.2 version used by the Java AWS SDK.
|
77
|
-
# -------------------------------------
|
78
|
-
|
79
60
|
class LogStash::Inputs::JSQS < LogStash::Inputs::Threadable
|
80
61
|
|
81
62
|
config_name "jsqs"
|
@@ -89,35 +70,30 @@ class LogStash::Inputs::JSQS < LogStash::Inputs::Threadable
|
|
89
70
|
config :max_inflight_receive_batches, :validate => :number, :default => 50
|
90
71
|
config :max_done_receive_batches, :validate => :number, :default => 50
|
91
72
|
config :max_number_of_messages, :validate => :number, :default => 10
|
73
|
+
config :retry_count, :validate => :number, :default => 5
|
92
74
|
|
93
75
|
@receiveRequest
|
94
76
|
|
95
77
|
public
|
96
78
|
def register
|
97
|
-
|
98
79
|
@logger.info("Registering SQS input", :queue => @queue)
|
99
80
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
rescue Exception => e
|
117
|
-
@logger.error("Unable to access SQS queue.", :error => e.to_s, :queue => @queue)
|
118
|
-
throw e
|
119
|
-
end # begin/rescue
|
120
|
-
|
81
|
+
# Client config
|
82
|
+
@logger.debug("Creating AWS SQS queue client", :queue => @queue)
|
83
|
+
clientConfig = ClientConfiguration.new.withMaxConnections(@max_connections)
|
84
|
+
|
85
|
+
# SQS client
|
86
|
+
@sqs = AmazonSQSAsyncClient.new(clientConfig)
|
87
|
+
@logger.debug("Amazon SQS Client created")
|
88
|
+
|
89
|
+
# Buffered client config
|
90
|
+
queueBufferConfig = QueueBufferConfig.new.withMaxBatchOpenMs(@max_batch_open_ms).withMaxInflightReceiveBatches(@max_inflight_receive_batches).withMaxDoneReceiveBatches(@max_done_receive_batches)
|
91
|
+
|
92
|
+
@bufferedSqs = AmazonSQSBufferedAsyncClient.new(@sqs, queueBufferConfig);
|
93
|
+
@logger.info("Connected to AWS SQS queue successfully.", :queue => @queue)
|
94
|
+
|
95
|
+
@receiveRequest = ReceiveMessageRequest.new(@queueUrl).withMaxNumberOfMessages(@max_number_of_messages)
|
96
|
+
|
121
97
|
end # def register
|
122
98
|
|
123
99
|
public
|
@@ -125,6 +101,7 @@ class LogStash::Inputs::JSQS < LogStash::Inputs::Threadable
|
|
125
101
|
@logger.debug("Polling SQS queue", :queue => @queue)
|
126
102
|
|
127
103
|
while running?
|
104
|
+
begin
|
128
105
|
result = @bufferedSqs.receiveMessage(@receiveRequest)
|
129
106
|
deleteEntries = []
|
130
107
|
# Process messages (expected 0 - 10 messages)
|
@@ -143,7 +120,16 @@ class LogStash::Inputs::JSQS < LogStash::Inputs::Threadable
|
|
143
120
|
# Issue delete request
|
144
121
|
@bufferedSqs.deleteMessageBatch(deleteRequest);
|
145
122
|
end # end if
|
146
|
-
|
123
|
+
rescue Exception => e
|
124
|
+
if (@retry_count -= 1) > 0
|
125
|
+
@logger.warn("Unable to access SQS queue. Sleeping before retrying.", :error => e.to_s, :queue => @queue)
|
126
|
+
sleep(10)
|
127
|
+
retry
|
128
|
+
else
|
129
|
+
@logger.error("Unable to access SQS queue. Aborting.", :error => e.to_s, :queue => @queue)
|
130
|
+
teardown
|
131
|
+
end # if
|
132
|
+
end # begin
|
147
133
|
end # polling loop
|
148
134
|
end # def run
|
149
135
|
|
data/logstash-input-jsqs.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.platform = RUBY_PLATFORM
|
3
3
|
s.name = 'logstash-input-jsqs'
|
4
|
-
s.version = '0.9.
|
4
|
+
s.version = '0.9.2'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "SQS input plugin using the AWS Java SDK"
|
7
7
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install logstash-input-jsqs. This gem is not a stand-alone program"
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-jsqs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Jamie Cressey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,14 +62,9 @@ files:
|
|
62
62
|
- logstash-input-jsqs.gemspec
|
63
63
|
- spec/inputs/example_spec.rb
|
64
64
|
- vendor/jar-dependencies/runtime-jars/aws-java-sdk-1.7.13.jar
|
65
|
-
- vendor/jar-dependencies/runtime-jars/commons-codec-1.9.jar
|
66
65
|
- vendor/jar-dependencies/runtime-jars/commons-logging-1.2.jar
|
67
|
-
- vendor/jar-dependencies/runtime-jars/httpclient-4.4.jar
|
66
|
+
- vendor/jar-dependencies/runtime-jars/httpclient-4.4.1.jar
|
68
67
|
- vendor/jar-dependencies/runtime-jars/httpcore-4.4.1.jar
|
69
|
-
- vendor/jar-dependencies/runtime-jars/jackson-annotations-2.5.1.jar
|
70
|
-
- vendor/jar-dependencies/runtime-jars/jackson-core-2.5.1.jar
|
71
|
-
- vendor/jar-dependencies/runtime-jars/jackson-databind-2.5.1.jar
|
72
|
-
- vendor/jar-dependencies/runtime-jars/joda-time-2.7.jar
|
73
68
|
homepage:
|
74
69
|
licenses:
|
75
70
|
- Apache License (2.0)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|