logstash-input-faker 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/logstash/inputs/faker.rb +36 -9
- data/logstash-input-faker.gemspec +1 -1
- data/spec/inputs/faker_spec.rb +3 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b6abd516ff7f97b9ef94f1fd8d50ba02b63d739
|
4
|
+
data.tar.gz: 999846e5ad3c765fd3f09156f013ab133062cfdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66432796a801cec3072c82e7554095fb3c2053d3619ecba20855dfaa7dbe99ee9c7b0b8ac269bf1e7a0b2198ba52b1a444404241216d3c6234a5875497ca7034
|
7
|
+
data.tar.gz: dc5794b860d8ee70694e7da1d84cb247044dfdef383e289633a1109ed1510052f638642301494edf798f35d2179a97f8bb87c13c9917d1a24601da80d91007ac
|
@@ -46,6 +46,10 @@ class LogStash::Inputs::Faker < LogStash::Inputs::Base
|
|
46
46
|
|
47
47
|
config :add_foreign_keys_to_events, :validate => :boolean, :default => false
|
48
48
|
|
49
|
+
config :multiply_field, :validate => :hash, :default => {}
|
50
|
+
|
51
|
+
config :multiply_splitable_field, :validate => :hash, :default => {}
|
52
|
+
|
49
53
|
# Similar to LogStash::Inputs::Base.add_field define a hash
|
50
54
|
# where the value is a Faker module and method call
|
51
55
|
# ex: Name.first_name
|
@@ -91,13 +95,13 @@ class LogStash::Inputs::Faker < LogStash::Inputs::Base
|
|
91
95
|
set_foreign_keys if @add_foreign_keys_to_events
|
92
96
|
while !stop? && (@count <= 0 || number < @count)
|
93
97
|
event = LogStash::Event.new({})
|
94
|
-
if @add_primary_key_to_events
|
95
|
-
LogStash::Util::Decorators.add_fields(@primary_key, event,"inputs/#{self.class.name}")
|
96
|
-
end
|
97
98
|
add_faker_fields(event)
|
98
99
|
if @splitable_field
|
99
100
|
add_splitable_fields(event)
|
100
101
|
end
|
102
|
+
if @add_primary_key_to_events
|
103
|
+
LogStash::Util::Decorators.add_fields(@primary_key, event,"inputs/#{self.class.name}")
|
104
|
+
end
|
101
105
|
decorate(event)
|
102
106
|
event.set("host", @host)
|
103
107
|
queue << event
|
@@ -105,12 +109,27 @@ class LogStash::Inputs::Faker < LogStash::Inputs::Base
|
|
105
109
|
end #end loop
|
106
110
|
end # end run
|
107
111
|
|
112
|
+
protected
|
113
|
+
def generate_multiplied_values(value, count, is_faker=false)
|
114
|
+
num = (count == 0 ? rand(1000) : count)
|
115
|
+
if is_faker
|
116
|
+
return num.times.map{ Faker.class_eval(value) }
|
117
|
+
else
|
118
|
+
return num.times.map{ value }
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
108
122
|
protected
|
109
123
|
def add_faker_fields(event)
|
110
124
|
new_fields = {}
|
111
125
|
@add_faker_field.each do |field, faker_string|
|
112
|
-
|
113
|
-
|
126
|
+
if @multiply_field[field]
|
127
|
+
event.remove(field) if @overwrite_fields
|
128
|
+
new_fields[field] = generate_multiplied_values(faker_string, @multiply_field[field], true)
|
129
|
+
else
|
130
|
+
event.remove(field) if @overwrite_fields
|
131
|
+
new_fields[field] = Faker.class_eval(faker_string)
|
132
|
+
end
|
114
133
|
end
|
115
134
|
LogStash::Util::Decorators.add_fields(new_fields, event,"inputs/#{self.class.name}")
|
116
135
|
end
|
@@ -125,11 +144,19 @@ class LogStash::Inputs::Faker < LogStash::Inputs::Base
|
|
125
144
|
end
|
126
145
|
@splitable_field_count.times do
|
127
146
|
new_event = LogStash::Event.new()
|
128
|
-
@add_splitable_faker_field.each do |field, faker_string|
|
129
|
-
new_event.set(field, Faker.class_eval(event.sprintf(faker_string)))
|
130
|
-
end
|
131
147
|
@add_splitable_field.each do |field, value|
|
132
|
-
|
148
|
+
if @multiply_splitable_field[field]
|
149
|
+
new_event.set(field, generate_multiplied_values(faker_string, @multiply_splitable_field[field], false))
|
150
|
+
else
|
151
|
+
new_event.set(field, event.sprintf(value))
|
152
|
+
end
|
153
|
+
end
|
154
|
+
@add_splitable_faker_field.each do |field, faker_string|
|
155
|
+
if @multiply_splitable_field[field]
|
156
|
+
new_event.set(field, generate_multiplied_values(faker_string, @multiply_splitable_field[field], true))
|
157
|
+
else
|
158
|
+
new_event.set(field, event.sprintf(Faker.class_eval(faker_string)))
|
159
|
+
end
|
133
160
|
end
|
134
161
|
if @add_foreign_keys_to_events
|
135
162
|
key = (@foreign_keys - used_ids).sample
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-input-faker'
|
4
|
-
s.version = '0.
|
4
|
+
s.version = '0.4.0'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Generate log events with fake data"
|
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/logstash-plugin install gemname. This gem is not a stand-alone program"
|
data/spec/inputs/faker_spec.rb
CHANGED
@@ -19,8 +19,10 @@ describe LogStash::Inputs::Faker do
|
|
19
19
|
"test" => "field"
|
20
20
|
}
|
21
21
|
plg.add_splitable_faker_field = {
|
22
|
-
"[name][testing]" => "Internet.user_name(
|
22
|
+
"[name][testing]" => "Internet.user_name()",
|
23
|
+
"[follower_id]" => "Number.number(10)"
|
23
24
|
}
|
25
|
+
plg.multiply_splitable_field = { "[follower_id]" => 10 }
|
24
26
|
plg.splitable_field_count = 10
|
25
27
|
plg.add_foreign_keys_to_events = true
|
26
28
|
plg.foreign_key_field = "[id]"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-faker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jsericks
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05
|
11
|
+
date: 2017-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|