logstash-input-faker 0.3.0 → 0.4.0
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 +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
|