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 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