logstash_rails 0.1.0 → 0.1.1
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 +15 -0
- data/Gemfile +8 -13
- data/lib/logstash_rails/formatter/basic.rb +30 -0
- data/lib/logstash_rails/formatter/flatten_params.rb +48 -0
- data/lib/logstash_rails/formatter/source.rb +37 -0
- data/lib/logstash_rails/formatter.rb +13 -63
- data/lib/logstash_rails/formatter_base.rb +22 -0
- data/lib/logstash_rails/transport/logfile.rb +1 -1
- data/lib/logstash_rails/transport/logstash_tcp.rb +1 -1
- data/lib/logstash_rails/transport/logstash_udp.rb +1 -1
- data/lib/logstash_rails/transport/redis.rb +1 -1
- data/lib/logstash_rails/transport.rb +2 -0
- data/lib/logstash_rails/transport_base.rb +3 -3
- data/lib/logstash_rails/version.rb +1 -1
- data/lib/logstash_rails.rb +3 -2
- data/spec/lib/logstash_rails/formatter/basic_spec.rb +21 -0
- data/spec/lib/logstash_rails/{formatter_spec.rb → formatter/flatten_params_spec.rb} +4 -10
- data/spec/lib/logstash_rails/formatter/source_spec.rb +19 -0
- data/spec/lib/logstash_rails/transport/logfile_spec.rb +2 -1
- data/spec/lib/logstash_rails/transport/logstash_tcp_spec.rb +2 -1
- data/spec/lib/logstash_rails/transport/logstash_udp_spec.rb +2 -1
- data/spec/lib/logstash_rails/transport/redis_spec.rb +2 -0
- data/spec/spec_helper.rb +1 -1
- metadata +15 -25
- data/spec/lib/logstash_rails/generated_event_spec.rb +0 -23
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MWY4MGJiY2U4YzM1NzYyMGQyM2U3MmU5YTQyOTlmYmMwMGUxNWYwNg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZThhM2NlNzczYjI2OTdkOGU5NTZiNTM2OTdkM2ViZjdiMmI5N2ZmMA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZWI4Y2MwMzk5NTk4MGQ2YWQzZmQxOWNjOGVjOGRmYzNhZDkyMGE1ZWFlYjQx
|
10
|
+
MjQ0MTVkNWU1Yjc1OTZkNjE4ZGEwNGQ5ZDczYTQ1YzM5YWMwMmVhMDc5NmI2
|
11
|
+
MjAzZmVlYzAzYjQyZThmNTM3OWY5ZGY2YjgyNzcyODJmZTA2ZDE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OWJmNjAyYzI2NThmMTNjNjYxYjk5NmI0ZjMzOTdjMzRhMjJmMTEwOTg5YzFj
|
14
|
+
YzllMGYzMGFhMzkyMGQ0YTM4YWEwNmFjMTE0MTg3MmM5MjlmYmM3YzJmOTU1
|
15
|
+
NmExY2M3NTcyNTEwYTJkMTZlZDM2M2E1Nzg3ZTgwYTAwZWIyM2M=
|
data/Gemfile
CHANGED
@@ -2,16 +2,11 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
group :test do
|
15
|
-
gem 'rspec'
|
16
|
-
gem 'fakeredis'
|
17
|
-
end
|
5
|
+
gem 'coveralls', require: false
|
6
|
+
gem 'fakeredis'
|
7
|
+
gem 'pry'
|
8
|
+
gem 'rake'
|
9
|
+
gem 'redcarpet'
|
10
|
+
gem 'rspec'
|
11
|
+
gem 'tailor'
|
12
|
+
gem 'yard'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'socket'
|
2
|
+
|
3
|
+
module LogstashRails
|
4
|
+
module Formatter
|
5
|
+
module Basic
|
6
|
+
|
7
|
+
def self.decorate(target, options)
|
8
|
+
target.extend(self)
|
9
|
+
end
|
10
|
+
|
11
|
+
def format(event_type, start, finish, id, payload)
|
12
|
+
event_hash = super
|
13
|
+
|
14
|
+
event_hash.merge!(
|
15
|
+
process_id: $$,
|
16
|
+
host: Socket.gethostname,
|
17
|
+
message: event_type
|
18
|
+
)
|
19
|
+
|
20
|
+
# process_action.action_controller events
|
21
|
+
# from Rails4 contain Rack::Request instances
|
22
|
+
# that are not serializable
|
23
|
+
event_hash.delete(:request)
|
24
|
+
|
25
|
+
event_hash
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module LogstashRails
|
2
|
+
module Formatter
|
3
|
+
module FlattenParams
|
4
|
+
|
5
|
+
def format(event_type, start, finish, id, payload)
|
6
|
+
flatten_params(super)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.decorate(target, options)
|
10
|
+
if options[:flatten_params] != false
|
11
|
+
target.extend(self)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def flatten_params(event_hash)
|
18
|
+
params = event_hash[:params]
|
19
|
+
return event_hash unless params
|
20
|
+
|
21
|
+
event_hash[:params] = flatten_hash(params)
|
22
|
+
|
23
|
+
event_hash
|
24
|
+
end
|
25
|
+
|
26
|
+
def prefix(current, last)
|
27
|
+
return "#{last}__#{current}" if last
|
28
|
+
|
29
|
+
current.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
def flatten_hash(h, last = nil, accu = {})
|
33
|
+
h.each do |k, v|
|
34
|
+
prefix = prefix(k, last)
|
35
|
+
|
36
|
+
if v.is_a?(Hash)
|
37
|
+
flatten_hash(v, prefix, accu)
|
38
|
+
else
|
39
|
+
accu[prefix] = v
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
accu
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module LogstashRails
|
2
|
+
module Formatter
|
3
|
+
module Source
|
4
|
+
|
5
|
+
attr_accessor :source
|
6
|
+
|
7
|
+
def format(event_type, start, finish, id, payload)
|
8
|
+
add_source(super)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.decorate(target, options)
|
12
|
+
source = options[:source]
|
13
|
+
if source != false
|
14
|
+
target.extend(self)
|
15
|
+
target.source = get_source(source)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def self.get_source(source_option)
|
22
|
+
if source_option != true
|
23
|
+
source_option
|
24
|
+
elsif defined?(Rails)
|
25
|
+
Rails.application.class.parent_name
|
26
|
+
else
|
27
|
+
''
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_source(event_hash)
|
32
|
+
event_hash.merge!(source: source)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,72 +1,22 @@
|
|
1
|
-
require '
|
2
|
-
require 'socket'
|
1
|
+
require 'logstash_rails/formatter_base'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
class Formatter
|
8
|
-
|
9
|
-
def initialize(options = {})
|
10
|
-
@flatten_params = (options[:flatten_params] != false)
|
11
|
-
end
|
12
|
-
|
13
|
-
def format(event_type, start, finish, id, payload)
|
14
|
-
payload.merge!(
|
15
|
-
process_id: $$,
|
16
|
-
host: Socket.gethostname,
|
17
|
-
message: event_type,
|
18
|
-
source: application_name
|
19
|
-
)
|
20
|
-
|
21
|
-
# process_action.action_controller events
|
22
|
-
# from Rails4 contain Rack::Request instances
|
23
|
-
# that are not serializable
|
24
|
-
payload.delete(:request)
|
25
|
-
|
26
|
-
flatten_params(payload)
|
27
|
-
|
28
|
-
event = LogStash::Event.new(payload)
|
29
|
-
|
30
|
-
event.timestamp = start
|
31
|
-
|
32
|
-
event.to_json
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def flatten_params(payload)
|
38
|
-
return unless @flatten_params
|
39
|
-
|
40
|
-
params = payload[:params]
|
41
|
-
return unless params
|
42
|
-
|
43
|
-
payload[:params] = flatten_hash(params)
|
44
|
-
end
|
45
|
-
|
46
|
-
def prefix(current, last)
|
47
|
-
return "#{last}__#{current}" if last
|
3
|
+
Dir[File.join(File.dirname(__FILE__), 'formatter', '*.rb')].each do |file|
|
4
|
+
require file
|
5
|
+
end
|
48
6
|
|
49
|
-
|
50
|
-
|
7
|
+
module LogstashRails
|
8
|
+
module Formatter
|
51
9
|
|
52
|
-
def
|
53
|
-
|
54
|
-
prefix = prefix(k, last)
|
10
|
+
def self.get(options = {})
|
11
|
+
formatter = FormatterBase.new
|
55
12
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
13
|
+
Formatter.constants.map do |constant|
|
14
|
+
Formatter.const_get(constant)
|
15
|
+
end.each do |decorator|
|
16
|
+
decorator.decorate(formatter, options)
|
61
17
|
end
|
62
18
|
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
def application_name
|
67
|
-
if defined?(Rails)
|
68
|
-
Rails.application.class.parent_name
|
69
|
-
end
|
19
|
+
formatter
|
70
20
|
end
|
71
21
|
|
72
22
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'logstash-event'
|
2
|
+
|
3
|
+
module LogstashRails
|
4
|
+
|
5
|
+
class FormatterBase
|
6
|
+
|
7
|
+
def perform(event_type, start, finish, id, payload)
|
8
|
+
event_hash = format(event_type, start, finish, id, payload)
|
9
|
+
|
10
|
+
event = LogStash::Event.new(event_hash)
|
11
|
+
|
12
|
+
event.timestamp = start
|
13
|
+
|
14
|
+
event.to_json
|
15
|
+
end
|
16
|
+
|
17
|
+
def format(event_type, start, finish, id, payload)
|
18
|
+
payload.clone
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -10,7 +10,7 @@ module LogstashRails
|
|
10
10
|
# @option options [Symbol] :redis_key ('logstash') the key of the redis
|
11
11
|
# list to which events will be pushed to
|
12
12
|
#
|
13
|
-
def initialize(options)
|
13
|
+
def initialize(formatter, options)
|
14
14
|
host = options[:host] || '127.0.0.1'
|
15
15
|
port = options[:port] || 6379
|
16
16
|
redis_key = options[:redis_key] || 'logstash'
|
@@ -4,11 +4,11 @@ module LogstashRails
|
|
4
4
|
class TransportBase
|
5
5
|
|
6
6
|
# @see LogstashRails.config
|
7
|
-
def initialize(options)
|
7
|
+
def initialize(formatter, options)
|
8
8
|
@events = options[:events] || [/.*/]
|
9
9
|
@error_logger = options[:logger]
|
10
10
|
@raise_errors = options[:raise_errors] || false
|
11
|
-
@formatter =
|
11
|
+
@formatter = formatter
|
12
12
|
|
13
13
|
if defined?(Rails)
|
14
14
|
@error_logger ||= Rails.logger
|
@@ -38,7 +38,7 @@ module LogstashRails
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def event_handler(*args)
|
41
|
-
json_event = @formatter.
|
41
|
+
json_event = @formatter.perform(*args)
|
42
42
|
|
43
43
|
begin
|
44
44
|
push(json_event)
|
data/lib/logstash_rails.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'active_support'
|
2
2
|
require 'active_support/core_ext/string'
|
3
3
|
|
4
|
-
require 'logstash_rails/transport_base'
|
5
4
|
|
6
5
|
Dir[File.join(File.dirname(__FILE__), 'logstash_rails', '*.rb')].each do |file|
|
7
6
|
require file
|
@@ -30,7 +29,9 @@ module LogstashRails
|
|
30
29
|
transport = options.fetch(:transport)
|
31
30
|
transport = transport.to_s.camelize.to_sym
|
32
31
|
|
33
|
-
LogstashRails::
|
32
|
+
formatter = LogstashRails::Formatter.get(options)
|
33
|
+
|
34
|
+
LogstashRails::Transport.const_get(transport).new(formatter, options)
|
34
35
|
end
|
35
36
|
|
36
37
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
describe LogstashRails::Formatter::Basic do
|
2
|
+
|
3
|
+
subject do
|
4
|
+
LogstashRails::Formatter.get.perform('event', Time.now, Time.now, 1, {request: 'toto'})
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'deletes Rack::Request' do
|
8
|
+
subject.should_not include('request')
|
9
|
+
end
|
10
|
+
|
11
|
+
%w(message host process_id source).each do |field|
|
12
|
+
it "adds #{field}" do
|
13
|
+
subject.should include(field)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'has the event type as message' do
|
18
|
+
JSON.parse(subject)["message"].should eq 'event'
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
describe LogstashRails::Formatter do
|
1
|
+
describe LogstashRails::Formatter::FlattenParams do
|
2
2
|
|
3
3
|
subject do
|
4
4
|
lambda do |payload|
|
5
|
-
LogstashRails::Formatter.
|
5
|
+
LogstashRails::Formatter.get.perform('event', Time.now, Time.now, 1, payload)
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
@@ -15,18 +15,12 @@ describe LogstashRails::Formatter do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'does not flatten params' do
|
18
|
-
formatter = LogstashRails::Formatter.
|
18
|
+
formatter = LogstashRails::Formatter.get(flatten_params: false)
|
19
19
|
payload = {params:{a: {b: 1}, c: 2}}
|
20
20
|
|
21
|
-
result = formatter.
|
21
|
+
result = formatter.perform('event', Time.now, Time.now, 1, payload)
|
22
22
|
|
23
23
|
JSON.parse(result).should include({'params' => {'a' => {'b' => 1}, 'c' => 2}})
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'deletes Rack::Request' do
|
27
|
-
payload = {request: 'toto'}
|
28
|
-
|
29
|
-
subject.call(payload).should_not include('request')
|
30
|
-
end
|
31
|
-
|
32
26
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
describe LogstashRails::Formatter::Source do
|
2
|
+
|
3
|
+
subject do
|
4
|
+
lambda do |options, payload|
|
5
|
+
LogstashRails::Formatter.get(options).perform('event', Time.now, Time.now, 1, payload)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'knows its source' do
|
10
|
+
result = subject.call({source: 'test'}, {})
|
11
|
+
JSON.parse(result).should include({'source' => 'test'})
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'can be disabled' do
|
15
|
+
result = subject.call({source: false}, {})
|
16
|
+
JSON.parse(result).keys.should_not include('source')
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -5,7 +5,8 @@ describe LogstashRails::Transport::Logfile do
|
|
5
5
|
end
|
6
6
|
|
7
7
|
subject do
|
8
|
-
LogstashRails::
|
8
|
+
formatter = LogstashRails::Formatter.get
|
9
|
+
LogstashRails::Transport::Logfile.new(formatter, logfile: logfile)
|
9
10
|
end
|
10
11
|
|
11
12
|
it { should respond_to :push }
|
@@ -16,7 +16,8 @@ describe LogstashRails::Transport::LogstashTcp do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
let :logstash_tcp do
|
19
|
-
LogstashRails::
|
19
|
+
formatter = LogstashRails::Formatter.get
|
20
|
+
LogstashRails::Transport::LogstashTcp.new(formatter, port: 9000)
|
20
21
|
end
|
21
22
|
|
22
23
|
it do
|
@@ -1,7 +1,8 @@
|
|
1
1
|
describe LogstashRails::Transport::LogstashUdp do
|
2
2
|
|
3
3
|
subject do
|
4
|
-
LogstashRails::
|
4
|
+
formatter = LogstashRails::Formatter.get
|
5
|
+
LogstashRails::Transport::LogstashUdp.new(formatter, port: 9001)
|
5
6
|
end
|
6
7
|
|
7
8
|
it { should respond_to :push }
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- cmertz
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: logstash-event
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: activesupport
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: redis
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: celluloid-io
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -92,6 +83,10 @@ files:
|
|
92
83
|
- Rakefile
|
93
84
|
- lib/logstash_rails.rb
|
94
85
|
- lib/logstash_rails/formatter.rb
|
86
|
+
- lib/logstash_rails/formatter/basic.rb
|
87
|
+
- lib/logstash_rails/formatter/flatten_params.rb
|
88
|
+
- lib/logstash_rails/formatter/source.rb
|
89
|
+
- lib/logstash_rails/formatter_base.rb
|
95
90
|
- lib/logstash_rails/transport.rb
|
96
91
|
- lib/logstash_rails/transport/logfile.rb
|
97
92
|
- lib/logstash_rails/transport/logstash_tcp.rb
|
@@ -100,8 +95,9 @@ files:
|
|
100
95
|
- lib/logstash_rails/transport_base.rb
|
101
96
|
- lib/logstash_rails/version.rb
|
102
97
|
- logstash_rails.gemspec
|
103
|
-
- spec/lib/logstash_rails/
|
104
|
-
- spec/lib/logstash_rails/
|
98
|
+
- spec/lib/logstash_rails/formatter/basic_spec.rb
|
99
|
+
- spec/lib/logstash_rails/formatter/flatten_params_spec.rb
|
100
|
+
- spec/lib/logstash_rails/formatter/source_spec.rb
|
105
101
|
- spec/lib/logstash_rails/transport/logfile_spec.rb
|
106
102
|
- spec/lib/logstash_rails/transport/logstash_tcp_spec.rb
|
107
103
|
- spec/lib/logstash_rails/transport/logstash_udp_spec.rb
|
@@ -111,37 +107,31 @@ files:
|
|
111
107
|
homepage: https://github.com/cmertz/logstash_rails
|
112
108
|
licenses:
|
113
109
|
- GPL
|
110
|
+
metadata: {}
|
114
111
|
post_install_message:
|
115
112
|
rdoc_options: []
|
116
113
|
require_paths:
|
117
114
|
- lib
|
118
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
116
|
requirements:
|
121
117
|
- - ! '>='
|
122
118
|
- !ruby/object:Gem::Version
|
123
119
|
version: '0'
|
124
|
-
segments:
|
125
|
-
- 0
|
126
|
-
hash: -1320401809956164612
|
127
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
121
|
requirements:
|
130
122
|
- - ! '>='
|
131
123
|
- !ruby/object:Gem::Version
|
132
124
|
version: '0'
|
133
|
-
segments:
|
134
|
-
- 0
|
135
|
-
hash: -1320401809956164612
|
136
125
|
requirements: []
|
137
126
|
rubyforge_project:
|
138
|
-
rubygems_version:
|
127
|
+
rubygems_version: 2.0.7
|
139
128
|
signing_key:
|
140
|
-
specification_version:
|
129
|
+
specification_version: 4
|
141
130
|
summary: Send events from Rails to Logstash without logger foo.
|
142
131
|
test_files:
|
143
|
-
- spec/lib/logstash_rails/
|
144
|
-
- spec/lib/logstash_rails/
|
132
|
+
- spec/lib/logstash_rails/formatter/basic_spec.rb
|
133
|
+
- spec/lib/logstash_rails/formatter/flatten_params_spec.rb
|
134
|
+
- spec/lib/logstash_rails/formatter/source_spec.rb
|
145
135
|
- spec/lib/logstash_rails/transport/logfile_spec.rb
|
146
136
|
- spec/lib/logstash_rails/transport/logstash_tcp_spec.rb
|
147
137
|
- spec/lib/logstash_rails/transport/logstash_udp_spec.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
describe 'generated logstash event' do
|
2
|
-
|
3
|
-
before do
|
4
|
-
Redis::Connection::Memory.reset_all_databases
|
5
|
-
LogstashRails.config(transport: :redis, redis: Redis.new, redis_key: 'logstash')
|
6
|
-
ActiveSupport::Notifications.instrument("process_action.action_controller")
|
7
|
-
end
|
8
|
-
|
9
|
-
subject do
|
10
|
-
JSON.parse(Redis.new.lpop('logstash'))
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'has the event type as message' do
|
14
|
-
subject['message'].should eq "process_action.action_controller"
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'contains additional fields' do
|
18
|
-
%w(message host process_id source).each do |field|
|
19
|
-
subject.should include(field)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|