fluent-plugin-ilm_text_to_json 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d335062239d19bcc6c55e8fa3eea79344a235757
4
+ data.tar.gz: 8b72d54135430e900ab56926d1a1955d4065debd
5
+ SHA512:
6
+ metadata.gz: b48999b44e396b2b6e09a200d0c700942fc850516426d4c16cfb092ef5c45e53bae2a657ca6b9c50da671fe9aa921db02ddf274f58c8e6182a16b8f1e27631b7
7
+ data.tar.gz: 5a967436647d5e0fc90cd7221de30de8cb65cb983519bb0f2f6e6a512ed3e834aa32afc988d7b800123da5f2138a56a5aeeaa96a31f41aa94d85071029146463
@@ -0,0 +1,58 @@
1
+ require "fluent/plugin/text_to_json/version"
2
+
3
+ module Fluent
4
+ module TextFormatter
5
+ module TextToJsonFormatter < Formatter
6
+ Plugin.register_formatter("ilm_text_to_json", self)
7
+
8
+ include HandleTagAndTimeMixin
9
+ config_param :json_field, :string
10
+ config_param :field_splitter, :string
11
+
12
+ def configure(conf)
13
+ super
14
+ @fields = @json_field.split(",").map{|field| "\"" + field + "\""}
15
+ end
16
+
17
+ def format(tag, time, record)
18
+ tmp_field = Array.new
19
+ tmp_field = record.split(@field_splitter)
20
+
21
+ tmp_field[1] = @field_splitter + tmp_field[1]
22
+
23
+
24
+ #sdr parameters to json format
25
+ tmp_field[0] = tmp_field[0].split("\n")
26
+ tmp_field[0] = tmp_field[0].map{|value| (value == "")? nil:value} # HBase plugin ignores nil values
27
+ tmp_field[0] = tmp_field[0].map{|value| (value == nil)? nil:"\""+value+"\""}
28
+
29
+ tmp_field[0] = @fields[2,14].zip(tmp_field[0]
30
+ tmp_field[0] = tmp_field[0].map{|x| x.join(":")}.join(",")
31
+ tmp_field[0] = @field[0] + ":" + "{" + tmp_field[0] + "}"
32
+
33
+
34
+ #factor paramters to json format
35
+ tmp_field[1] = tmp_field[1].split("\n")
36
+ #Set factor ID as a second field's name
37
+ head, *tail = tmp_field[1].split("\n")
38
+ haed = head.split("|")
39
+ head = head.map(|field| "\""+field+"\""}
40
+
41
+
42
+ tail = tail.map{|values| values.split("|")}
43
+
44
+ new_tail = Array.new(head.length)
45
+
46
+ for i in 0..head.length-1
47
+ new_tail[i] = "\"" + tail.map{|values| values[i]}.join(",") + "\""
48
+ end
49
+
50
+ tmp_field[1] = "{" + head.zip(new_tail).map{|field,value| field + ":" + value }.join(",") + "}"
51
+
52
+ "{" + @fileds[0] + ":" + "{" + tmp_field[0] + "}," + @fields[1] + ":" + "{" + tmp_field[1] + "}}"
53
+
54
+
55
+ end
56
+ end
57
+ end
58
+ end
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fluent-plugin-ilm_text_to_json
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - minwoo lee
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-06-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: fluentd
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.12.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.12.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: massive_record
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.2.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.2.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 0.9.2
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.9.2
83
+ description: '"this is just our exclusive plugin for the special purpose"'
84
+ email:
85
+ - minwoo.lee@ilmile.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - lib/fluent/plugin/out_text_to_json.rb
91
+ homepage: https://rubygems.org/gems/fluent-plugin-ilm_text_to_json
92
+ licenses:
93
+ - MIT
94
+ metadata: {}
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ requirements: []
110
+ rubyforge_project:
111
+ rubygems_version: 2.4.8
112
+ signing_key:
113
+ specification_version: 4
114
+ summary: '"convert text/plain format to json format."'
115
+ test_files: []