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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d90fbbc20bfc21220fd34d813841ba8876ff0a19
4
- data.tar.gz: 0a4ab98ea4bc07e046d350d41c07e80449c0196b
3
+ metadata.gz: fdd8b18ca5f1f21fdb938571b8f4f530a1f8daaa
4
+ data.tar.gz: 1dd8364c04b0c3ac9538a0d6f2145608204981bd
5
5
  SHA512:
6
- metadata.gz: 4ad7811845fb384e123e3a9bb65d02aafbed1fc30b363ea95fb18400638041e0b86c71b9594acfca5002dd6e8096e862ed5ed3c6a2b01d5cdb9af362560ef736
7
- data.tar.gz: ee04d80ba6d787bef437922d897fb74e83f0cea1e22e03d3420872f77c9472ede8432ebec398b383df5a1d966c1d85563bbc0e3387071b954e282234f45cc673
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
- [ ![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-docker.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-docker)
3
+ [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-docker.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-docker)
4
4
  [![Gem Version](https://badge.fury.io/rb/sensu-plugins-docker.svg)](http://badge.fury.io/rb/sensu-plugins-docker)
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-docker/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-docker)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-docker/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-docker)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-docker.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-docker)
8
- [ ![Codeship Status for sensu-plugins/sensu-plugins-docker](https://codeship.com/projects/680bcc80-e24b-0132-265c-4ea0dd54b93d/status?branch=master)](https://codeship.com/projects/81436)
9
8
 
10
9
  ## Functionality
11
10
 
12
11
  ## Files
13
- * check-contsainer.rb
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
@@ -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 Conatiner
43
+ # Check Docker Container
44
44
  #
45
45
  class CheckDockerContainer < Sensu::Plugin::Check::CLI
46
- option :url,
47
- short: '-u DOCKER_HOST',
46
+ option :docker_host,
47
+ short: '-h DOCKER_HOST',
48
48
  long: '--host DOCKER_HOST',
49
- default: 'tcp://127.0.0.1:2376/'
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 #rubocop:disable all
52
- Docker.url = "#{config[:url]}"
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
- id = argv.first
55
- container = Docker::Container.get(id)
56
-
57
- if container.info['State']['Running']
58
- ok
59
- else
60
- critical "#{id} is not running"
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: docker
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 :url,
40
- short: '-u docker host',
41
- default: 'http://127.0.0.1:2376/'
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: '-w N',
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: '-c N',
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: '-W N',
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: '-C N',
63
+ short: '-c N',
64
64
  long: '--critical-under N',
65
- description: 'Trigger a critial if under a number',
65
+ description: 'Trigger a critical if under a number',
66
66
  proc: proc(&:to_i),
67
67
  default: 1
68
68
 
69
- def run #rubocop:disable all
70
- Docker.url = "#{config[:url]}"
71
- conn = Docker::Container.all(ruuning: true)
72
- count = conn.size.to_i
73
- puts "#{count} Running Containers..."
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 !!config[:crit_under] && count < config[:crit_under] # rubocop:disable Style/DoubleNegation
77
- puts critical
79
+ if config.key?(:crit_under) && count < config[:crit_under]
80
+ critical under_message(config[:crit_under], count)
78
81
  # #YELLOW
79
- elsif !!config[:crit_over] && count > config[:crit_over] # rubocop:disable Style/DoubleNegation
80
- puts critical
82
+ elsif config.key?(:crit_over) && count > config[:crit_over]
83
+ critical over_message(config[:crit_over], count)
81
84
  # #YELLOW
82
- elsif !!config[:warn_under] && count < config[:warn_under] # rubocop:disable Style/DoubleNegation
83
- puts warning
85
+ elsif config.key?(:warn_under) && count < config[:warn_under]
86
+ warning under_message(config[:warn_under], count)
84
87
  # #YELLOW
85
- elsif !!config[:warn_over] && count > config[:warn_over] # rubocop:disable Style/DoubleNegation
86
- puts warning
88
+ elsif config.key?(:warn_over) && count > config[:warn_over]
89
+ warning over_message(config[:warn_over], count)
87
90
  else
88
- puts ok
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 = Pathname(config[:cgroup_path]).join('cpu/docker')
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
- pids = cgroup.join(container).join('cgroup.procs').readlines.map(&:to_i)
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)
@@ -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
- list = [config[:container]]
87
- else
88
- list = list_containers
89
- end
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
- list << container['Names'][0].gsub('/', '')
149
- else
150
- list << container['Id']
151
- end
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
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsDocker
2
2
  module Version
3
- MAJOR = 0
3
+ MAJOR = 1
4
4
  MINOR = 0
5
- PATCH = 4
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  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
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.32.1
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.32.1
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: Sensu plugins for docker
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
- - metrics-docker-stats.rb
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: 1.9.3
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.4.8
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
@@ -1,4 +0,0 @@
1
- �T�����+ʿc��L)Rk��}��8
2
- �����z岢� �����#�<ok�9q7iPq�T^�^��[Sg|�� �x�J��Y�,
3
- �N�ے˲��m�)���@��bz�&R����{�sJ�ʰ��W�
4
- G�oD�pA��M�z�[۾� I�n$"[b�(6�4�]O��:��G�ɚ*N����"߁6��-,