fluent-plugin-referer-parser 0.0.8 → 0.0.9
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/.travis.yml +3 -2
- data/README.md +2 -2
- data/fluent-plugin-referer-parser.gemspec +2 -2
- data/lib/fluent/plugin/out_referer_parser.rb +19 -13
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d258ae6d39fefa38045afceb356ddef7b0b63bd3
|
4
|
+
data.tar.gz: aa497f178a1d9bfae485102a05b315a021c5232e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16e4fc677a4f6251c4815e091a0a1f8bffb632c454d47d5d5f49c5bca757655ff4b58509d445833e4787d319c05a9669aefba12e74f6c05d719c81dd5aac3784
|
7
|
+
data.tar.gz: 3928930d0b7158f3b46c12934c3ef23c4f38ee16a550892b607e45ac0248783d3d0371cec3ef8801656a26f7af26dc5e1da72769d25e3a83b934d3aecb208c9c
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
To add referer-parser result into matched messages:
|
12
12
|
|
13
13
|
<match input.**>
|
14
|
-
type referer_parser
|
14
|
+
@type referer_parser
|
15
15
|
key_name referer
|
16
16
|
remove_prefix input
|
17
17
|
add_prefix merged
|
@@ -20,7 +20,7 @@ To add referer-parser result into matched messages:
|
|
20
20
|
Output messages with tag 'merged.**' has 'referer_known', 'referer_referer' and 'referer_search_term' attributes. If you want to change attribute names, write configurations as below:
|
21
21
|
|
22
22
|
<match input.**>
|
23
|
-
type referer_parser
|
23
|
+
@type referer_parser
|
24
24
|
key_name ref
|
25
25
|
remove_prefix input
|
26
26
|
add_prefix merged
|
@@ -3,7 +3,7 @@ require 'English'
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.name = 'fluent-plugin-referer-parser'
|
6
|
-
gem.version = '0.0.
|
6
|
+
gem.version = '0.0.9'
|
7
7
|
gem.authors = ['TAGOMORI Satoshi', 'HARUYAMA Seigo']
|
8
8
|
gem.email = ['haruyama@unixuser.org']
|
9
9
|
gem.description = %q(parsing by referer-parser. See: https://github.com/snowplow/referer-parser)
|
@@ -19,5 +19,5 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.add_development_dependency 'rake'
|
20
20
|
gem.add_development_dependency 'test-unit', '>= 3.2'
|
21
21
|
gem.add_runtime_dependency 'fluentd', '~> 0.12.0'
|
22
|
-
gem.add_runtime_dependency 'referer-parser', '~> 0.
|
22
|
+
gem.add_runtime_dependency 'referer-parser', '~> 0.3.0'
|
23
23
|
end
|
@@ -25,7 +25,11 @@ class Fluent::RefererParserOutput < Fluent::Output
|
|
25
25
|
def configure(conf)
|
26
26
|
super
|
27
27
|
|
28
|
-
@referer_parser =
|
28
|
+
@referer_parser = if @referers_yaml
|
29
|
+
RefererParser::Parser.new(@referers_yaml)
|
30
|
+
else
|
31
|
+
RefererParser::Parser.new
|
32
|
+
end
|
29
33
|
|
30
34
|
if @encodings_yaml
|
31
35
|
@encodings = YAML.load_file(@encodings_yaml)
|
@@ -69,29 +73,31 @@ class Fluent::RefererParserOutput < Fluent::Output
|
|
69
73
|
tag = tag_mangle(tag)
|
70
74
|
es.each do |time, record|
|
71
75
|
is_valid = true
|
72
|
-
begin
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
76
|
+
parsed = begin
|
77
|
+
@referer_parser.parse(record[@key_name])
|
78
|
+
rescue
|
79
|
+
is_valid = false
|
80
|
+
{}
|
81
|
+
end
|
82
|
+
if is_valid && parsed[:known]
|
83
|
+
search_term = parsed[:term]
|
84
|
+
uri = URI.parse(parsed[:uri])
|
85
|
+
host = uri.host
|
86
|
+
parameters = CGI.parse(uri.query)
|
81
87
|
input_encoding = @encodings[host] || parameters['ie'][0] || parameters['ei'][0]
|
82
88
|
begin
|
83
89
|
search_term = search_term.force_encoding(input_encoding).encode('utf-8') if input_encoding && /\Autf-?8\z/i !~ input_encoding
|
84
90
|
rescue
|
85
|
-
|
91
|
+
log.error('invalid referer: ' + uri.to_s)
|
86
92
|
end
|
87
93
|
record.merge!(
|
88
94
|
@out_key_known => true,
|
89
|
-
@out_key_referer =>
|
95
|
+
@out_key_referer => parsed[:source],
|
90
96
|
@out_key_host => host,
|
91
97
|
@out_key_search_term => search_term
|
92
98
|
)
|
93
99
|
else
|
94
|
-
record
|
100
|
+
record[@out_key_known] = false
|
95
101
|
end
|
96
102
|
router.emit(tag, time, record)
|
97
103
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-referer-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
@@ -59,14 +59,14 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.3.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 0.3.0
|
70
70
|
description: 'parsing by referer-parser. See: https://github.com/snowplow/referer-parser'
|
71
71
|
email:
|
72
72
|
- haruyama@unixuser.org
|