fluent-plugin-cassandra 0.0.1 → 0.0.2

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.
data/README.rdoc CHANGED
@@ -1,13 +1,14 @@
1
1
  = fluent-plugin-cassandra
2
2
 
3
- = MongoDB output plugin for Fluent
3
+ = Cassandra output plugin for Fluent
4
4
 
5
5
  == Configuratin
6
6
 
7
- <match **> # cassandra's key is tags + event.time.
7
+ <match cassandra.**> # cassandra's key is tags + event.time.
8
8
  type cassandra #
9
- keyspace Keyspace1 # keyspace
10
- columnfamily Standard1 # Columnfamily
9
+ localtime # set localtime for key
10
+ keyspace FluentdLoggers # keyspace
11
+ columnfamily EventLogger # Columnfamily
11
12
 
12
13
  # following attibutes are optional
13
14
  host localhost # cassandra's hostname. default localhost
@@ -20,9 +21,36 @@
20
21
  === More configuration
21
22
 
22
23
  - Create Keyspace
24
+
25
+ create keyspace FluentdLoggers
26
+ with strategy_options=[{replication_factor:1}]
27
+ and placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy';
28
+
29
+
23
30
  - Create Columnfamily
31
+ #example CF
32
+
33
+ use FluentdLoggers;
34
+
35
+ create column family EventLogger
36
+ with comparator = UTF8Type
37
+ and column_metadata = [{
38
+ column_name : tag,
39
+ validation_class: UTF8Type,
40
+ index_name : tag_idx,
41
+ index_type: KEYS},{
42
+ column_name : time,
43
+ validation_class : BytesType,
44
+ index_name : time_idx,
45
+ index_type: KEYS}
46
+ ];
47
+
24
48
  - etc
25
49
 
50
+ put plugin
51
+ cp -ip ${GEM PATHS}/gem/fluent-plugin-cassandra-0.0.2/lib/fluent/plugin/out_cassandra.rb /etc/fluent/plugin/.
52
+
53
+
26
54
  === Infer collection name
27
55
 
28
56
  Fluent tag and event.time is key in Cassandra.
data/Rakefile CHANGED
@@ -21,26 +21,28 @@ Jeweler::Tasks.new do |gem|
21
21
  gem.description = "Cassandra output plugin for Fluent event collector"
22
22
  gem.email = "tomitakazutaka@gmail.com"
23
23
  gem.authors = ["Kazutaka Tomita"]
24
- gem.add_dependency "fluent", "~> 0.9.14"
25
- gem.add_dependency "cassandra", "~> 0.12.1"
24
+ gem.version = '0.0.2'
25
+ gem.add_dependency("fluentd", "~> 0.10.0")
26
+ gem.add_dependency("cassandra", "~> 0.12.1")
27
+ gem.files = FileList['lib/fluent/plugin/out_cassandra.rb', '[A-Z]*'].to_a
28
+ gem.bindir = '/etc/fluent/plugin'
26
29
 
27
- # dependencies defined in Gemfile
28
30
  end
29
31
  Jeweler::RubygemsDotOrgTasks.new
30
32
 
31
33
  require 'rake/testtask'
32
34
  Rake::TestTask.new(:test) do |test|
33
- test.libs << 'lib' << 'test'
34
- test.pattern = 'test/**/test_*.rb'
35
- test.verbose = true
35
+ # test.libs << 'lib' << 'test'
36
+ # test.pattern = 'test/**/test_*.rb'
37
+ # test.verbose = true
36
38
  end
37
39
 
38
40
  require 'rcov/rcovtask'
39
41
  Rcov::RcovTask.new do |test|
40
- test.libs << 'test'
41
- test.pattern = 'test/**/test_*.rb'
42
- test.verbose = true
43
- test.rcov_opts << '--exclude "gems/*"'
42
+ # test.libs << 'test'
43
+ # test.pattern = 'test/**/test_*.rb'
44
+ # test.verbose = true
45
+ # test.rcov_opts << '--exclude "gems/*"'
44
46
  end
45
47
 
46
48
  task :default => :test
@@ -52,5 +54,4 @@ Rake::RDocTask.new do |rdoc|
52
54
  rdoc.rdoc_dir = 'rdoc'
53
55
  rdoc.title = "fluent-plugin-cassandra #{version}"
54
56
  rdoc.rdoc_files.include('README*')
55
- rdoc.rdoc_files.include('lib/fluent/plugin/*.rb')
56
57
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -3,6 +3,12 @@ module Fluent
3
3
 
4
4
  class CassandraOutput < BufferedOutput
5
5
  Fluent::Plugin.register_output('cassandra', self)
6
+ include SetTimeKeyMixin
7
+ include SetTagKeyMixin
8
+ config_set_default :include_time_key, true
9
+ config_set_default :include_tag_key, true
10
+ config_set_default :time_format, "%Y%m%d%H%M%S"
11
+
6
12
 
7
13
  def initialize
8
14
  super
@@ -13,8 +19,8 @@ class CassandraOutput < BufferedOutput
13
19
  def configure(conf)
14
20
  super
15
21
 
16
- raise ConfigError, "'Keyspace' parameter is required on file output" unless @keyspace = conf['keyspace']
17
- raise ConfigError, "'ColumnFamily' parameter is required on file output" unless @columnfamily = conf['columnfamily']
22
+ raise ConfigError, "'Keyspace' parameter is required on cassandra output" unless @keyspace = conf['keyspace']
23
+ raise ConfigError, "'ColumnFamily' parameter is required on cassandra output" unless @columnfamily = conf['columnfamily']
18
24
 
19
25
  @host = conf.has_key?('host') ? conf['host'] : 'localhost'
20
26
  @port = conf.has_key?('port') ? conf['port'] : 9160
@@ -29,20 +35,17 @@ class CassandraOutput < BufferedOutput
29
35
  super
30
36
  end
31
37
 
32
- def format(tag, event)
33
- [tag,event.time,event.record].to_msgpack
38
+ def format(tag, time,record)
39
+ record.to_msgpack
34
40
  end
35
41
 
36
42
  def write(chunk)
37
- chunk.open { |io|
38
- begin
39
- MessagePack::Unpacker.new(io).each { |record|
40
- c_key = record[0] + "_" + record[1].to_s
41
- @connection.insert(@columnfamily,c_key,record[2])
42
- }
43
- rescue EOFError
44
- # EOFError always occured when reached end of chunk.
45
- end
43
+ chunk.msgpack_each { |record|
44
+ @connection.insert(
45
+ @columnfamily,
46
+ record["tag"] + "_" + record["time"].to_s,
47
+ record
48
+ )
46
49
  }
47
50
  end
48
51
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-cassandra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kazutaka Tomita
9
9
  autorequire:
10
- bindir: bin
10
+ bindir: /etc/fluent/plugin
11
11
  cert_chain: []
12
- date: 2011-10-03 00:00:00.000000000Z
12
+ date: 2011-10-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &16887040 !ruby/object:Gem::Requirement
16
+ requirement: &24711020 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *16887040
24
+ version_requirements: *24711020
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &16886520 !ruby/object:Gem::Requirement
27
+ requirement: &24709860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *16886520
35
+ version_requirements: *24709860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &16886040 !ruby/object:Gem::Requirement
38
+ requirement: &24676540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *16886040
46
+ version_requirements: *24676540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &16885560 !ruby/object:Gem::Requirement
49
+ requirement: &24674980 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,21 +54,21 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *16885560
57
+ version_requirements: *24674980
58
58
  - !ruby/object:Gem::Dependency
59
- name: fluent
60
- requirement: &16885080 !ruby/object:Gem::Requirement
59
+ name: fluentd
60
+ requirement: &24673780 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
64
64
  - !ruby/object:Gem::Version
65
- version: 0.9.14
65
+ version: 0.10.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *16885080
68
+ version_requirements: *24673780
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cassandra
71
- requirement: &16884600 !ruby/object:Gem::Requirement
71
+ requirement: &24672460 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 0.12.1
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *16884600
79
+ version_requirements: *24672460
80
80
  description: Cassandra output plugin for Fluent event collector
81
81
  email: tomitakazutaka@gmail.com
82
82
  executables: []
@@ -85,14 +85,12 @@ extra_rdoc_files:
85
85
  - LICENSE.txt
86
86
  - README.rdoc
87
87
  files:
88
- - .document
89
88
  - Gemfile
90
89
  - Gemfile.lock
91
90
  - LICENSE.txt
92
91
  - README.rdoc
93
92
  - Rakefile
94
93
  - VERSION
95
- - fluent-plugin-cassandra.gemspec
96
94
  - lib/fluent/plugin/out_cassandra.rb
97
95
  homepage: http://github.com/tomitakazutaka/fluent-plugin-cassandra
98
96
  licenses:
@@ -109,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
107
  version: '0'
110
108
  segments:
111
109
  - 0
112
- hash: 3147957507486541088
110
+ hash: 1258677813083483526
113
111
  required_rubygems_version: !ruby/object:Gem::Requirement
114
112
  none: false
115
113
  requirements:
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
@@ -1,63 +0,0 @@
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
-
6
- Gem::Specification.new do |s|
7
- s.name = "fluent-plugin-cassandra"
8
- s.version = "0.0.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Kazutaka Tomita"]
12
- s.date = "2011-10-03"
13
- s.description = "Cassandra output plugin for Fluent event collector"
14
- s.email = "tomitakazutaka@gmail.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- "Gemfile",
22
- "Gemfile.lock",
23
- "LICENSE.txt",
24
- "README.rdoc",
25
- "Rakefile",
26
- "VERSION",
27
- "fluent-plugin-cassandra.gemspec",
28
- "lib/fluent/plugin/out_cassandra.rb"
29
- ]
30
- s.homepage = "http://github.com/tomitakazutaka/fluent-plugin-cassandra"
31
- s.licenses = ["MIT"]
32
- s.require_paths = ["lib"]
33
- s.rubygems_version = "1.8.10"
34
- s.summary = "Cassandra output plugin for Fluent event collector"
35
-
36
- if s.respond_to? :specification_version then
37
- s.specification_version = 3
38
-
39
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
40
- s.add_development_dependency(%q<shoulda>, [">= 0"])
41
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
42
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
43
- s.add_development_dependency(%q<rcov>, [">= 0"])
44
- s.add_runtime_dependency(%q<fluent>, ["~> 0.9.14"])
45
- s.add_runtime_dependency(%q<cassandra>, ["~> 0.12.1"])
46
- else
47
- s.add_dependency(%q<shoulda>, [">= 0"])
48
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
49
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
50
- s.add_dependency(%q<rcov>, [">= 0"])
51
- s.add_dependency(%q<fluent>, ["~> 0.9.14"])
52
- s.add_dependency(%q<cassandra>, ["~> 0.12.1"])
53
- end
54
- else
55
- s.add_dependency(%q<shoulda>, [">= 0"])
56
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
57
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
58
- s.add_dependency(%q<rcov>, [">= 0"])
59
- s.add_dependency(%q<fluent>, ["~> 0.9.14"])
60
- s.add_dependency(%q<cassandra>, ["~> 0.12.1"])
61
- end
62
- end
63
-