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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 161f82cb48552d214e675d4abc8c10630f0b449f
4
- data.tar.gz: b52dda64bd66647284769b5ffc91a33b4bad76e1
3
+ metadata.gz: 3b6abd516ff7f97b9ef94f1fd8d50ba02b63d739
4
+ data.tar.gz: 999846e5ad3c765fd3f09156f013ab133062cfdf
5
5
  SHA512:
6
- metadata.gz: 330785d305642a000971147d623139bc9f6604fd0556e651b3b32b29ba22923edfbe0a97ec24671d19fc2951613359370cfe00063c5fb991185b4acc648b00e5
7
- data.tar.gz: f3484dbd524e0ddbfcf8f556023d873d5172e0e6e79b5662c2044de573bfc8b673c81e5fd5637729c01d71f2e1a39373933d4d050b697491b79f17c5e3103c48
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
- event.remove(field) if @overwrite_fields
113
- new_fields[field] = Faker.class_eval(faker_string)
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
- new_event.set(field, event.sprintf(value))
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.3.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"
@@ -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('%{first_name} %{last_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.3.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-31 00:00:00.000000000 Z
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