fluent-plugin-sixpack 0.1.0 → 0.2.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b91c9d69489bb8e18414ab354bbf69c356d3056e
|
4
|
+
data.tar.gz: 335fe12f805ca1e5564c80980218ce6086d43a28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1d16582d6f120cc60a947d627560799c2cedb9e4e0c150812323cb7db228209e742a0206c23456850de78ceff3c5697dcfb5af048ec61e9a82c9786bd1fc905
|
7
|
+
data.tar.gz: 08ee9c0b3bd8410c18bd0081e9a6d5a9cd9873b97323cb2ea56f5c1075d820f7c6dfb4c5a940896439e60801024aaf81feeaf5adfca0a9a708a52dc4c73386c6
|
data/README.md
CHANGED
@@ -21,6 +21,8 @@ For messages to participate A/B test such as:
|
|
21
21
|
Or messages to convert A/B test such as
|
22
22
|
|
23
23
|
tag:your.arbitrary.tag {"record_type":"convert", "experiment":"header-color", "client_id":"ID-0000-0001"}
|
24
|
+
#you can also specify kpi id
|
25
|
+
tag:your.arbitrary.tag {"record_type":"convert", "experiment":"header-color", "client_id":"ID-0000-0001", "kpi":"conversion-100dollar"}
|
24
26
|
|
25
27
|
Configuration example for graphs in sixpack with POST api url `http://sixpack:5000/(participate|convert)`. You must set this parameter.
|
26
28
|
|
@@ -42,6 +44,7 @@ You can change assignment between param keys and values, with using settings bel
|
|
42
44
|
- `key_alternative, :default => 'alternative'`
|
43
45
|
- `key_client_id, :default => 'client_id'`
|
44
46
|
- `key_record_type, :default => 'record_type'`
|
47
|
+
- `key_kpi , :default => 'kpi'`
|
45
48
|
|
46
49
|
### Configuration parameters
|
47
50
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = "fluent-plugin-sixpack"
|
5
|
-
gem.version = "0.
|
5
|
+
gem.version = "0.2.0"
|
6
6
|
gem.authors = ["Naoki AINOYA"]
|
7
7
|
gem.email = ["ainonic@gmail.com"]
|
8
8
|
gem.summary = %q{Fluentd output plugin to post numbers to sixpack (by seatgeek)}
|
@@ -11,9 +11,10 @@ class Fluent::SixpackOutput < Fluent::Output
|
|
11
11
|
config_param :sixpackapi_url, :string
|
12
12
|
config_param :key_experiment, :default => 'experiment'
|
13
13
|
config_param :key_alternatives, :default => 'alternatives'
|
14
|
-
config_param :key_alternative, :default
|
14
|
+
config_param :key_alternative, :default => 'alternative'
|
15
15
|
config_param :key_client_id, :default => 'client_id'
|
16
16
|
config_param :key_record_type, :default => 'record_type'
|
17
|
+
config_param :key_kpi, :string, :default => 'kpi'
|
17
18
|
|
18
19
|
config_param :user_agent, :default => 'user_agent'
|
19
20
|
config_param :ip_address, :default => 'ip_address'
|
@@ -135,16 +136,23 @@ class Fluent::SixpackOutput < Fluent::Output
|
|
135
136
|
:client_id => record[@key_client_id],
|
136
137
|
})
|
137
138
|
when 'convert'
|
138
|
-
return sixpack_path,
|
139
|
-
:experiment => record[@key_experiment],
|
140
|
-
:client_id => record[@key_client_id],
|
141
|
-
})
|
139
|
+
return sixpack_path, form_encode_params_convert(record)
|
142
140
|
else
|
143
141
|
log.warn 'failed to map sixpack path and query'
|
144
142
|
raise
|
145
143
|
end
|
146
144
|
end
|
147
145
|
|
146
|
+
def form_encode_params_convert(record)
|
147
|
+
params = {
|
148
|
+
:experiment => record[@key_experiment],
|
149
|
+
:client_id => record[@key_client_id],
|
150
|
+
}
|
151
|
+
params.merge!({:kpi => record[@key_kpi]}) if(record[@key_kpi])
|
152
|
+
|
153
|
+
return URI.encode_www_form(params)
|
154
|
+
end
|
155
|
+
|
148
156
|
def post_request(event)
|
149
157
|
uri = URI.parse(@sixpackapi_url)
|
150
158
|
uri.path, uri.query = map_sixpack_path_with_query(event[:record])
|
@@ -38,6 +38,21 @@ class SixpackOutputTest < Test::Unit::TestCase
|
|
38
38
|
assert_equal 'experiment_test_convert', @posted[0][:experiment]
|
39
39
|
end
|
40
40
|
|
41
|
+
def test_convert_with_kpi
|
42
|
+
d = create_driver(CONFIG_NON_KEEPALIVE, 'test.metrics')
|
43
|
+
d.emit({'record_type' => 'convert',
|
44
|
+
'client_id' => "0000-0000-0000-0000",
|
45
|
+
'kpi' => "kpi",
|
46
|
+
'experiment' => 'experiment_test_convert'})
|
47
|
+
sleep 0.5 # wait internal posting thread loop
|
48
|
+
|
49
|
+
assert_equal 1, @posted.size
|
50
|
+
|
51
|
+
assert_equal '0000-0000-0000-0000', @posted[0][:client_id]
|
52
|
+
assert_equal 'experiment_test_convert', @posted[0][:experiment]
|
53
|
+
assert_equal 'kpi', @posted[0][:kpi]
|
54
|
+
end
|
55
|
+
|
41
56
|
def test_invalid_type
|
42
57
|
d = create_driver(CONFIG_NON_KEEPALIVE, 'test.metrics')
|
43
58
|
d.emit({'record_type' => 'invalid_type',
|
@@ -177,20 +192,24 @@ class SixpackOutputTest < Test::Unit::TestCase
|
|
177
192
|
# ok, authorization not required
|
178
193
|
end
|
179
194
|
|
180
|
-
|
195
|
+
post_param = {
|
181
196
|
:alternatives=> req.query["alternatives"],
|
182
197
|
:alternative => req.query["alternative"],
|
183
198
|
:client_id => req.query["client_id"],
|
184
199
|
:experiment => req.query["experiment"]
|
185
|
-
}
|
200
|
+
}
|
201
|
+
|
202
|
+
@posted.push(post_param)
|
186
203
|
|
187
204
|
res.status = 200
|
188
205
|
}
|
189
206
|
srv.mount_proc('/convert') { |req,res|
|
190
|
-
|
207
|
+
post_param = {
|
191
208
|
:client_id => req.query["client_id"],
|
192
209
|
:experiment => req.query["experiment"]
|
193
|
-
}
|
210
|
+
}
|
211
|
+
post_param.merge!({:kpi => req.query["kpi"]}) if req.query["kpi"]
|
212
|
+
@posted.push(post_param)
|
194
213
|
res.status = 200
|
195
214
|
}
|
196
215
|
srv.mount_proc('/') { |req,res|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-sixpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naoki AINOYA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -85,7 +85,7 @@ files:
|
|
85
85
|
- fluent-plugin-sixpack.gemspec
|
86
86
|
- lib/fluent/plugin/out_sixpack.rb
|
87
87
|
- test/helper.rb
|
88
|
-
- test/plugin/
|
88
|
+
- test/plugin/test_out_sixpack.rb
|
89
89
|
homepage: https://github.com/ainoya/fluent-plugin-sixpack
|
90
90
|
licenses:
|
91
91
|
- APLv2
|
@@ -112,4 +112,5 @@ specification_version: 4
|
|
112
112
|
summary: Fluentd output plugin to post numbers to sixpack (by seatgeek)
|
113
113
|
test_files:
|
114
114
|
- test/helper.rb
|
115
|
-
- test/plugin/
|
115
|
+
- test/plugin/test_out_sixpack.rb
|
116
|
+
has_rdoc:
|