fluent-plugin-filter-geoip 0.2.4 → 0.2.5
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/README.md +65 -74
- data/fluent-plugin-filter-geoip.gemspec +1 -1
- data/lib/fluent/plugin/filter_geoip.rb +121 -43
- 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: 9ed42a070dbbdd79fe1ebbbc200ed6575c73d5b9
|
4
|
+
data.tar.gz: e4494a384ecb2a16d9207ebef62f7811d69c6630
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cae6f7761e4806d00d1d18be4a287ce28187fb4881f902d08e4433b00e121ba5a460ffe138235fd24f5bfec446032a9417d4457e2b6c539a714d35895f368d2b
|
7
|
+
data.tar.gz: f789f5e7c1e7c73983c95952038b33c459807056b0abf345c8de96b4c2183b12adcef05bc6012e221cadd6339daf3c8b506d94175d4cd1bff690cf2500c6d949
|
data/README.md
CHANGED
@@ -44,6 +44,12 @@ database_path ./geoip/database/GeoLite2-City.mmdb
|
|
44
44
|
md5_path ./geoip/database/GeoLite2-City.md5
|
45
45
|
```
|
46
46
|
|
47
|
+
### enable_auto_download
|
48
|
+
|
49
|
+
```
|
50
|
+
enable_auto_download true
|
51
|
+
```
|
52
|
+
|
47
53
|
### lookup_field
|
48
54
|
|
49
55
|
```
|
@@ -68,6 +74,12 @@ field_delimiter _
|
|
68
74
|
flatten true
|
69
75
|
```
|
70
76
|
|
77
|
+
### languages
|
78
|
+
|
79
|
+
```
|
80
|
+
languages ["en"]
|
81
|
+
```
|
82
|
+
|
71
83
|
### continent
|
72
84
|
|
73
85
|
```
|
@@ -134,16 +146,19 @@ connection_type true
|
|
134
146
|
<filter tail.log>
|
135
147
|
@type geoip
|
136
148
|
|
137
|
-
|
149
|
+
enable_auto_download true
|
138
150
|
md5_url http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.md5
|
139
|
-
|
151
|
+
download_url http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
|
140
152
|
md5_path ./geoip/database/GeoLite2-City.md5
|
153
|
+
database_path ./geoip/database/GeoLite2-City.mmdb
|
141
154
|
|
142
155
|
lookup_field host
|
143
156
|
field_prefix geoip
|
144
|
-
field_delimiter
|
157
|
+
field_delimiter .
|
145
158
|
flatten true
|
146
159
|
|
160
|
+
locale en
|
161
|
+
|
147
162
|
continent true
|
148
163
|
country true
|
149
164
|
city true
|
@@ -161,14 +176,14 @@ Assuming following inputs are coming:
|
|
161
176
|
|
162
177
|
```javascript
|
163
178
|
{
|
164
|
-
"host":"
|
179
|
+
"host":"180.195.25.228",
|
165
180
|
"user":"-",
|
166
181
|
"method":"GET",
|
167
|
-
"path":"/
|
182
|
+
"path":"/category/giftcards?from=20",
|
168
183
|
"code":"200",
|
169
|
-
"size":"
|
170
|
-
"referer":"
|
171
|
-
"agent":"Mozilla/5.0 (
|
184
|
+
"size":"63",
|
185
|
+
"referer":"-",
|
186
|
+
"agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
|
172
187
|
}
|
173
188
|
```
|
174
189
|
|
@@ -176,75 +191,51 @@ then output bocomes as belows:
|
|
176
191
|
|
177
192
|
```javascript
|
178
193
|
{
|
179
|
-
"host":"
|
194
|
+
"host":"180.195.25.228",
|
180
195
|
"user":"-",
|
181
196
|
"method":"GET",
|
182
|
-
"path":"/
|
197
|
+
"path":"/category/giftcards?from=20",
|
183
198
|
"code":"200",
|
184
|
-
"size":"
|
185
|
-
"referer":"
|
186
|
-
"agent":"Mozilla/5.0 (
|
187
|
-
"
|
188
|
-
"
|
189
|
-
"
|
190
|
-
"
|
191
|
-
"
|
192
|
-
"
|
193
|
-
"
|
194
|
-
"
|
195
|
-
"
|
196
|
-
"
|
197
|
-
"
|
198
|
-
"
|
199
|
-
"
|
200
|
-
"
|
201
|
-
"
|
202
|
-
"
|
203
|
-
"
|
204
|
-
"
|
205
|
-
"
|
206
|
-
"
|
207
|
-
"
|
208
|
-
"
|
209
|
-
"
|
210
|
-
"
|
211
|
-
"
|
212
|
-
"
|
213
|
-
"
|
214
|
-
"
|
215
|
-
"
|
216
|
-
"
|
217
|
-
"
|
218
|
-
"
|
219
|
-
"
|
220
|
-
"
|
221
|
-
"
|
222
|
-
"
|
223
|
-
"
|
224
|
-
"geoip_registered_country_names_es":"Francia",
|
225
|
-
"geoip_registered_country_names_fr":"France",
|
226
|
-
"geoip_registered_country_names_ja":"フランス共和国",
|
227
|
-
"geoip_registered_country_names_pt-BR":"França",
|
228
|
-
"geoip_registered_country_names_ru":"Франция",
|
229
|
-
"geoip_registered_country_names_zh-CN":"法国",
|
230
|
-
"geoip_subdivisions_0_geoname_id":2985244,
|
231
|
-
"geoip_subdivisions_0_iso_code":"U",
|
232
|
-
"geoip_subdivisions_0_names_de":"Provence-Alpes-Côte d’Azur",
|
233
|
-
"geoip_subdivisions_0_names_en":"Provence-Alpes-Côte d'Azur",
|
234
|
-
"geoip_subdivisions_0_names_es":"Provenza-Alpes-Costa Azul",
|
235
|
-
"geoip_subdivisions_0_names_fr":"Provence-Alpes-Côte d'Azur",
|
236
|
-
"geoip_subdivisions_0_names_ja":"プロヴァンス=アルプ=コート・ダジュール地域圏",
|
237
|
-
"geoip_subdivisions_0_names_pt-BR":"Provença-Alpes-Costa Azul",
|
238
|
-
"geoip_subdivisions_0_names_ru":"Прованс — Альпы — Лазурный Берег",
|
239
|
-
"geoip_subdivisions_0_names_zh-CN":"普罗旺斯-阿尔卑斯-蓝色海岸",
|
240
|
-
"geoip_subdivisions_1_geoname_id":3031359,
|
241
|
-
"geoip_subdivisions_1_iso_code":"13",
|
242
|
-
"geoip_subdivisions_1_names_de":"Bouches-du-Rhône",
|
243
|
-
"geoip_subdivisions_1_names_en":"Bouches-du-Rhône",
|
244
|
-
"geoip_subdivisions_1_names_es":"Bocas del Ródano",
|
245
|
-
"geoip_subdivisions_1_names_fr":"Bouches-du-Rhône",
|
246
|
-
"geoip_subdivisions_1_names_pt-BR":"Bocas do Ródano",
|
247
|
-
"geoip_localtion_latlon":"43.5283,5.4497"
|
199
|
+
"size":"63",
|
200
|
+
"referer":"-",
|
201
|
+
"agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0.1) Gecko/20100101 Firefox/9.0.1",
|
202
|
+
"geoip.continent.code":"AS",
|
203
|
+
"geoip.continent.geoname_id":6255147,
|
204
|
+
"geoip.continent.iso_code":null,
|
205
|
+
"geoip.continent.name":"Asia",
|
206
|
+
"geoip.country.code":null,
|
207
|
+
"geoip.country.geoname_id":1694008,
|
208
|
+
"geoip.country.iso_code":"PH",
|
209
|
+
"geoip.country.name":"Philippines",
|
210
|
+
"geoip.city.code":null,
|
211
|
+
"geoip.city.geoname_id":1728893,
|
212
|
+
"geoip.city.iso_code":null,
|
213
|
+
"geoip.city.name":"Bagumbayan",
|
214
|
+
"geoip.location.latitude":13.45,
|
215
|
+
"geoip.location.longitude":123.6667,
|
216
|
+
"geoip.location.metro_code":null,
|
217
|
+
"geoip.location.time_zone":"Asia/Manila",
|
218
|
+
"geoip.postal.code":"4513",
|
219
|
+
"geoip.registered_country.code":null,
|
220
|
+
"geoip.registered_country.geoname_id":1694008,
|
221
|
+
"geoip.registered_country.iso_code":"PH",
|
222
|
+
"geoip.registered_country.name":"Philippines",
|
223
|
+
"geoip.represented_country.code":null,
|
224
|
+
"geoip.represented_country.geoname_id":null,
|
225
|
+
"geoip.represented_country.iso_code":null,
|
226
|
+
"geoip.represented_country.name":null,
|
227
|
+
"geoip.subdivisions.0.code":null,
|
228
|
+
"geoip.subdivisions.0.geoname_id":7521310,
|
229
|
+
"geoip.subdivisions.0.iso_code":"05",
|
230
|
+
"geoip.subdivisions.0.name":"Bicol",
|
231
|
+
"geoip.subdivisions.1.code":null,
|
232
|
+
"geoip.subdivisions.1.geoname_id":1731616,
|
233
|
+
"geoip.subdivisions.1.iso_code":"ALB",
|
234
|
+
"geoip.subdivisions.1.name":"Province of Albay",
|
235
|
+
"geoip.traits.is_anonymous_proxy":null,
|
236
|
+
"geoip.traits.is_satellite_provider":null,
|
237
|
+
"geoip.connection_type":null,
|
238
|
+
"geoip_localtion_latlon":""
|
248
239
|
}
|
249
240
|
```
|
250
241
|
|
@@ -7,16 +7,19 @@ module Fluent
|
|
7
7
|
class GeoIPFilter < Filter
|
8
8
|
Fluent::Plugin.register_filter('geoip', self)
|
9
9
|
|
10
|
-
|
10
|
+
DEFAULT_ENABLE_DOWNLOAD = true
|
11
11
|
DEFAULT_MD5_URL = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.md5'
|
12
|
-
|
12
|
+
DEFAULT_DOWNLOAD_URL = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz'
|
13
13
|
DEFAULT_MD5_PATH = './geoip/database/GeoLite2-City.md5'
|
14
|
+
DEFAULT_DATABASE_PATH = './geoip/database/GeoLite2-City.mmdb'
|
14
15
|
|
15
16
|
DEFAULT_LOOKUP_FIELD = 'ip'
|
16
17
|
DEFAULT_FIELD_PREFIX = 'geoip'
|
17
|
-
DEFAULT_FIELD_DELIMITER = '
|
18
|
+
DEFAULT_FIELD_DELIMITER = '.'
|
18
19
|
DEFAULT_FLATTEN = false
|
19
20
|
|
21
|
+
DEFAULT_LOCALE = 'en'
|
22
|
+
|
20
23
|
DEFAULT_CITY = true
|
21
24
|
DEFAULT_CONTINENT = true
|
22
25
|
DEFAULT_COUNTRY = true
|
@@ -28,16 +31,19 @@ module Fluent
|
|
28
31
|
DEFAULT_TRAITS = true
|
29
32
|
DEFAULT_CONNECTION_TYPE = true
|
30
33
|
|
31
|
-
config_param :
|
34
|
+
config_param :enable_auto_download, :string, :default => DEFAULT_ENABLE_DOWNLOAD,
|
35
|
+
:desc => ''
|
36
|
+
|
37
|
+
config_param :md5_path, :string, :default => DEFAULT_MD5_PATH,
|
32
38
|
:desc => ''
|
33
39
|
|
34
40
|
config_param :md5_url, :string, :default => DEFAULT_MD5_URL,
|
35
41
|
:desc => ''
|
36
42
|
|
37
|
-
config_param :
|
43
|
+
config_param :download_url, :string, :default => DEFAULT_DOWNLOAD_URL,
|
38
44
|
:desc => ''
|
39
45
|
|
40
|
-
config_param :
|
46
|
+
config_param :database_path, :string, :default => DEFAULT_DATABASE_PATH,
|
41
47
|
:desc => ''
|
42
48
|
|
43
49
|
config_param :lookup_field, :string, :default => DEFAULT_LOOKUP_FIELD,
|
@@ -52,6 +58,9 @@ module Fluent
|
|
52
58
|
config_param :flatten, :bool, :default => DEFAULT_FLATTEN,
|
53
59
|
:desc => ''
|
54
60
|
|
61
|
+
config_param :locale, :string, :default => DEFAULT_LOCALE,
|
62
|
+
:desc => ''
|
63
|
+
|
55
64
|
config_param :continent, :bool, :default => DEFAULT_CONTINENT,
|
56
65
|
:desc => ''
|
57
66
|
|
@@ -89,14 +98,16 @@ module Fluent
|
|
89
98
|
def configure(conf)
|
90
99
|
super
|
91
100
|
|
92
|
-
@
|
101
|
+
@enable_auto_download = conf.has_key?('enable_auto_download') ? conf['enable_auto_download'] : DEFAULT_ENABLE_DOWNLOAD
|
93
102
|
|
94
103
|
@md5_url = conf.has_key?('md5_url') ? conf['md5_url'] : DEFAULT_MD5_URL
|
95
104
|
|
96
|
-
@
|
105
|
+
@download_url = conf.has_key?('download_url') ? conf['download_url'] : DEFAULT_DOWNLOAD_URL
|
97
106
|
|
98
107
|
@md5_path = conf.has_key?('md5_path') ? conf['md5_path'] : DEFAULT_MD5_PATH
|
99
108
|
|
109
|
+
@database_path = conf.has_key?('database_path') ? conf['database_path'] : DEFAULT_DATABASE_PATH
|
110
|
+
|
100
111
|
@lookup_field = conf.has_key?('lookup_field') ? conf['lookup_field'] : DEFAULT_LOOKUP_FIELD
|
101
112
|
|
102
113
|
@field_prefix = conf.has_key?('field_prefix') ? conf['field_prefix'] : DEFAULT_FIELD_PREFIX
|
@@ -105,6 +116,8 @@ module Fluent
|
|
105
116
|
|
106
117
|
@flatten = conf.has_key?('flatten') ? to_boolean(conf['flatten']) : DEFAULT_FLATTEN
|
107
118
|
|
119
|
+
@locale = conf.has_key?('locale') ? conf['locale'] : DEFAULT_LOCALE
|
120
|
+
|
108
121
|
@continent = conf.has_key?('continent') ? to_boolean(conf['continent']) : DEFAULT_CONTINENT
|
109
122
|
|
110
123
|
@country = conf.has_key?('country') ? to_boolean(conf['country']) : DEFAULT_COUNTRY
|
@@ -125,7 +138,9 @@ module Fluent
|
|
125
138
|
|
126
139
|
@connection_type = conf.has_key?('connection_type') ? to_boolean(conf['connection_type']) : DEFAULT_CONNECTION_TYPE
|
127
140
|
|
128
|
-
|
141
|
+
if enable_auto_download then
|
142
|
+
download_database @download_url, @md5_url, @database_path, @md5_path
|
143
|
+
end
|
129
144
|
|
130
145
|
@database = MaxMindDB.new(@database_path)
|
131
146
|
end
|
@@ -137,90 +152,153 @@ module Fluent
|
|
137
152
|
geoip = @database.lookup(ip)
|
138
153
|
|
139
154
|
if geoip.found? then
|
140
|
-
geoip_hash = geoip.to_hash
|
155
|
+
#geoip_hash = geoip.to_hash
|
156
|
+
|
157
|
+
if @continent then
|
158
|
+
continent_hash = {}
|
159
|
+
|
160
|
+
continent_hash['code'] = geoip.continent.code
|
161
|
+
continent_hash['geoname_id'] = geoip.continent.geoname_id
|
162
|
+
continent_hash['iso_code'] = geoip.continent.iso_code
|
163
|
+
continent_hash['name'] = geoip.continent.name(@locale)
|
141
164
|
|
142
|
-
if @continent && geoip_hash.has_key?('continent') then
|
143
165
|
if @flatten then
|
144
|
-
record.merge!(to_flatten(
|
166
|
+
record.merge!(to_flatten(continent_hash, [@field_prefix, 'continent'], @field_delimiter))
|
145
167
|
else
|
146
|
-
record[[@field_prefix, 'continent'].join(@field_delimiter)] =
|
168
|
+
record[[@field_prefix, 'continent'].join(@field_delimiter)] = continent_hash.to_json
|
147
169
|
end
|
148
170
|
end
|
149
171
|
|
150
|
-
if @country
|
172
|
+
if @country then
|
173
|
+
country_hash = {}
|
174
|
+
|
175
|
+
country_hash['code'] = geoip.country.code
|
176
|
+
country_hash['geoname_id'] = geoip.country.geoname_id
|
177
|
+
country_hash['iso_code'] = geoip.country.iso_code
|
178
|
+
country_hash['name'] = geoip.country.name(@locale)
|
179
|
+
|
151
180
|
if @flatten then
|
152
|
-
record.merge!(to_flatten(
|
181
|
+
record.merge!(to_flatten(country_hash, [@field_prefix, 'country'], @field_delimiter))
|
153
182
|
else
|
154
|
-
record[[@field_prefix, 'country'].join(@field_delimiter)] =
|
183
|
+
record[[@field_prefix, 'country'].join(@field_delimiter)] = country_hash.to_json
|
155
184
|
end
|
156
185
|
end
|
157
186
|
|
158
|
-
if @city
|
187
|
+
if @city then
|
188
|
+
city_hash = {}
|
189
|
+
|
190
|
+
city_hash['code'] = geoip.city.code
|
191
|
+
city_hash['geoname_id'] = geoip.city.geoname_id
|
192
|
+
city_hash['iso_code'] = geoip.city.iso_code
|
193
|
+
city_hash['name'] = geoip.city.name(@locale)
|
194
|
+
|
159
195
|
if @flatten then
|
160
|
-
record.merge!(to_flatten(
|
196
|
+
record.merge!(to_flatten(city_hash, [@field_prefix, 'city'], @field_delimiter))
|
161
197
|
else
|
162
|
-
record[[@field_prefix, 'city'].join(@field_delimiter)] =
|
198
|
+
record[[@field_prefix, 'city'].join(@field_delimiter)] = city_hash.to_json
|
163
199
|
end
|
164
200
|
end
|
165
201
|
|
166
|
-
if @location
|
202
|
+
if @location then
|
203
|
+
location_hash = {}
|
204
|
+
|
205
|
+
location_hash['latitude'] = geoip.location.latitude
|
206
|
+
location_hash['longitude'] = geoip.location.longitude
|
207
|
+
location_hash['metro_code'] = geoip.location.metro_code
|
208
|
+
location_hash['time_zone'] = geoip.location.time_zone
|
209
|
+
|
167
210
|
if @flatten then
|
168
|
-
record.merge!(to_flatten(
|
211
|
+
record.merge!(to_flatten(location_hash, [@field_prefix, 'location'], @field_delimiter))
|
169
212
|
else
|
170
|
-
record[[@field_prefix, 'location'].join(@field_delimiter)] =
|
213
|
+
record[[@field_prefix, 'location'].join(@field_delimiter)] = location_hash.to_json
|
171
214
|
end
|
172
215
|
end
|
173
216
|
|
174
|
-
if @postal
|
217
|
+
if @postal then
|
218
|
+
postal_hash = {}
|
219
|
+
|
220
|
+
postal_hash['code'] = geoip.postal.code
|
221
|
+
|
175
222
|
if @flatten then
|
176
|
-
record.merge!(to_flatten(
|
223
|
+
record.merge!(to_flatten(postal_hash, [@field_prefix, 'postal'], @field_delimiter))
|
177
224
|
else
|
178
|
-
record[[@field_prefix, 'postal'].join(@field_delimiter)] =
|
225
|
+
record[[@field_prefix, 'postal'].join(@field_delimiter)] = postal_hash.to_json
|
179
226
|
end
|
180
227
|
end
|
181
228
|
|
182
|
-
if @registered_country
|
229
|
+
if @registered_country then
|
230
|
+
registered_country_hash = {}
|
231
|
+
|
232
|
+
registered_country_hash['code'] = geoip.registered_country.code
|
233
|
+
registered_country_hash['geoname_id'] = geoip.registered_country.geoname_id
|
234
|
+
registered_country_hash['iso_code'] = geoip.registered_country.iso_code
|
235
|
+
registered_country_hash['name'] = geoip.registered_country.name(@locale)
|
236
|
+
|
183
237
|
if @flatten then
|
184
|
-
record.merge!(to_flatten(
|
238
|
+
record.merge!(to_flatten(registered_country_hash, [@field_prefix, 'registered_country'], @field_delimiter))
|
185
239
|
else
|
186
|
-
record[[@field_prefix, 'registered_country'].join(@field_delimiter)] =
|
240
|
+
record[[@field_prefix, 'registered_country'].join(@field_delimiter)] = registered_country_hash.to_json
|
187
241
|
end
|
188
242
|
end
|
189
243
|
|
190
|
-
if @represented_country
|
244
|
+
if @represented_country then
|
245
|
+
represented_country_hash = {}
|
246
|
+
|
247
|
+
represented_country_hash['code'] = geoip.represented_country.code
|
248
|
+
represented_country_hash['geoname_id'] = geoip.represented_country.geoname_id
|
249
|
+
represented_country_hash['iso_code'] = geoip.represented_country.iso_code
|
250
|
+
represented_country_hash['name'] = geoip.represented_country.name(@locale)
|
251
|
+
|
191
252
|
if @flatten then
|
192
|
-
record.merge!(to_flatten(
|
253
|
+
record.merge!(to_flatten(represented_country_hash, [@field_prefix, 'represented_country'], @field_delimiter))
|
193
254
|
else
|
194
|
-
record[[@field_prefix, 'represented_country'].join(@field_delimiter)] =
|
255
|
+
record[[@field_prefix, 'represented_country'].join(@field_delimiter)] = represented_country_hash.to_json
|
195
256
|
end
|
196
257
|
end
|
197
258
|
|
198
|
-
if @subdivisions
|
259
|
+
if @subdivisions then
|
260
|
+
subdivision_arry = []
|
261
|
+
|
262
|
+
i = 0
|
263
|
+
geoip.subdivisions.each do |subdivision|
|
264
|
+
subdivision_hash = {}
|
265
|
+
|
266
|
+
subdivision_hash['code'] = subdivision.code
|
267
|
+
subdivision_hash['geoname_id'] = subdivision.geoname_id
|
268
|
+
subdivision_hash['iso_code'] = subdivision.iso_code
|
269
|
+
subdivision_hash['name'] = subdivision.name(@locale)
|
270
|
+
|
271
|
+
subdivision_arry.push(subdivision_hash)
|
272
|
+
|
273
|
+
i = i + 1
|
274
|
+
end
|
275
|
+
|
199
276
|
if @flatten then
|
200
277
|
i = 0
|
201
|
-
|
278
|
+
subdivision_arry.each do |subdivision|
|
202
279
|
record.merge!(to_flatten(subdivision, [@field_prefix, 'subdivisions', i.to_s], @field_delimiter))
|
203
280
|
i = i + 1
|
204
281
|
end
|
205
282
|
else
|
206
|
-
record[[@field_prefix, 'subdivisions'].join(@field_delimiter)] =
|
283
|
+
record[[@field_prefix, 'subdivisions'].join(@field_delimiter)] = subdivision_arry.to_json
|
207
284
|
end
|
208
285
|
end
|
209
286
|
|
210
|
-
if @traits
|
287
|
+
if @traits then
|
288
|
+
traits_hash = {}
|
289
|
+
|
290
|
+
traits_hash['is_anonymous_proxy'] = geoip.traits.is_anonymous_proxy
|
291
|
+
traits_hash['is_satellite_provider'] = geoip.traits.is_satellite_provider
|
292
|
+
|
211
293
|
if @flatten then
|
212
|
-
record.merge!(to_flatten(
|
294
|
+
record.merge!(to_flatten(traits_hash, [@field_prefix, 'traits'], @field_delimiter))
|
213
295
|
else
|
214
|
-
record[[@field_prefix, 'traits'].join(@field_delimiter)] =
|
296
|
+
record[[@field_prefix, 'traits'].join(@field_delimiter)] = traits_hash.to_json
|
215
297
|
end
|
216
298
|
end
|
217
299
|
|
218
|
-
if @connection_type
|
219
|
-
|
220
|
-
record.merge!(to_flatten(geoip_hash['connection_type'], [@field_prefix, 'connection_type'], @field_delimiter))
|
221
|
-
else
|
222
|
-
record[[@field_prefix, 'connection_type'].join(@field_delimiter)] = geoip_hash['connection_type'].to_json
|
223
|
-
end
|
300
|
+
if @connection_type then
|
301
|
+
record[[@field_prefix, 'connection_type'].join(@field_delimiter)] = geoip.connection_type
|
224
302
|
end
|
225
303
|
|
226
304
|
log.info "Record: %s" % record.inspect
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-filter-geoip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Minoru Osuka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|