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 +7 -0
- data/Gemfile +2 -0
- data/README.md +30 -0
- data/lib/logstash/inputs/shutdown_on_broken_stdin.rb +20 -0
- data/logstash-input-shutdown_on_broken_stdin.gemspec +25 -0
- data/spec/inputs/shutdown_on_broken_stdin_spec.rb +8 -0
- metadata +99 -0
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
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
|