fluent-plugin-xml-simple-parser 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 048d7ef269f7aaec80bd9b7277be43159fd15929
4
+ data.tar.gz: 016ac607265c6c823bcb705fc36e4aad79c1514b
5
+ SHA512:
6
+ metadata.gz: 10f9f5da9ce54a199dec6473eb35f3b901dfaecf616214a26035c484dbea82174327b93aeb1669329fcfe4686c87047ab4e3df8e09169cea5090c783c867002c
7
+ data.tar.gz: a4e3930c2cabe8da871ec9158a789beeed57fad6d9ebf36cfc9df54c1c2220c105fa0327842e6c93eea26ceacf219daea4aabb03f37b4b1e4cb6e40a4415b34c
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --color
2
+ --format documentation
3
+ --backtrace
4
+ --default_path spec
data/.simplecov ADDED
@@ -0,0 +1,5 @@
1
+ # configure code coverage
2
+ SimpleCov.start do
3
+ # exclude directories and files
4
+ add_filter "/spec/"
5
+ end
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'fluentd', '>=0.12.29'
4
+ gem 'nori', '>=2.6.0'
5
+
6
+ group :development, :test do
7
+ gem 'rdoc', '>=3.12'
8
+ gem 'bundler', '>=1.0.0'
9
+ gem 'jeweler', '>=1.8.4'
10
+ gem 'rspec', '>=0'
11
+ gem 'simplecov'
12
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,29 @@
1
+ Copyright © 2016 by Yaroslav Lukyanov (c_sharp@mail.ru)
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions
6
+ are met:
7
+
8
+ * Redistributions of source code must retain the above copyright
9
+ notice, this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in
12
+ the documentation and/or other materials provided with the
13
+ distribution.
14
+ * Neither the name of the copyright holder nor the names of its
15
+ contributors may be used to endorse or promote products derived
16
+ from this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # Cassandra plugin for Fluentd
2
+
3
+ Cassandra output plugin for Fluentd.
4
+
5
+ Implemented using the Datastax Ruby Driver for Apache Cassandra gem and targets [CQL3](https://docs.datastax.com/en/cql/3.3/)
6
+ and Cassandra 1.2 - 3.x
7
+
8
+ # Warning
9
+
10
+ This project is in an alpha state, so configuration params could be changed without changing of major version.
11
+
12
+ Be careful before updating.
13
+
14
+ # Installation
15
+
16
+ via RubyGems
17
+
18
+ fluent-gem install fluent-plugin-cassandra-driver
19
+ td-agent-gem install fluent-plugin-cassandra-driver
20
+
21
+ # Quick Start
22
+
23
+ ## Cassandra Configuration
24
+ # Create keyspace (via CQL)
25
+ CREATE KEYSPACE metrics WITH strategy_class='org.apache.cassandra.locator.SimpleStrategy' AND strategy_options:replication_factor=1;
26
+
27
+ # Create table (column family)
28
+ CREATE TABLE logs (id varchar, timestamp timestamp, json text, PRIMARY KEY (id, timestamp)) WITH CLUSTERING ORDER BY (timestamp DESC);
29
+
30
+ ## Fluentd.conf Configuration
31
+ <match cassandra.**>
32
+ type cassandra_driver # fluent output plugin file name (sans fluent_plugin_ prefix)
33
+ hosts 127.0.0.1 # comma delimited string of hosts
34
+
35
+ keyspace metrics # cassandra keyspace
36
+ column_family logs # cassandra column family
37
+
38
+ ttl 60 # cassandra ttl (optional, default is 0)
39
+
40
+ schema # cassandra column family schema (see example below)
41
+
42
+ pop_data_keys # pop values from the fluentd hash when storing it as json (optional, default is true)
43
+ json_column json # column where store all remaining data from fluentd (optional)
44
+ </match>
45
+
46
+ ### Schema example
47
+ # hash of hashes :column_damily_key => {:fluentd_record_key => :type_from_list}
48
+ # or :column_damily_key => :type_from_list
49
+ # then :fluentd_record_key will be the same as :column_damily_key
50
+ '{:id => {:ident => nil}, :timestamp => {:timestamp => :time}}'
51
+
52
+ Available mappings:
53
+ * :integer
54
+ * :string
55
+ * :timeuuid
56
+ * :time
57
+
58
+ All nil types will be recognized as string.
59
+
60
+ # Tests
61
+
62
+ TODO
data/Rakefile ADDED
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+
6
+ begin
7
+ Bundler.setup(:default, :development)
8
+ rescue Bundler::BundlerError => e
9
+ $stderr.puts e.message
10
+ $stderr.puts 'Run `bundle install` to install missing gems'
11
+ exit e.status_code
12
+ end
13
+
14
+ require 'rake'
15
+ require 'jeweler'
16
+
17
+ Jeweler::Tasks.new do |gem|
18
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
19
+ gem.name = 'fluent-plugin-xml-simple-parser'
20
+ gem.homepage = 'https://github.com/CSharpRU/fluent-plugin-xml-simple-parser'
21
+ gem.license = 'BSD-3-Clause'
22
+ gem.summary = 'Fluent parser for XML'
23
+ gem.description = 'Fluent parser for XML that just converts XML to fluentd record fields'
24
+ gem.email = 'c_sharp@mail.ru'
25
+ gem.authors = ['Yaroslav Lukyanov']
26
+ # dependencies defined in Gemfile
27
+ end
28
+
29
+ Jeweler::RubygemsDotOrgTasks.new
30
+
31
+ require 'rdoc/task'
32
+
33
+ Rake::RDocTask.new do |rdoc|
34
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
35
+
36
+ rdoc.rdoc_dir = 'rdoc'
37
+ rdoc.title = "fluent-plugin-xml-simple-parser #{version}"
38
+ rdoc.rdoc_files.include('README*')
39
+ rdoc.rdoc_files.include('lib/**/*.rb')
40
+ end
41
+
42
+ # Get spec rake tasks working in RSpec 2.0
43
+ require 'rspec/core/rake_task'
44
+
45
+ desc 'Default: run specs.'
46
+ task :default => :spec
47
+
48
+ desc 'Run specs'
49
+ RSpec::Core::RakeTask.new do |t|
50
+
51
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,69 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: fluent-plugin-cassandra-driver 1.0.0 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "fluent-plugin-cassandra-driver".freeze
9
+ s.version = "1.0.0"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Yaroslav Lukyanov".freeze]
14
+ s.date = "2016-11-12"
15
+ s.description = "Fluent output plugin for Cassandra via Datastax Ruby Driver for Apache Cassandra".freeze
16
+ s.email = "c_sharp@mail.ru".freeze
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".rspec",
23
+ ".simplecov",
24
+ "Gemfile",
25
+ "LICENSE.txt",
26
+ "README.md",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "fluent-plugin-cassandra-driver.gemspec",
30
+ "lib/fluent/plugin/out_cassandra_driver.rb",
31
+ "spec/spec.opts",
32
+ "spec/spec_helper.rb"
33
+ ]
34
+ s.homepage = "https://github.com/CSharpRU/fluent-plugin-cassandra-driver".freeze
35
+ s.licenses = ["BSD-3-Clause".freeze]
36
+ s.rubygems_version = "2.6.8".freeze
37
+ s.summary = "Fluent output plugin for Cassandra".freeze
38
+
39
+ if s.respond_to? :specification_version then
40
+ s.specification_version = 4
41
+
42
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<fluentd>.freeze, [">= 0.12.29"])
44
+ s.add_runtime_dependency(%q<cassandra-driver>.freeze, [">= 3.0.3"])
45
+ s.add_development_dependency(%q<rdoc>.freeze, [">= 3.12"])
46
+ s.add_development_dependency(%q<bundler>.freeze, [">= 1.0.0"])
47
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 1.8.4"])
48
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
49
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
50
+ else
51
+ s.add_dependency(%q<fluentd>.freeze, [">= 0.12.29"])
52
+ s.add_dependency(%q<cassandra-driver>.freeze, [">= 3.0.3"])
53
+ s.add_dependency(%q<rdoc>.freeze, [">= 3.12"])
54
+ s.add_dependency(%q<bundler>.freeze, [">= 1.0.0"])
55
+ s.add_dependency(%q<jeweler>.freeze, [">= 1.8.4"])
56
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
57
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
58
+ end
59
+ else
60
+ s.add_dependency(%q<fluentd>.freeze, [">= 0.12.29"])
61
+ s.add_dependency(%q<cassandra-driver>.freeze, [">= 3.0.3"])
62
+ s.add_dependency(%q<rdoc>.freeze, [">= 3.12"])
63
+ s.add_dependency(%q<bundler>.freeze, [">= 1.0.0"])
64
+ s.add_dependency(%q<jeweler>.freeze, [">= 1.8.4"])
65
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
66
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
67
+ end
68
+ end
69
+
@@ -0,0 +1,67 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: fluent-plugin-xml-parser 0.0.1 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "fluent-plugin-xml-parser".freeze
9
+ s.version = "0.0.1"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Yaroslav Lukyanov".freeze]
14
+ s.date = "2016-11-15"
15
+ s.description = "Fluent parser for XML that just converts XML to fluentd record fields".freeze
16
+ s.email = "c_sharp@mail.ru".freeze
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".rspec",
23
+ ".simplecov",
24
+ "Gemfile",
25
+ "LICENSE.txt",
26
+ "README.md",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "fluent-plugin-cassandra-driver.gemspec",
30
+ "lib/fluent/plugin/parser_xml.rb"
31
+ ]
32
+ s.homepage = "https://github.com/CSharpRU/fluent-plugin-xml-parser".freeze
33
+ s.licenses = ["BSD-3-Clause".freeze]
34
+ s.rubygems_version = "2.6.8".freeze
35
+ s.summary = "Fluent parser for XML".freeze
36
+
37
+ if s.respond_to? :specification_version then
38
+ s.specification_version = 4
39
+
40
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
41
+ s.add_runtime_dependency(%q<fluentd>.freeze, [">= 0.12.29"])
42
+ s.add_runtime_dependency(%q<nori>.freeze, [">= 2.6.0"])
43
+ s.add_development_dependency(%q<rdoc>.freeze, [">= 3.12"])
44
+ s.add_development_dependency(%q<bundler>.freeze, [">= 1.0.0"])
45
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 1.8.4"])
46
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
47
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
48
+ else
49
+ s.add_dependency(%q<fluentd>.freeze, [">= 0.12.29"])
50
+ s.add_dependency(%q<nori>.freeze, [">= 2.6.0"])
51
+ s.add_dependency(%q<rdoc>.freeze, [">= 3.12"])
52
+ s.add_dependency(%q<bundler>.freeze, [">= 1.0.0"])
53
+ s.add_dependency(%q<jeweler>.freeze, [">= 1.8.4"])
54
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
55
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
56
+ end
57
+ else
58
+ s.add_dependency(%q<fluentd>.freeze, [">= 0.12.29"])
59
+ s.add_dependency(%q<nori>.freeze, [">= 2.6.0"])
60
+ s.add_dependency(%q<rdoc>.freeze, [">= 3.12"])
61
+ s.add_dependency(%q<bundler>.freeze, [">= 1.0.0"])
62
+ s.add_dependency(%q<jeweler>.freeze, [">= 1.8.4"])
63
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
64
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
65
+ end
66
+ end
67
+
@@ -0,0 +1,25 @@
1
+ require 'nori'
2
+
3
+ module Fluent
4
+ module Plugin
5
+ class XmlParser < Parser
6
+ Fluent::Plugin.register_parser('parser_xml', self)
7
+
8
+ def configure(conf)
9
+ super
10
+
11
+ @parser = Nori.new
12
+ end
13
+
14
+ def parse(xml)
15
+ parsed = @parser.parse(xml)
16
+
17
+ if block_given?
18
+ yield nil, parsed
19
+ else
20
+ return nil, parsed
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,153 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fluent-plugin-xml-simple-parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yaroslav Lukyanov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fluentd
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.12.29
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.12.29
27
+ - !ruby/object:Gem::Dependency
28
+ name: nori
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.6.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 2.6.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '3.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '3.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeweler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.8.4
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.8.4
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Fluent parser for XML that just converts XML to fluentd record fields
112
+ email: c_sharp@mail.ru
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files:
116
+ - LICENSE.txt
117
+ - README.md
118
+ files:
119
+ - ".rspec"
120
+ - ".simplecov"
121
+ - Gemfile
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - VERSION
126
+ - fluent-plugin-cassandra-driver.gemspec
127
+ - fluent-plugin-xml-parser.gemspec
128
+ - lib/fluent/plugin/parser_xml.rb
129
+ homepage: https://github.com/CSharpRU/fluent-plugin-xml-simple-parser
130
+ licenses:
131
+ - BSD-3-Clause
132
+ metadata: {}
133
+ post_install_message:
134
+ rdoc_options: []
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ requirements: []
148
+ rubyforge_project:
149
+ rubygems_version: 2.6.8
150
+ signing_key:
151
+ specification_version: 4
152
+ summary: Fluent parser for XML
153
+ test_files: []