sensu-plugins-kafka2 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 +7 -0
- data/CHANGELOG.md +24 -0
- data/LICENSE +22 -0
- data/README.md +20 -0
- data/bin/check-kafka-ping.rb +52 -0
- data/bin/check-topic.rb +152 -0
- data/bin/check-topics-name.rb +61 -0
- data/bin/metrics-kafka-http.rb +57 -0
- data/lib/sensu-plugins-kafka2.rb +2 -0
- data/lib/sensu-plugins-kafka2/common_kafka.rb +21 -0
- data/lib/sensu-plugins-kafka2/version.rb +9 -0
- metadata +273 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5293e6f3f72c886f60357c7ec6678ef2a10d51c7
|
4
|
+
data.tar.gz: 2adbaccff255d582e717dd39a44880cd77f7f61d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 82bddbf508eb6a0c7951dac80b3516873bd382ce595cf70e012d19732af8e983191d0eb6e2338c218ee21ab912266360fefcb746548626eb076c75a263d47e75
|
7
|
+
data.tar.gz: cc2f2f22af7625905e0caba931602695ba5994c73129d797216a8041a062b61361fc3b1319a9a58b67f33f26bc5786e35d7036e2a8cd3fdd989a2734c4bbd64f
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Change Log
|
2
|
+
This project adheres to [Semantic Versioning](http://semver.org/).
|
3
|
+
|
4
|
+
This CHANGELOG follows the format located [here](https://github.com/sensu-plugins/community/blob/master/HOW_WE_CHANGELOG.md)
|
5
|
+
|
6
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
### Breaking Changes
|
9
|
+
- renamed to `sensu-plugins-kafka2` to avoid namespace conflict per [this](https://github.com/obazoud/sensu-plugins-kafka/issues/21) issue (@majormoses)
|
10
|
+
|
11
|
+
### Added
|
12
|
+
- check-kafka-ping.rb(@yuri-zubov sponsored by Actility, https://www.actility.com)
|
13
|
+
- check-topic.rb(@yuri-zubov sponsored by Actility, https://www.actility.com)
|
14
|
+
- check-topics-name.rb(@yuri-zubov sponsored by Actility, https://www.actility.com)
|
15
|
+
- metrics-kafka-http.rb(@yuri-zubov sponsored by Actility, https://www.actility.com)
|
16
|
+
|
17
|
+
- Basic Skel to be used to make new plugin repo setup easier.
|
18
|
+
- PR template
|
19
|
+
- Rubocop config
|
20
|
+
- basic testing setup
|
21
|
+
- removing EOL versions of ruby
|
22
|
+
- patching for any known CVEs
|
23
|
+
|
24
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-kafka/compare/d4eebcfed091899571e21c0e433cceb3e386d2c7...HEAD
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Sensu Community Plugins
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
22
|
+
|
data/README.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
## Sensu-Plugins-kafka2
|
2
|
+
|
3
|
+
[](https://travis-ci.org/sensu-plugins/sensu-plugins-kafka2)
|
4
|
+
[](http://badge.fury.io/rb/sensu-plugins-kafka2)
|
5
|
+
[](https://gemnasium.com/sensu-plugins/sensu-plugins-skel)
|
6
|
+
[](https://slack.sensu.io/badge)
|
7
|
+
|
8
|
+
## Functionality
|
9
|
+
|
10
|
+
## Files
|
11
|
+
|
12
|
+
## Usage
|
13
|
+
|
14
|
+
## Installation
|
15
|
+
|
16
|
+
[Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
|
17
|
+
|
18
|
+
## Notes
|
19
|
+
|
20
|
+
Requires a c compiler to install see `test/bootstrap.sh` to see an example of installing it
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-kafka-ping
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# check-kafka-ping get Kafka overall status
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# UP/DOWN
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: rest-clien
|
16
|
+
#
|
17
|
+
# USAGE:
|
18
|
+
#
|
19
|
+
# NOTES:
|
20
|
+
# Depends on https://github.com/arnobroekhof/kafka-http-metrics-reporter
|
21
|
+
#
|
22
|
+
# LICENSE:
|
23
|
+
# Zubov Yuri <yury.zubau@gmail.com> sponsored by Actility, https://www.actility.com
|
24
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
25
|
+
# for details.
|
26
|
+
#
|
27
|
+
|
28
|
+
require 'sensu-plugin/check/cli'
|
29
|
+
require 'rest-client'
|
30
|
+
require 'json'
|
31
|
+
require 'sensu-plugins-kafka'
|
32
|
+
|
33
|
+
class CheckKafkaPing < Sensu::Plugin::Check::CLI
|
34
|
+
include CommonKafka
|
35
|
+
|
36
|
+
option :endpoint,
|
37
|
+
short: '-p ENDPOINT',
|
38
|
+
long: '--endpoint ENDPOINT',
|
39
|
+
description: 'kafka.http.metrics Endpoint',
|
40
|
+
default: 'http://localhost:8897/api/ping'
|
41
|
+
|
42
|
+
def run
|
43
|
+
result = request
|
44
|
+
if result.to_s.strip == 'pong'
|
45
|
+
ok 'Kafka is UP'
|
46
|
+
elsif result == 'DOWN'
|
47
|
+
warning 'Kafka is DOWN'
|
48
|
+
end
|
49
|
+
rescue StandardError => e
|
50
|
+
critical e.message
|
51
|
+
end
|
52
|
+
end
|
data/bin/check-topic.rb
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-topic
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# This plugin checks topic properties.
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# plain-text
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: sensu-plugin
|
16
|
+
# gem: zookeeper
|
17
|
+
#
|
18
|
+
# USAGE:
|
19
|
+
# ./check-topic
|
20
|
+
#
|
21
|
+
# NOTES:
|
22
|
+
#
|
23
|
+
# LICENSE:
|
24
|
+
# Olivier Bazoud
|
25
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
26
|
+
# for details.
|
27
|
+
#
|
28
|
+
|
29
|
+
require 'sensu-plugin/check/cli'
|
30
|
+
require 'json'
|
31
|
+
require 'zookeeper'
|
32
|
+
|
33
|
+
class TopicsCheck < Sensu::Plugin::Check::CLI
|
34
|
+
option :zookeeper,
|
35
|
+
description: 'ZooKeeper connect string (host:port,..)',
|
36
|
+
short: '-z ZOOKEEPER',
|
37
|
+
long: '--zookeeper ZOOKEEPER',
|
38
|
+
default: 'localhost:2181',
|
39
|
+
required: true
|
40
|
+
|
41
|
+
option :name,
|
42
|
+
description: 'Topic name',
|
43
|
+
short: '-n TOPIC_NAME',
|
44
|
+
long: '--name TOPIC_NAME',
|
45
|
+
required: true
|
46
|
+
|
47
|
+
option :partitions,
|
48
|
+
description: 'Partitions',
|
49
|
+
short: '-p PARTITIONS_COUNT',
|
50
|
+
long: '--partitions TOPIC_NAME',
|
51
|
+
proc: proc(&:to_i)
|
52
|
+
|
53
|
+
option :replication_factor,
|
54
|
+
description: 'Replication factor',
|
55
|
+
short: '-r REPLICATION_FACTOR',
|
56
|
+
long: '--replication-factor REPLICATION_FACTOR',
|
57
|
+
proc: proc(&:to_i)
|
58
|
+
|
59
|
+
option :configs,
|
60
|
+
description: 'Topic configurations',
|
61
|
+
short: '-c CONFIG',
|
62
|
+
long: '--configs CONFIG',
|
63
|
+
proc: proc { |a| JSON.parse(a) }
|
64
|
+
|
65
|
+
option :replicas,
|
66
|
+
description: 'Check replicats',
|
67
|
+
short: '-a',
|
68
|
+
long: '--replicas',
|
69
|
+
default: false,
|
70
|
+
boolean: false
|
71
|
+
|
72
|
+
option :leader,
|
73
|
+
description: 'Check leader',
|
74
|
+
short: '-l',
|
75
|
+
long: '--leader',
|
76
|
+
default: false,
|
77
|
+
boolean: false
|
78
|
+
|
79
|
+
def replicas_check(partitions, brokers)
|
80
|
+
partitions.each do |num, replica|
|
81
|
+
next if (replica - brokers).empty?
|
82
|
+
critical "Topic '#{config[:name]}', partition #{num}: unknown replica #{replica - brokers}"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def leader_check(partitions, brokers, zookeeper)
|
87
|
+
partitions.each do |num, replica|
|
88
|
+
state_json = zookeeper.get(path: "/brokers/topics/#{config[:name]}/partitions/#{num}/state")[:data]
|
89
|
+
state = JSON.parse(state_json)
|
90
|
+
unless brokers.include? state['leader']
|
91
|
+
critical "Topic '#{config[:name]}', partition #{num}: unknown leader #{state['leader']}"
|
92
|
+
end
|
93
|
+
unless replica[0] == state['leader']
|
94
|
+
critical "Topic '#{config[:name]}', partition #{num}: preferred replica is not #{replica[0]}"
|
95
|
+
end
|
96
|
+
unless (replica - state['isr']).empty? && (state['isr'] - replica).empty?
|
97
|
+
critical "Topic '#{config[:name]}', partition #{num}: isr is not consistent"
|
98
|
+
end
|
99
|
+
unless (state['isr'] - brokers).empty?
|
100
|
+
critical "Topic '#{config[:name]}', partition #{num}: unknown isr #{state['isr'] - brokers}"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def run
|
106
|
+
z = Zookeeper.new(config[:zookeeper])
|
107
|
+
|
108
|
+
topics = z.get_children(path: '/brokers/topics')[:children].sort
|
109
|
+
|
110
|
+
critical "Topic '#{config[:name]}' not found" unless topics.include? config[:name]
|
111
|
+
|
112
|
+
if config.key?(:partitions) || config.key?(:replication_factor)
|
113
|
+
brokers = z.get_children(path: '/brokers/ids')[:children].map(&:to_i)
|
114
|
+
partitions_data = z.get(path: "/brokers/topics/#{config[:name]}")[:data]
|
115
|
+
partitions = JSON.parse(partitions_data)['partitions']
|
116
|
+
if config.key?(:partitions) && partitions.size != config[:partitions]
|
117
|
+
critical "Topic '#{config[:name]}' has #{partitions.size} partitions, expecting #{config[:partitions]}"
|
118
|
+
end
|
119
|
+
|
120
|
+
if config.key?(:replication_factor)
|
121
|
+
min = partitions.min_by { |_, b| b.size }[1].length
|
122
|
+
max = partitions.max_by { |_, b| b.size }[1].length
|
123
|
+
if config[:replication_factor] != min || min != max
|
124
|
+
critical "Topic '#{config[:name]}' RF is between #{min} and #{max}, expecting #{config[:replication_factor]}"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
if config[:replicas]
|
129
|
+
replicas_check(partitions, brokers)
|
130
|
+
end
|
131
|
+
|
132
|
+
if config[:leader]
|
133
|
+
leader_check(partitions, brokers, z)
|
134
|
+
end
|
135
|
+
|
136
|
+
if config.key?(:configs)
|
137
|
+
config_data = z.get(path: "/config/topics/#{config[:name]}")[:data]
|
138
|
+
configs = JSON.parse(config_data)['config']
|
139
|
+
config[:configs].each do |k, v|
|
140
|
+
if !configs.key?(k) || configs[k].to_s != v.to_s
|
141
|
+
critical "Topic '#{config[:name]}': config #{k} = #{v}, expecting #{configs[k]}"
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
147
|
+
ok
|
148
|
+
rescue => e
|
149
|
+
puts "Error: #{e.backtrace}"
|
150
|
+
critical "Error: #{e}"
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-topics-name
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# This plugin checks topic's name.
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# plain-text
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: sensu-plugin
|
16
|
+
# gem: zookeeper
|
17
|
+
#
|
18
|
+
# USAGE:
|
19
|
+
# ./check-topics-name
|
20
|
+
#
|
21
|
+
# NOTES:
|
22
|
+
#
|
23
|
+
# LICENSE:
|
24
|
+
# Olivier Bazoud
|
25
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
26
|
+
# for details.
|
27
|
+
#
|
28
|
+
|
29
|
+
require 'sensu-plugin/check/cli'
|
30
|
+
require 'json'
|
31
|
+
require 'zookeeper'
|
32
|
+
|
33
|
+
class TopicsCheck < Sensu::Plugin::Check::CLI
|
34
|
+
option :zookeeper,
|
35
|
+
description: 'ZooKeeper connect string (host:port,..)',
|
36
|
+
short: '-z ZOOKEEPER',
|
37
|
+
long: '--zookeeper ZOOKEEPER',
|
38
|
+
default: 'localhost:2181',
|
39
|
+
required: true
|
40
|
+
|
41
|
+
option :name,
|
42
|
+
description: 'Topic name',
|
43
|
+
short: '-n TOPIC_NAME',
|
44
|
+
long: '--name TOPIC_NAME',
|
45
|
+
proc: proc { |a| a.split(',') },
|
46
|
+
required: true
|
47
|
+
|
48
|
+
def run
|
49
|
+
z = Zookeeper.new(config[:zookeeper])
|
50
|
+
|
51
|
+
topics = z.get_children(path: '/brokers/topics')[:children].sort
|
52
|
+
|
53
|
+
critical "Topics '#{config[:name] - topics}' not found" unless (config[:name] - topics).empty?
|
54
|
+
warning "Topics '#{topics - config[:name]}' not checked" unless (topics - config[:name]).empty?
|
55
|
+
|
56
|
+
ok
|
57
|
+
rescue => e
|
58
|
+
puts "Error: #{e.backtrace}"
|
59
|
+
critical "Error: #{e}"
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# metrics-kafka-http
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# metrics-kafka-http get metrics from Kafka
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# metric-data
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: rest-clien
|
16
|
+
#
|
17
|
+
# USAGE:
|
18
|
+
#
|
19
|
+
#
|
20
|
+
# NOTES:
|
21
|
+
# Depends on https://github.com/arnobroekhof/kafka-http-metrics-reporter
|
22
|
+
#
|
23
|
+
# LICENSE:
|
24
|
+
# Zubov Yuri <yury.zubau@gmail.com> sponsored by Actility, https://www.actility.com
|
25
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
26
|
+
# for details.
|
27
|
+
#
|
28
|
+
|
29
|
+
require 'sensu-plugin/metric/cli'
|
30
|
+
require 'rest-client'
|
31
|
+
require 'json'
|
32
|
+
require 'sensu-plugins-kafka'
|
33
|
+
|
34
|
+
class MetricsKafkaHttp < Sensu::Plugin::Metric::CLI::Generic
|
35
|
+
include CommonKafka
|
36
|
+
option :endpoint,
|
37
|
+
short: '-p ENDPOINT',
|
38
|
+
long: '--endpoint ENDPOINT',
|
39
|
+
description: 'kafka.http.metrics Endpoint',
|
40
|
+
default: 'http://localhost:8897/api/metrics'
|
41
|
+
|
42
|
+
option :scheme,
|
43
|
+
description: 'Metric naming scheme, text to prepend to metric',
|
44
|
+
short: '-S SCHEME',
|
45
|
+
long: '--scheme SCHEME',
|
46
|
+
default: "#{Socket.gethostname}.kafka"
|
47
|
+
|
48
|
+
def metrics
|
49
|
+
response = request
|
50
|
+
::JSON.parse(response)
|
51
|
+
end
|
52
|
+
|
53
|
+
def run
|
54
|
+
print_hash(metrics)
|
55
|
+
ok
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module CommonKafka2
|
2
|
+
def request
|
3
|
+
RestClient::Request.execute(
|
4
|
+
method: :get,
|
5
|
+
url: config[:endpoint]
|
6
|
+
)
|
7
|
+
end
|
8
|
+
|
9
|
+
def print_hash(hash, path = '')
|
10
|
+
hash.each do |key, value|
|
11
|
+
next if %w[unit event_type type].include?(key)
|
12
|
+
new_path = "#{path}.#{key}"
|
13
|
+
if value.is_a? Hash
|
14
|
+
print_hash(value, new_path)
|
15
|
+
else
|
16
|
+
output metric_name: "#{config[:scheme]}#{new_path}", value: value
|
17
|
+
end
|
18
|
+
end
|
19
|
+
false
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,273 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sensu-plugins-kafka2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sensu-Plugins and contributors
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sensu-plugin
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.4'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: zookeeper
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.4'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.4'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rest-client
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
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.15'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.15'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: github-markup
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.3'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: kitchen-docker
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.6'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.6'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: kitchen-localhost
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.3'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.3'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.10'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.10'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '12.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '12.0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: redcarpet
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.2'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3.2'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.4'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.4'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.49.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.49.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: serverspec
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 2.36.1
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 2.36.1
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: test-kitchen
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '1.6'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '1.6'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: yard
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 0.9.11
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 0.9.11
|
223
|
+
description: Sensu kafka plugins
|
224
|
+
email: "<sensu-users@googlegroups.com>"
|
225
|
+
executables:
|
226
|
+
- check-kafka-ping.rb
|
227
|
+
- check-topic.rb
|
228
|
+
- check-topics-name.rb
|
229
|
+
- metrics-kafka-http.rb
|
230
|
+
extensions: []
|
231
|
+
extra_rdoc_files: []
|
232
|
+
files:
|
233
|
+
- CHANGELOG.md
|
234
|
+
- LICENSE
|
235
|
+
- README.md
|
236
|
+
- bin/check-kafka-ping.rb
|
237
|
+
- bin/check-topic.rb
|
238
|
+
- bin/check-topics-name.rb
|
239
|
+
- bin/metrics-kafka-http.rb
|
240
|
+
- lib/sensu-plugins-kafka2.rb
|
241
|
+
- lib/sensu-plugins-kafka2/common_kafka.rb
|
242
|
+
- lib/sensu-plugins-kafka2/version.rb
|
243
|
+
homepage: https://github.com/sensu-plugins/sensu-plugins-kafka
|
244
|
+
licenses:
|
245
|
+
- MIT
|
246
|
+
metadata:
|
247
|
+
maintainer: sensu-plugin
|
248
|
+
development_status: active
|
249
|
+
production_status: unstable - testing recommended
|
250
|
+
release_draft: 'false'
|
251
|
+
release_prerelease: 'false'
|
252
|
+
post_install_message: You can use the embedded Ruby by setting EMBEDDED_RUBY=true
|
253
|
+
in /etc/default/sensu
|
254
|
+
rdoc_options: []
|
255
|
+
require_paths:
|
256
|
+
- lib
|
257
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - ">="
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: 2.3.0
|
262
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
263
|
+
requirements:
|
264
|
+
- - ">="
|
265
|
+
- !ruby/object:Gem::Version
|
266
|
+
version: '0'
|
267
|
+
requirements: []
|
268
|
+
rubyforge_project:
|
269
|
+
rubygems_version: 2.6.11
|
270
|
+
signing_key:
|
271
|
+
specification_version: 4
|
272
|
+
summary: Sensu plugins for kafka
|
273
|
+
test_files: []
|