logstash_rails 0.0.13 → 0.0.14
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.
- data/.tailor +25 -0
- data/Gemfile +1 -0
- data/README.md +3 -3
- data/Rakefile +3 -0
- data/lib/logstash_rails/transport/redis.rb +7 -2
- data/lib/logstash_rails/transport_base.rb +2 -0
- data/lib/logstash_rails/version.rb +1 -1
- data/spec/lib/logstash_rails/transport/logfile_spec.rb +0 -4
- data/spec/lib/logstash_rails/transport/logstash_udp_spec.rb +21 -1
- data/spec/lib/logstash_rails/transport/redis_spec.rb +29 -1
- metadata +6 -5
data/.tailor
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
Tailor.config do |config|
|
2
|
+
config.formatters "text"
|
3
|
+
config.file_set './**/*.rb' do |style|
|
4
|
+
style.allow_camel_case_methods false, level: :error
|
5
|
+
style.allow_hard_tabs false, level: :error
|
6
|
+
style.allow_screaming_snake_case_classes false, level: :error
|
7
|
+
style.allow_trailing_line_spaces false, level: :error
|
8
|
+
style.allow_invalid_ruby false, level: :warn
|
9
|
+
style.indentation_spaces 2, level: :error
|
10
|
+
style.max_code_lines_in_class 300, level: :error
|
11
|
+
style.max_code_lines_in_method 30, level: :error
|
12
|
+
style.max_line_length 80, level: :error
|
13
|
+
style.spaces_after_comma 1, level: :error
|
14
|
+
style.spaces_after_lbrace 1, level: :error
|
15
|
+
style.spaces_after_lbracket 0, level: :error
|
16
|
+
style.spaces_after_lparen 0, level: :error
|
17
|
+
style.spaces_before_comma 0, level: :error
|
18
|
+
style.spaces_before_lbrace 1, level: :error
|
19
|
+
style.spaces_before_rbrace 1, level: :error
|
20
|
+
style.spaces_before_rbracket 0, level: :error
|
21
|
+
style.spaces_before_rparen 0, level: :error
|
22
|
+
style.spaces_in_empty_braces 0, level: :error
|
23
|
+
style.trailing_newlines 1, level: :error
|
24
|
+
end
|
25
|
+
end
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -81,7 +81,7 @@ The most basic configuration looks like:
|
|
81
81
|
LogstashRails.config(transport: :redis)
|
82
82
|
```
|
83
83
|
|
84
|
-
This will
|
84
|
+
This will connect to a redis server on _localhost:6379_, use _logstash_ as
|
85
85
|
key for the redis list to push to and subscribe to _all events_.
|
86
86
|
|
87
87
|
A more complete example looks like:
|
@@ -108,8 +108,8 @@ This will only subscribe to events from `ActionController`.
|
|
108
108
|
3. Commit your changes (`git commit -am "Added ..."`)
|
109
109
|
4. Push to the branch (`git push origin my_feature`)
|
110
110
|
5. Open a Pull Request
|
111
|
-
6. Enjoy a refreshing
|
111
|
+
6. Enjoy a refreshing Orangina and wait
|
112
112
|
|
113
113
|
## License
|
114
114
|
|
115
|
-
Licensed under the General Public License version 3 (GPLv3). See [LICENSE.txt](/LICENSE.txt) for details.
|
115
|
+
Licensed under the GNU General Public License version 3 (GPLv3). See [LICENSE.txt](/LICENSE.txt) for details.
|
data/Rakefile
CHANGED
@@ -22,8 +22,13 @@ module LogstashRails
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def push(json_event)
|
25
|
-
|
26
|
-
|
25
|
+
begin
|
26
|
+
unless @redis.rpush(@redis_key, json_event)
|
27
|
+
raise "could not send event to redis"
|
28
|
+
end
|
29
|
+
rescue ::Redis::InheritedError
|
30
|
+
@redis.client.connect
|
31
|
+
retry
|
27
32
|
end
|
28
33
|
end
|
29
34
|
|
@@ -7,6 +7,7 @@ module LogstashRails
|
|
7
7
|
def initialize(options)
|
8
8
|
@events = options[:events] || [/.*/]
|
9
9
|
@error_logger = options[:logger]
|
10
|
+
@raise_errors = options[:raise_errors] || false
|
10
11
|
|
11
12
|
if defined?(Rails)
|
12
13
|
@error_logger ||= Rails.logger
|
@@ -41,6 +42,7 @@ module LogstashRails
|
|
41
42
|
begin
|
42
43
|
push(json_event)
|
43
44
|
rescue
|
45
|
+
raise $! if @raise_errors
|
44
46
|
log($!)
|
45
47
|
end
|
46
48
|
end
|
@@ -1,7 +1,27 @@
|
|
1
1
|
describe LogstashRails::Transport::LogstashUdp do
|
2
|
+
|
2
3
|
subject do
|
3
|
-
LogstashRails::Transport::LogstashUdp.new
|
4
|
+
LogstashRails::Transport::LogstashUdp.new(port: 9001)
|
4
5
|
end
|
5
6
|
|
6
7
|
it { should respond_to :push }
|
8
|
+
|
9
|
+
it 'sends data over udp' do
|
10
|
+
message = "toto"
|
11
|
+
socket = UDPSocket.new
|
12
|
+
socket.bind('127.0.0.1', 9001)
|
13
|
+
|
14
|
+
received = nil
|
15
|
+
thread = Thread.new do
|
16
|
+
received = socket.recvfrom(message.length).first
|
17
|
+
end
|
18
|
+
|
19
|
+
subject.push message
|
20
|
+
|
21
|
+
thread.join
|
22
|
+
socket.close
|
23
|
+
|
24
|
+
received.should eq message
|
25
|
+
end
|
26
|
+
|
7
27
|
end
|
@@ -7,7 +7,8 @@ describe LogstashRails::Transport::Redis do
|
|
7
7
|
subject do
|
8
8
|
LogstashRails::Transport::Redis.new(
|
9
9
|
redis: Redis.new,
|
10
|
-
redis_key: 'logstash'
|
10
|
+
redis_key: 'logstash',
|
11
|
+
raise_errors: true
|
11
12
|
)
|
12
13
|
end
|
13
14
|
|
@@ -19,4 +20,31 @@ describe LogstashRails::Transport::Redis do
|
|
19
20
|
Redis.new.lpop('logstash').should eq 'foobar_event'
|
20
21
|
end
|
21
22
|
|
23
|
+
it 'survives forking' do
|
24
|
+
r,w = IO.pipe
|
25
|
+
|
26
|
+
# use connection in parent process
|
27
|
+
subject.push 'foo'
|
28
|
+
Redis.new.lpop 'logstash'
|
29
|
+
|
30
|
+
if fork
|
31
|
+
w.close
|
32
|
+
|
33
|
+
r.read.should eq 'true'
|
34
|
+
|
35
|
+
Process.wait
|
36
|
+
else
|
37
|
+
|
38
|
+
# use connection in child process
|
39
|
+
subject.push 'bar'
|
40
|
+
|
41
|
+
w.write(Redis.new.lpop('logstash') == 'bar')
|
42
|
+
w.flush
|
43
|
+
|
44
|
+
SimpleCov.at_exit{}
|
45
|
+
Process.exit! true
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
22
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: logstash-event
|
@@ -68,6 +68,7 @@ extra_rdoc_files: []
|
|
68
68
|
files:
|
69
69
|
- .gitignore
|
70
70
|
- .rspec
|
71
|
+
- .tailor
|
71
72
|
- .travis.yml
|
72
73
|
- Gemfile
|
73
74
|
- LICENSE.txt
|
@@ -105,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
106
|
version: '0'
|
106
107
|
segments:
|
107
108
|
- 0
|
108
|
-
hash:
|
109
|
+
hash: 3553073864180370669
|
109
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
111
|
none: false
|
111
112
|
requirements:
|
@@ -114,10 +115,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
115
|
version: '0'
|
115
116
|
segments:
|
116
117
|
- 0
|
117
|
-
hash:
|
118
|
+
hash: 3553073864180370669
|
118
119
|
requirements: []
|
119
120
|
rubyforge_project:
|
120
|
-
rubygems_version: 1.8.
|
121
|
+
rubygems_version: 1.8.25
|
121
122
|
signing_key:
|
122
123
|
specification_version: 3
|
123
124
|
summary: Send events from Rails to Logstash without logger foo.
|