sensu-plugins-docker 0.0.4 → 1.0.0
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 +4 -4
- data/CHANGELOG.md +28 -7
- data/README.md +4 -3
- data/bin/check-container-logs.rb +136 -0
- data/bin/check-container.rb +27 -21
- data/bin/check-docker-container.rb +44 -26
- data/bin/metrics-docker-container.rb +9 -2
- data/bin/metrics-docker-stats.rb +10 -10
- data/lib/sensu-plugins-docker/client_helpers.rb +18 -0
- data/lib/sensu-plugins-docker/version.rb +2 -2
- metadata +20 -34
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdd8b18ca5f1f21fdb938571b8f4f530a1f8daaa
|
4
|
+
data.tar.gz: 1dd8364c04b0c3ac9538a0d6f2145608204981bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d94f617e811e3cb122e047dccb7eba2b3769f4197827db89bb05424c098d0b0f137c8b9879a2673dca48bf53cba6287556b4211267a55f724355738247b4091
|
7
|
+
data.tar.gz: 4ef39a0eb65a4420e08de03a5cf7345c1b39ba4c4b636b52c348705ab05d762a93466ef3ed78b2f430843d8b8d0433ba19112f580ab5e93e91b8b34cb2d203b7
|
data/CHANGELOG.md
CHANGED
@@ -3,7 +3,24 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
3
3
|
|
4
4
|
This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
|
5
5
|
|
6
|
-
## Unreleased
|
6
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
## 1.0.0 - 2016-05-24
|
9
|
+
Note: this release changes how connections are made to the Docker API and also
|
10
|
+
changes some options. Review your check commands before deploying this version.
|
11
|
+
|
12
|
+
### Added
|
13
|
+
- Added check-container-logs.rb to check docker logs for matching strings
|
14
|
+
- Support for Ruby 2.3.0
|
15
|
+
- metrics-docker-container.rb: add option to override the default path to cgroup.proc
|
16
|
+
|
17
|
+
### Removed
|
18
|
+
- Support for Ruby 1.9.3
|
19
|
+
|
20
|
+
### Changed
|
21
|
+
- check-docker-container.rb: output the number of running containers
|
22
|
+
- Refactor to connect to the Docker API socket directly instead of using the `docker` or `docker-api` gems
|
23
|
+
- Update to rubocop 0.40 and cleanup
|
7
24
|
|
8
25
|
## [0.0.4] - 2015-08-10
|
9
26
|
### Changed
|
@@ -14,15 +31,19 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
14
31
|
### Changed
|
15
32
|
- updated sensu-plugin gem to 1.2.0
|
16
33
|
|
17
|
-
## 0.0.1 - 2015-04-30
|
18
|
-
|
19
|
-
### Added
|
20
|
-
- initial release
|
21
|
-
|
22
34
|
## [0.0.2] - 2015-06-02
|
23
|
-
|
24
35
|
### Fixed
|
25
36
|
- added binstubs
|
26
37
|
|
27
38
|
### Changed
|
28
39
|
- removed cruft from /lib
|
40
|
+
|
41
|
+
## 0.0.1 - 2015-04-30
|
42
|
+
### Added
|
43
|
+
- initial release
|
44
|
+
|
45
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-docker/compare/1.0.0...HEAD
|
46
|
+
[1.0.0]: https://github.com/sensu-plugins/sensu-plugins-docker/compare/0.0.4...1.0.0
|
47
|
+
[0.0.4]: https://github.com/sensu-plugins/sensu-plugins-docker/compare/0.0.3...0.0.4
|
48
|
+
[0.0.3]: https://github.com/sensu-plugins/sensu-plugins-docker/compare/0.0.2...0.0.3
|
49
|
+
[0.0.2]: https://github.com/sensu-plugins/sensu-plugins-docker/compare/0.0.1...0.0.2
|
data/README.md
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
## Sensu-Plugins-docker
|
2
2
|
|
3
|
-
[
|
3
|
+
[](https://travis-ci.org/sensu-plugins/sensu-plugins-docker)
|
4
4
|
[](http://badge.fury.io/rb/sensu-plugins-docker)
|
5
5
|
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-docker)
|
6
6
|
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-docker)
|
7
7
|
[](https://gemnasium.com/sensu-plugins/sensu-plugins-docker)
|
8
|
-
[ ](https://codeship.com/projects/81436)
|
9
8
|
|
10
9
|
## Functionality
|
11
10
|
|
12
11
|
## Files
|
13
|
-
* check-
|
12
|
+
* check-container.rb
|
13
|
+
* check-container-logs.rb
|
14
14
|
* check-docker-container.rb
|
15
15
|
* metrics-docker-container.rb
|
16
|
+
* metrics-docker-stats.rb
|
16
17
|
|
17
18
|
## Usage
|
18
19
|
|
@@ -0,0 +1,136 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-container-logs
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# Checks docker logs for specified strings
|
7
|
+
# with the option to ignore lines if they contain specified substrings.
|
8
|
+
#
|
9
|
+
# OUTPUT:
|
10
|
+
# plain text
|
11
|
+
#
|
12
|
+
# PLATFORMS:
|
13
|
+
# Linux
|
14
|
+
#
|
15
|
+
# DEPENDENCIES:
|
16
|
+
# gem: sensu-plugin
|
17
|
+
# gem: net_http_unix
|
18
|
+
#
|
19
|
+
# USAGE:
|
20
|
+
# check-container-logs.rb -H /tmp/docker.sock -n logspout -r 'problem sending' -r 'i/o timeout' -i 'Remark:' -i 'The configuration is'
|
21
|
+
# => 1 container running = OK
|
22
|
+
# => 4 container running = CRITICAL
|
23
|
+
#
|
24
|
+
# NOTES:
|
25
|
+
# The API parameter required to use the limited lookback (-t) was introduced
|
26
|
+
# the Docker server API version 1.19. This check may still work on older API
|
27
|
+
# versions if you don't want to limit the timestamps of logs.
|
28
|
+
#
|
29
|
+
# LICENSE:
|
30
|
+
# Author: Nathan Newman <newmannh@gmail.com>, Kel Cecil <kelcecil@praisechaos.com>
|
31
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
32
|
+
# for details.
|
33
|
+
#
|
34
|
+
|
35
|
+
require 'sensu-plugin/check/cli'
|
36
|
+
require 'sensu-plugins-docker/client_helpers'
|
37
|
+
|
38
|
+
class ContainerLogChecker < Sensu::Plugin::Check::CLI
|
39
|
+
option :docker_host,
|
40
|
+
description: 'location of docker api: host:port or /path/to/docker.sock',
|
41
|
+
short: '-H DOCKER_HOST',
|
42
|
+
long: '--docker-host DOCKER_HOST',
|
43
|
+
default: '127.0.0.1:2375'
|
44
|
+
|
45
|
+
option :container,
|
46
|
+
description: 'name of container',
|
47
|
+
short: '-n CONTAINER',
|
48
|
+
long: '--container-name CONTAINER',
|
49
|
+
required: true
|
50
|
+
|
51
|
+
option :red_flags,
|
52
|
+
description: 'substring whose presence (case-insensitive by default) in a log line indicates an error; can be used multiple t
|
53
|
+
imes',
|
54
|
+
short: '-r "error occurred" -r "problem encountered" -r "error status"',
|
55
|
+
long: '--red-flag "error occurred" --red-flag "problem encountered" --red-flag "error status"',
|
56
|
+
default: [],
|
57
|
+
proc: proc { |flag| (@options[:red_flags][:accumulated] ||= []).push(flag) }
|
58
|
+
|
59
|
+
option :ignore_list,
|
60
|
+
description: 'substring whose presence (case-insensitive by default) in a log line indicates the line should be ignored; can
|
61
|
+
be used multiple times',
|
62
|
+
short: '-i "configuration:" -i "# Remark:"',
|
63
|
+
long: '--ignore-lines-with "configuration:" --ignore-lines-with "# remark:"',
|
64
|
+
default: [],
|
65
|
+
proc: proc { |flag| (@options[:ignore_list][:accumulated] ||= []).push(flag) }
|
66
|
+
|
67
|
+
option :case_sensitive,
|
68
|
+
description: 'indicates all red_flag and ignore_list substring matching should be case-sensitive instead of the default case-
|
69
|
+
insensitive',
|
70
|
+
short: '-c',
|
71
|
+
long: '--case-sensitive',
|
72
|
+
boolean: true
|
73
|
+
|
74
|
+
option :hours_ago,
|
75
|
+
description: 'Amount of time in hours to look back for log strings',
|
76
|
+
short: '-t HOURS',
|
77
|
+
long: '--hours-ago HOURS',
|
78
|
+
required: false
|
79
|
+
|
80
|
+
def calculate_timestamp(hours)
|
81
|
+
seconds_ago = hours.to_i * 3600
|
82
|
+
(Time.now - seconds_ago).to_i
|
83
|
+
end
|
84
|
+
|
85
|
+
def process_docker_logs(container_name)
|
86
|
+
client = create_docker_client
|
87
|
+
path = "/containers/#{container_name}/logs?stdout=true&stderr=true"
|
88
|
+
if config.key? :hours_ago
|
89
|
+
path = "#{path}&since=#{calculate_timestamp config[:hours_ago]}"
|
90
|
+
end
|
91
|
+
req = Net::HTTP::Get.new path
|
92
|
+
|
93
|
+
client.request req do |response|
|
94
|
+
response.read_body do |chunk|
|
95
|
+
yield remove_headers chunk
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def remove_headers(raw_logs)
|
101
|
+
lines = raw_logs.split("\n")
|
102
|
+
lines.map! { |line| line.byteslice(8, line.bytesize) }
|
103
|
+
lines.join("\n")
|
104
|
+
end
|
105
|
+
|
106
|
+
def includes_any?(str, array_of_substrings)
|
107
|
+
array_of_substrings.each do |substring|
|
108
|
+
return true if str.include? substring
|
109
|
+
end
|
110
|
+
false
|
111
|
+
end
|
112
|
+
|
113
|
+
def detect_problem(logs)
|
114
|
+
whiteflags = config[:ignore_list]
|
115
|
+
redflags = config[:red_flags]
|
116
|
+
unless config[:case_sensitive]
|
117
|
+
logs = logs.downcase
|
118
|
+
whiteflags.map!(&:downcase)
|
119
|
+
redflags.map!(&:downcase)
|
120
|
+
end
|
121
|
+
|
122
|
+
logs.split("\n").each do |line|
|
123
|
+
return line if !includes_any?(line, whiteflags) && includes_any?(line, redflags)
|
124
|
+
end
|
125
|
+
nil
|
126
|
+
end
|
127
|
+
|
128
|
+
def run
|
129
|
+
container = config[:container]
|
130
|
+
process_docker_logs(container) do |log_chunk|
|
131
|
+
problem = detect_problem log_chunk
|
132
|
+
critical "#{container} container logs indicate problem: '#{problem}'." unless problem.nil?
|
133
|
+
end
|
134
|
+
ok "No errors detected from #{container} container logs."
|
135
|
+
end
|
136
|
+
end
|
data/bin/check-container.rb
CHANGED
@@ -14,7 +14,6 @@
|
|
14
14
|
#
|
15
15
|
# DEPENDENCIES:
|
16
16
|
# gem: sensu-plugin
|
17
|
-
# gem: docker
|
18
17
|
#
|
19
18
|
# USAGE:
|
20
19
|
# check-docker-container.rb c92d402a5d14
|
@@ -37,33 +36,40 @@
|
|
37
36
|
#
|
38
37
|
|
39
38
|
require 'sensu-plugin/check/cli'
|
40
|
-
require 'docker'
|
39
|
+
require 'sensu-plugins-docker/client_helpers'
|
40
|
+
require 'json'
|
41
41
|
|
42
42
|
#
|
43
|
-
# Check Docker
|
43
|
+
# Check Docker Container
|
44
44
|
#
|
45
45
|
class CheckDockerContainer < Sensu::Plugin::Check::CLI
|
46
|
-
option :
|
47
|
-
short: '-
|
46
|
+
option :docker_host,
|
47
|
+
short: '-h DOCKER_HOST',
|
48
48
|
long: '--host DOCKER_HOST',
|
49
|
-
default: '
|
49
|
+
default: '127.0.0.1:2375'
|
50
|
+
option :container,
|
51
|
+
short: '-c CONTAINER',
|
52
|
+
long: '--container CONTAINER',
|
53
|
+
required: true
|
50
54
|
|
51
|
-
def run
|
52
|
-
|
55
|
+
def run
|
56
|
+
client = create_docker_client
|
57
|
+
path = "/containers/#{config[:container]}/json"
|
58
|
+
req = Net::HTTP::Get.new path
|
59
|
+
begin
|
60
|
+
response = client.request(req)
|
61
|
+
if response.body.include? 'no such id'
|
62
|
+
critical "#{config[:container]} is not running on #{config[:docker_host]}"
|
63
|
+
end
|
53
64
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
65
|
+
container_info = JSON.parse(response.body)
|
66
|
+
if container_info['State']['Status'] == 'running'
|
67
|
+
ok "#{config[:container]} is running on #{config[:docker_host]}."
|
68
|
+
end
|
69
|
+
rescue JSON::ParserError => e
|
70
|
+
critical "JSON Error: #{e.inspect}"
|
71
|
+
rescue => e
|
72
|
+
warning "Error: #{e.inspect}"
|
61
73
|
end
|
62
|
-
rescue Docker::Error::NotFoundError
|
63
|
-
critical "#{id} is not running on the host"
|
64
|
-
rescue Excon::Errors::SocketError
|
65
|
-
warning 'unable to connect to Docker'
|
66
|
-
rescue => e
|
67
|
-
warning "unknown error #{e.inspect}"
|
68
74
|
end
|
69
75
|
end
|
@@ -13,8 +13,7 @@
|
|
13
13
|
#
|
14
14
|
# DEPENDENCIES:
|
15
15
|
# gem: sensu-plugin
|
16
|
-
# gem:
|
17
|
-
# gem: docker-api
|
16
|
+
# gem: net_http_unix
|
18
17
|
#
|
19
18
|
# USAGE:
|
20
19
|
# check-docker-container.rb -w 3 -c 3
|
@@ -30,62 +29,81 @@
|
|
30
29
|
#
|
31
30
|
|
32
31
|
require 'sensu-plugin/check/cli'
|
33
|
-
require 'docker'
|
34
|
-
|
32
|
+
require 'sensu-plugins-docker/client_helpers'
|
33
|
+
require 'json'
|
35
34
|
#
|
36
35
|
# Check Docker Conatiners
|
37
36
|
#
|
38
37
|
class CheckDockerContainers < Sensu::Plugin::Check::CLI
|
39
|
-
option :
|
40
|
-
short: '-
|
41
|
-
|
38
|
+
option :docker_host,
|
39
|
+
short: '-h docker_host',
|
40
|
+
long: '--host DOCKER_HOST',
|
41
|
+
default: '127.0.0.1:2375'
|
42
42
|
|
43
43
|
option :warn_over,
|
44
|
-
short: '-
|
44
|
+
short: '-W N',
|
45
45
|
long: '--warn-over N',
|
46
46
|
description: 'Trigger a warning if over a number',
|
47
47
|
proc: proc(&:to_i)
|
48
48
|
|
49
49
|
option :crit_over,
|
50
|
-
short: '-
|
50
|
+
short: '-C N',
|
51
51
|
long: '--critical-over N',
|
52
52
|
description: 'Trigger a critical if over a number',
|
53
53
|
proc: proc(&:to_i)
|
54
54
|
|
55
55
|
option :warn_under,
|
56
|
-
short: '-
|
56
|
+
short: '-w N',
|
57
57
|
long: '--warn-under N',
|
58
58
|
description: 'Trigger a warning if under a number',
|
59
59
|
proc: proc(&:to_i),
|
60
60
|
default: 1
|
61
61
|
|
62
62
|
option :crit_under,
|
63
|
-
short: '-
|
63
|
+
short: '-c N',
|
64
64
|
long: '--critical-under N',
|
65
|
-
description: 'Trigger a
|
65
|
+
description: 'Trigger a critical if under a number',
|
66
66
|
proc: proc(&:to_i),
|
67
67
|
default: 1
|
68
68
|
|
69
|
-
def
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
def under_message(crit_under, count)
|
70
|
+
"Less than #{crit_under} containers running. #{count} running."
|
71
|
+
end
|
72
|
+
|
73
|
+
def over_message(crit_over, count)
|
74
|
+
"More than #{crit_over} containers running. #{count} running."
|
75
|
+
end
|
74
76
|
|
77
|
+
def evaluate_count(count)
|
75
78
|
# #YELLOW
|
76
|
-
if
|
77
|
-
|
79
|
+
if config.key?(:crit_under) && count < config[:crit_under]
|
80
|
+
critical under_message(config[:crit_under], count)
|
78
81
|
# #YELLOW
|
79
|
-
elsif
|
80
|
-
|
82
|
+
elsif config.key?(:crit_over) && count > config[:crit_over]
|
83
|
+
critical over_message(config[:crit_over], count)
|
81
84
|
# #YELLOW
|
82
|
-
elsif
|
83
|
-
|
85
|
+
elsif config.key?(:warn_under) && count < config[:warn_under]
|
86
|
+
warning under_message(config[:warn_under], count)
|
84
87
|
# #YELLOW
|
85
|
-
elsif
|
86
|
-
|
88
|
+
elsif config.key?(:warn_over) && count > config[:warn_over]
|
89
|
+
warning over_message(config[:warn_over], count)
|
87
90
|
else
|
88
|
-
|
91
|
+
ok
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def run
|
96
|
+
client = create_docker_client
|
97
|
+
path = '/containers/json'
|
98
|
+
req = Net::HTTP::Get.new path
|
99
|
+
begin
|
100
|
+
response = client.request(req)
|
101
|
+
containers = JSON.parse(response.body)
|
102
|
+
evaluate_count containers.size
|
103
|
+
rescue JSON::ParserError => e
|
104
|
+
critical "JSON Error: #{e.inspect}"
|
105
|
+
rescue => e
|
106
|
+
warning "Error: #{e.inspect}"
|
89
107
|
end
|
90
108
|
end
|
91
109
|
end
|
@@ -51,13 +51,19 @@ class DockerContainerMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
51
51
|
long: '--docker-host DOCKER_HOST',
|
52
52
|
default: 'tcp://127.0.1.1:2376'
|
53
53
|
|
54
|
+
option :cgroup_template,
|
55
|
+
description: 'cgroup_template',
|
56
|
+
short: '-T <template string>',
|
57
|
+
long: '--cgroup-template template_string',
|
58
|
+
default: 'cpu/docker/%{container}/cgroup.procs'
|
59
|
+
|
54
60
|
def run
|
55
61
|
container_metrics
|
56
62
|
ok
|
57
63
|
end
|
58
64
|
|
59
65
|
def container_metrics #rubocop:disable all
|
60
|
-
cgroup =
|
66
|
+
cgroup = "#{config[:cgroup_path]}/#{config[:cgroup_template]}"
|
61
67
|
|
62
68
|
timestamp = Time.now.to_i
|
63
69
|
ps = Sys::ProcTable.ps.group_by(&:pid)
|
@@ -70,7 +76,8 @@ class DockerContainerMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
70
76
|
containers = `docker ps --quiet --no-trunc`.split("\n")
|
71
77
|
|
72
78
|
containers.each do |container|
|
73
|
-
|
79
|
+
path = Pathname(format(cgroup, container: container))
|
80
|
+
pids = path.readlines.map(&:to_i)
|
74
81
|
|
75
82
|
processes = ps.values_at(*pids).flatten.compact.group_by(&:comm)
|
76
83
|
processes2 = ps2.values_at(*pids).flatten.compact.group_by(&:comm)
|
data/bin/metrics-docker-stats.rb
CHANGED
@@ -82,11 +82,11 @@ class DockerStatsMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
82
82
|
def run
|
83
83
|
@timestamp = Time.now.to_i
|
84
84
|
|
85
|
-
if config[:container] != ''
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
85
|
+
list = if config[:container] != ''
|
86
|
+
[config[:container]]
|
87
|
+
else
|
88
|
+
list_containers
|
89
|
+
end
|
90
90
|
list.each do |container|
|
91
91
|
stats = container_stats(container)
|
92
92
|
output_stats(container, stats)
|
@@ -144,11 +144,11 @@ class DockerStatsMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
144
144
|
@containers = docker_api(path)
|
145
145
|
|
146
146
|
@containers.each do |container|
|
147
|
-
if config[:friendly_names]
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
147
|
+
list << if config[:friendly_names]
|
148
|
+
container['Names'][0].delete('/')
|
149
|
+
else
|
150
|
+
container['Id']
|
151
|
+
end
|
152
152
|
end
|
153
153
|
list
|
154
154
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'net_http_unix'
|
2
|
+
|
3
|
+
def create_docker_client
|
4
|
+
client = nil
|
5
|
+
if config[:docker_host][0] == '/'
|
6
|
+
host = 'unix://' + config[:docker_host]
|
7
|
+
client = NetX::HTTPUnix.new(host)
|
8
|
+
else
|
9
|
+
split_host = config[:docker_host].split ':'
|
10
|
+
client = if split_host.length == 2
|
11
|
+
NetX::HTTPUnix.new(split_host[0], split_host[1])
|
12
|
+
else
|
13
|
+
NetX::HTTPUnix.new(config[:docker_host], 2375)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
client
|
18
|
+
end
|
metadata
CHANGED
@@ -1,36 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Plugins and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
|
14
|
-
am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
|
15
|
-
A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
|
16
|
-
CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
|
17
|
-
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
|
18
|
-
CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
|
19
|
-
zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
|
20
|
-
qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
|
21
|
-
k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
|
22
|
-
oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
|
23
|
-
0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
24
|
-
HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
|
25
|
-
QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
|
26
|
-
MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
|
27
|
-
rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
|
28
|
-
UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
|
29
|
-
JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
|
30
|
-
8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
|
31
|
-
HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2015-08-10 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-24 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: docker-api
|
@@ -190,16 +168,16 @@ dependencies:
|
|
190
168
|
name: rubocop
|
191
169
|
requirement: !ruby/object:Gem::Requirement
|
192
170
|
requirements:
|
193
|
-
- -
|
171
|
+
- - "~>"
|
194
172
|
- !ruby/object:Gem::Version
|
195
|
-
version: 0.
|
173
|
+
version: 0.40.0
|
196
174
|
type: :development
|
197
175
|
prerelease: false
|
198
176
|
version_requirements: !ruby/object:Gem::Requirement
|
199
177
|
requirements:
|
200
|
-
- -
|
178
|
+
- - "~>"
|
201
179
|
- !ruby/object:Gem::Version
|
202
|
-
version: 0.
|
180
|
+
version: 0.40.0
|
203
181
|
- !ruby/object:Gem::Dependency
|
204
182
|
name: yard
|
205
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,24 +192,31 @@ dependencies:
|
|
214
192
|
- - "~>"
|
215
193
|
- !ruby/object:Gem::Version
|
216
194
|
version: '0.8'
|
217
|
-
description:
|
195
|
+
description: |-
|
196
|
+
This plugin provides native Docker instrumentation
|
197
|
+
for monitoring and metrics collection, including:
|
198
|
+
container status, container number, and container
|
199
|
+
metrics via `docker ps`
|
218
200
|
email: "<sensu-users@googlegroups.com>"
|
219
201
|
executables:
|
220
|
-
-
|
221
|
-
- metrics-docker-container.rb
|
202
|
+
- check-container-logs.rb
|
222
203
|
- check-docker-container.rb
|
204
|
+
- metrics-docker-container.rb
|
223
205
|
- check-container.rb
|
206
|
+
- metrics-docker-stats.rb
|
224
207
|
extensions: []
|
225
208
|
extra_rdoc_files: []
|
226
209
|
files:
|
227
210
|
- CHANGELOG.md
|
228
211
|
- LICENSE
|
229
212
|
- README.md
|
213
|
+
- bin/check-container-logs.rb
|
230
214
|
- bin/check-container.rb
|
231
215
|
- bin/check-docker-container.rb
|
232
216
|
- bin/metrics-docker-container.rb
|
233
217
|
- bin/metrics-docker-stats.rb
|
234
218
|
- lib/sensu-plugins-docker.rb
|
219
|
+
- lib/sensu-plugins-docker/client_helpers.rb
|
235
220
|
- lib/sensu-plugins-docker/version.rb
|
236
221
|
homepage: https://github.com/sensu-plugins/sensu-plugins-docker
|
237
222
|
licenses:
|
@@ -251,7 +236,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
251
236
|
requirements:
|
252
237
|
- - ">="
|
253
238
|
- !ruby/object:Gem::Version
|
254
|
-
version:
|
239
|
+
version: 2.0.0
|
255
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
241
|
requirements:
|
257
242
|
- - ">="
|
@@ -259,8 +244,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
259
244
|
version: '0'
|
260
245
|
requirements: []
|
261
246
|
rubyforge_project:
|
262
|
-
rubygems_version: 2.
|
247
|
+
rubygems_version: 2.5.1
|
263
248
|
signing_key:
|
264
249
|
specification_version: 4
|
265
250
|
summary: Sensu plugins for docker
|
266
251
|
test_files: []
|
252
|
+
has_rdoc:
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED