logstash-input-shutdown_on_broken_stdin 2.0.4

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6a9ec2fc24f51e37511d40b33dded17e7d2c7718
4
+ data.tar.gz: cc03c84cb098768b86b3f14754447c91c1a486d1
5
+ SHA512:
6
+ metadata.gz: d16b1909058f658463bb93d0f3b761fd11e759cce31fb0a8e8862547df0beabc43fe87d003b25c01d95fc3e63bb38773cf5bdbb92924ee8ef9bd3e521e3c9c02
7
+ data.tar.gz: cf28e238b89ad7298485298e252baa25da1981a056598c05199d9abcbd30dd527316878be09ad9a92ca58217e1a9f18c557c4c0be6e34cc0fe53b342870e98f4
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/README.md ADDED
@@ -0,0 +1,30 @@
1
+ This plugin will be useful when Logstash is launched via another Process (Agent). The Agent can connect to a central repository like (etcd) to get the Logstash config file. The advantage of having an Agent download the config file from a central repository is to have the updates to the config file (like Kafka brokers for example) propagated to all Logstash instances. The Agent can be managed by a supervisorctl or an inittab.
2
+
3
+ Agent would be started on the box which connects to the central config system to get the config file for Logstash and launches Logstash as a sub-process. The agent can be notified of changes from the config system which can kill Logstash and restart Logstash again. When an Agent quits for whatever reason, Logstash sub-process can be killed by using this Input plugin.
4
+
5
+ <pre><code>
6
+ input {
7
+ shutdown_on_broken_stdin {
8
+ type => "DROP"
9
+ }
10
+
11
+ kafka {
12
+ topic_id => "test"
13
+ zk_connect => "localhost:2181"
14
+ }
15
+ }
16
+
17
+ filter {
18
+ if [type] == "DROP" {
19
+ drop {
20
+ # Drop the messages coming on "Stdin"
21
+ }
22
+ }
23
+ }
24
+
25
+ output {
26
+ stdout {
27
+ codec => rubydebug
28
+ }
29
+ }
30
+ </code></pre>
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+ require "logstash/inputs/stdin"
3
+
4
+ # This plugin can be used to exit Logstash when Logstash is lauched as a
5
+ # sub-process and the parent process dies. The sub-process should be launched
6
+ # inheriting the STDIN from the parent process and so if the parent process
7
+ # dies, this plugin would see a broken input and it would simply exit Logstash
8
+
9
+ class LogStash::Inputs::ShutdownOnBrokenStdin < LogStash::Inputs::Stdin
10
+ config_name "shutdown_on_broken_stdin"
11
+
12
+ def run(queue)
13
+ begin
14
+ super
15
+ rescue => e
16
+ puts "Detected broken Stdin. Exiting Logstash"
17
+ exit
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,25 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'logstash-input-shutdown_on_broken_stdin'
3
+ s.version = '2.0.4'
4
+ s.licenses = ['Apache License (2.0)']
5
+ s.summary = "This is an extension of Stdin input plugin. This plugin exits Logstash on broken Stdin."
6
+ s.description = "If Logstash is launched as a sub-process, this plugin can be used to exit Logstash when the parent process exits. The parent process should launch the Logstash sub-process using Inherit on Stdin, this way when the parent process exits, the Stdin is broken which is detected by this plugin which exits Logstash"
7
+ s.authors = ["Elastic"]
8
+ s.email = 'info@elastic.co'
9
+ s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html"
10
+ s.require_paths = ["lib"]
11
+
12
+ # Files
13
+ s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
14
+ # Tests
15
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
+
17
+ # Special flag to let us know this is actually a logstash plugin
18
+ s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
19
+
20
+ # Gem dependencies
21
+ s.add_runtime_dependency "logstash-core", ">= 2.0.0", "< 3.0.0"
22
+ s.add_runtime_dependency 'logstash-input-stdin'
23
+
24
+ s.add_development_dependency 'logstash-devutils'
25
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ require "logstash/devutils/rspec/spec_helper"
3
+ require "logstash/inputs/shutdown_on_broken_stdin"
4
+ require "logstash/inputs/stdin"
5
+
6
+ describe LogStash::Inputs::ShutdownOnBrokenStdin < LogStash::Inputs::Stdin do
7
+ # No tests as this is nothing but a LogStash::Inputs::Stdin
8
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logstash-input-shutdown_on_broken_stdin
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Elastic
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logstash-core
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.0
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.0
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: 2.0.0
28
+ - - <
29
+ - !ruby/object:Gem::Version
30
+ version: 3.0.0
31
+ prerelease: false
32
+ type: :runtime
33
+ - !ruby/object:Gem::Dependency
34
+ name: logstash-input-stdin
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ prerelease: false
46
+ type: :runtime
47
+ - !ruby/object:Gem::Dependency
48
+ name: logstash-devutils
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ prerelease: false
60
+ type: :development
61
+ description: If Logstash is launched as a sub-process, this plugin can be used to exit Logstash when the parent process exits. The parent process should launch the Logstash sub-process using Inherit on Stdin, this way when the parent process exits, the Stdin is broken which is detected by this plugin which exits Logstash
62
+ email: info@elastic.co
63
+ executables: []
64
+ extensions: []
65
+ extra_rdoc_files: []
66
+ files:
67
+ - Gemfile
68
+ - README.md
69
+ - lib/logstash/inputs/shutdown_on_broken_stdin.rb
70
+ - logstash-input-shutdown_on_broken_stdin.gemspec
71
+ - spec/inputs/shutdown_on_broken_stdin_spec.rb
72
+ homepage: http://www.elastic.co/guide/en/logstash/current/index.html
73
+ licenses:
74
+ - Apache License (2.0)
75
+ metadata:
76
+ logstash_plugin: 'true'
77
+ logstash_group: input
78
+ post_install_message:
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 2.4.5
95
+ signing_key:
96
+ specification_version: 4
97
+ summary: This is an extension of Stdin input plugin. This plugin exits Logstash on broken Stdin.
98
+ test_files:
99
+ - spec/inputs/shutdown_on_broken_stdin_spec.rb