fluent-plugin-xml-simple-parser 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.
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: []