ffwd-kafka 0.1.1 → 0.1.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.
- checksums.yaml +7 -0
- data/lib/ffwd/plugin/kafka/partitioners.rb +9 -0
- data/lib/ffwd/plugin/kafka/routers.rb +26 -0
- data/lib/ffwd/plugin/kafka/version.rb +1 -1
- data/lib/ffwd/plugin/kafka.rb +30 -4
- metadata +15 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 84c4a7fb542e7d55261f72ee82b249d326fec812
|
4
|
+
data.tar.gz: 39bd2c697d87fcd716dd18b7ce62d0857b8c15b9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d36db430844b2ac92bbe38b3c95ebf2e8856d1480fbaf50add354f593dd3dfd20660ffd1e4a5dc63e080d89cf2f272cdd80af0c2cd2adb7495fd325695fc7735
|
7
|
+
data.tar.gz: 58e27c9e33728d566b53dfe5376bcae86ce0cadf228cd3c599220ccb0f26a18c95a739263b91f41c430ca16dc7d9bde7f3e9a0ceba54bcf99f59ee73194eb9eb
|
@@ -32,6 +32,15 @@ module FFWD::Plugin::Kafka
|
|
32
32
|
class AttributePartitioner
|
33
33
|
DEFAULT_ATTRIBUTE = :site
|
34
34
|
|
35
|
+
OPTIONS = [
|
36
|
+
FFWD::Plugin.option(
|
37
|
+
:attribute, :default => DEFAULT_ATTRIBUTE,
|
38
|
+
:help => [
|
39
|
+
"Attribute to use when the partitioner is set to :attribute."
|
40
|
+
]
|
41
|
+
),
|
42
|
+
]
|
43
|
+
|
35
44
|
def self.build opts
|
36
45
|
attr = opts[:attribute] || DEFAULT_ATTRIBUTE
|
37
46
|
new attr
|
@@ -13,6 +13,8 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
+
require 'ffwd/plugin'
|
17
|
+
|
16
18
|
module FFWD::Plugin::Kafka
|
17
19
|
# Use a custom attribute for partitioning.
|
18
20
|
class AttributeRouter
|
@@ -20,6 +22,30 @@ module FFWD::Plugin::Kafka
|
|
20
22
|
DEFAULT_EVENT_PATTERN = "events-%s"
|
21
23
|
DEFAULT_ATTRIBUTE = :site
|
22
24
|
|
25
|
+
OPTIONS = [
|
26
|
+
FFWD::Plugin.option(
|
27
|
+
:metric_pattern, :default => DEFAULT_METRIC_PATTERN,
|
28
|
+
:help => [
|
29
|
+
"Only used with :attribute router.",
|
30
|
+
"Metric pattern to use, expects one %s placeholder for the value of the specified attribute."
|
31
|
+
]
|
32
|
+
),
|
33
|
+
FFWD::Plugin.option(
|
34
|
+
:event_pattern, :default => DEFAULT_METRIC_PATTERN,
|
35
|
+
:help => [
|
36
|
+
"Only used with :attribute router.",
|
37
|
+
"Event pattern to use, expects one %s placeholder for the value of the specified attribute."
|
38
|
+
]
|
39
|
+
),
|
40
|
+
FFWD::Plugin.option(
|
41
|
+
:attribute, :default => DEFAULT_ATTRIBUTE,
|
42
|
+
:help => [
|
43
|
+
"Only used with :attribute router.",
|
44
|
+
"Attribute name to use in pattern when router is :attribute."
|
45
|
+
]
|
46
|
+
),
|
47
|
+
]
|
48
|
+
|
23
49
|
def self.build opts
|
24
50
|
metric_pattern = opts[:metric_pattern] || DEFAULT_METRIC_PATTERN
|
25
51
|
event_pattern = opts[:event_pattern] || DEFAULT_EVENT_PATTERN
|
data/lib/ffwd/plugin/kafka.rb
CHANGED
@@ -28,15 +28,41 @@ module FFWD::Plugin
|
|
28
28
|
include FFWD::Plugin
|
29
29
|
include FFWD::Logging
|
30
30
|
|
31
|
-
register_plugin "kafka"
|
32
|
-
|
33
31
|
DEFAULT_PRODUCER = "ffwd"
|
34
|
-
DEFAULT_ROUTING_METHOD = :attribute
|
35
|
-
DEFAULT_ROUTING_KEY = :site
|
36
32
|
DEFAULT_BROKERS = ["localhost:9092"]
|
37
33
|
DEFAULT_PARTITIONER = :host
|
38
34
|
DEFAULT_ROUTER = :attribute
|
39
35
|
|
36
|
+
register_plugin "kafka",
|
37
|
+
:description => "A plugin for the collectd binary protocol.",
|
38
|
+
:options => [
|
39
|
+
FFWD::Plugin.option(
|
40
|
+
:producer, :default => DEFAULT_PRODUCER,
|
41
|
+
:help => ["Name of the producer."]
|
42
|
+
),
|
43
|
+
FFWD::Plugin.option(
|
44
|
+
:port, :default => DEFAULT_BROKERS,
|
45
|
+
:help => ["Brokers to connect to."]
|
46
|
+
),
|
47
|
+
FFWD::Plugin.option(
|
48
|
+
:partitioner, :default => DEFAULT_PARTITIONER,
|
49
|
+
:help => [
|
50
|
+
"Partitioner to use, the partitioner decides what partition key is used for a specific message.",
|
51
|
+
":host - Base partition key of the host of the event/metric.",
|
52
|
+
":key - Base partition key of the key of the event/metric.",
|
53
|
+
":attribute - Base partition key of a specific attribute of the event/metric."
|
54
|
+
]
|
55
|
+
),
|
56
|
+
FFWD::Plugin.option(
|
57
|
+
:router, :default => DEFAULT_ROUTER,
|
58
|
+
:help => [
|
59
|
+
"Router to use, the router decides which topic to use for a specific message."
|
60
|
+
]
|
61
|
+
),
|
62
|
+
] +
|
63
|
+
FFWD::Plugin::Kafka::AttributePartitioner::OPTIONS +
|
64
|
+
FFWD::Plugin::Kafka::AttributeRouter::OPTIONS
|
65
|
+
|
40
66
|
def self.setup_output opts, core
|
41
67
|
producer = opts[:producer] || DEFAULT_PRODUCER
|
42
68
|
brokers = opts[:brokers] || DEFAULT_BROKERS
|
metadata
CHANGED
@@ -1,46 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffwd-kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- John-John Tedro
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: poseidon
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: ffwd
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
description:
|
@@ -50,35 +45,34 @@ executables: []
|
|
50
45
|
extensions: []
|
51
46
|
extra_rdoc_files: []
|
52
47
|
files:
|
53
|
-
- lib/ffwd/plugin/kafka.rb
|
54
|
-
- lib/ffwd/plugin/kafka/version.rb
|
48
|
+
- lib/ffwd/plugin/kafka/output.rb
|
55
49
|
- lib/ffwd/plugin/kafka/producer.rb
|
56
|
-
- lib/ffwd/plugin/kafka/partitioners.rb
|
57
50
|
- lib/ffwd/plugin/kafka/routers.rb
|
58
|
-
- lib/ffwd/plugin/kafka/
|
51
|
+
- lib/ffwd/plugin/kafka/version.rb
|
52
|
+
- lib/ffwd/plugin/kafka/partitioners.rb
|
53
|
+
- lib/ffwd/plugin/kafka.rb
|
59
54
|
homepage: https://github.com/spotify/ffwd
|
60
55
|
licenses:
|
61
56
|
- Apache 2.0
|
57
|
+
metadata: {}
|
62
58
|
post_install_message:
|
63
59
|
rdoc_options: []
|
64
60
|
require_paths:
|
65
61
|
- lib
|
66
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
63
|
requirements:
|
69
|
-
- -
|
64
|
+
- - '>='
|
70
65
|
- !ruby/object:Gem::Version
|
71
66
|
version: '0'
|
72
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
68
|
requirements:
|
75
|
-
- -
|
69
|
+
- - '>='
|
76
70
|
- !ruby/object:Gem::Version
|
77
71
|
version: '0'
|
78
72
|
requirements: []
|
79
73
|
rubyforge_project:
|
80
|
-
rubygems_version:
|
74
|
+
rubygems_version: 2.0.3
|
81
75
|
signing_key:
|
82
|
-
specification_version:
|
76
|
+
specification_version: 4
|
83
77
|
summary: Kafka support for FFWD.
|
84
78
|
test_files: []
|