sensu-plugins-nvidia 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91b17a35f5d16e79b408cb7611b0cf14769e929f
4
- data.tar.gz: 14944fac1549ea1570eea973671de2c1cf1569b1
3
+ metadata.gz: 8feb1b24be81c238ef88cf3f2c0e9d51743bc0ba
4
+ data.tar.gz: beb8a259ed77ad254fff31487a400b34a266e2b9
5
5
  SHA512:
6
- metadata.gz: c14f1d5676d4d61b309bf46196db96a95aac270c36fcaeb960a355ab0dbb308d5970d25eaafc849196dd8dee1c8921f4c8ccbb526cdeefe2ae2d8ba96057fa75
7
- data.tar.gz: 060c7bccede8a90ebcb982317df7dc2f4c6d86cf86b02997791f8315a158e16a012ffae2e29aae40950eedcbdaf9a6ea23b7e45dcdf7cf1ca5ea42f8f5be1e33
6
+ metadata.gz: 4c5871a256bab3115e757825d1d12f8fbacc19eabacd0bc8a7afb712d1faf7caea35b28a6c2829918073963074594ba6f92677418d4216e3b910b8b3f1a5fded
7
+ data.tar.gz: 96a3ee9df9592bca5e6a75fd51570357149cf8c5345688d7eac0f01fede656cd05f4304cd01ab545a310bfd07b57c3f59526d314e639243a51ad758a8965eb04
@@ -1,14 +1,30 @@
1
- #Change Log
1
+ # Change Log
2
2
  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][unreleased]
6
+ ## [Unreleased]
7
+
8
+ ## [1.0.0] - 2017-02-21
9
+ ### Added
10
+ - add metrics for `utilization.gpu`, `utilization.memory` (in percent) (@GhostLyrics)
11
+ - add metric for `power.draw` (in Watts) (@GhostLyrics)
12
+ - support for Ruby 2.3 (@eheydrick)
13
+
14
+ ### Changed
15
+ - make metrics multi GPU aware (@GhostLyrics)
16
+
17
+ ### Removed
18
+ - Support for Ruby < 2.1 (@eheydrick)
7
19
 
8
20
  ## [0.0.2] - 2015-07-14
9
21
  ### Changed
10
22
  - updated sensu-plugin gem to 1.2.0
11
23
 
12
- ## [0.0.1] - 2015-07-04
24
+ ## 0.0.1 - 2015-07-04
13
25
  ### Added
14
26
  - initial release
27
+
28
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-nvidia/compare/1.0.0...HEAD
29
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-nvidia/compare/0.0.2...1.0.0
30
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-nvidia/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -1,21 +1,55 @@
1
- ## Sensu-Plugins-nvidia
1
+ ## sensu-plugins-nvidia
2
2
 
3
- [ ![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-nvidia.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-nvidia)
3
+ [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-nvidia.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-nvidia)
4
4
  [![Gem Version](https://badge.fury.io/rb/sensu-plugins-nvidia.svg)](http://badge.fury.io/rb/sensu-plugins-nvidia)
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-nvidia/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-nvidia)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-nvidia/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-nvidia)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-nvidia.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-nvidia)
8
- [ ![Codeship Status for sensu-plugins/sensu-plugins-nvidia](https://codeship.com/projects/a5eee1b0-edc1-0132-1e01-5a51cb58650a/status?branch=master)](https://codeship.com/projects/84109)
9
8
 
10
9
  ## Functionality
11
10
 
12
- ## Files
13
- * bin/metrics-nvidia
11
+ Plugin to collect metrics from your NVIDIA GPU.
12
+
13
+ ### metrics-nvidia.rb
14
+
15
+ Collects metrics by calling `nvidia-smi` internally.
16
+
17
+ #### parameters
18
+
19
+ - `-s, --scheme`: The scheme to concatenate the metrics with (default: `HOSTNAME.nvidia`)
20
+
21
+ #### metrics
22
+
23
+ Multiple GPUs are supported and labeled by BusID in Hex (e.g. `nvidia.bus0x02.temperature.gpu`). For each PCI bus you will get the following metrics:
24
+
25
+ - `nvidia.busBUS_IN_HEX.fan.speed`: Speed of the card's fan (RPM)
26
+ - `nvidia.busBUS_IN_HEX.memory.free`: Unused memory available to the card (MiB, mebibyte)
27
+ - `nvidia.busBUS_IN_HEX.memory.total`: Total amount of memory available to the card (MiB, mebibyte)
28
+ - `nvidia.busBUS_IN_HEX.memory.used`: Memory used by the card (MiB, mebibyte)
29
+ - `nvidia.busBUS_IN_HEX.power.draw`: Power draw of the card (Watt)
30
+ - `nvidia.busBUS_IN_HEX.temperature.gpu`: Temperature of the card (Degree Celsius)
31
+ - `nvidia.busBUS_IN_HEX.utilization.gpu`: GPU utilization of the card (percent)
32
+ - `nvidia.busBUS_IN_HEX.utilization.memory`: memory utilization of the card (percent)
33
+
34
+ *If you do not get all of the listed values, you GPU probably does not support the feature. To check, you can query it yourself by running* `nvidia-smi --query-gpu=METRIC --format=csv`.
35
+ (e.g. `nvidia-smi --query-gpu=power.draw --format=csv`)
36
+
14
37
 
15
38
  ## Usage
16
39
 
40
+ To collect metrics with the scheme of your choice:
41
+
42
+ ```plain
43
+ metrics-nvidia.rb --scheme YOUR_SCHEME_HERE
44
+ ```
45
+
17
46
  ## Installation
18
47
 
19
- [Installation and Setup](https://github.com/sensu-plugins/documentation/blob/master/user_docs/installation_instructions.md)
48
+ ```plain
49
+ sensu-install --plugin sensu-plugins-nvidia
50
+ ```
51
+
52
+ In order to use this plugin you will need the official NVIDIA command line interface `nvidia-smi` which is distributed with their drivers.
53
+
54
+ For more help see [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html).
20
55
 
21
- ## Notes
@@ -39,18 +39,27 @@ class EntropyGraphite < Sensu::Plugin::Metric::CLI::Graphite
39
39
  default: "#{Socket.gethostname}.nvidia"
40
40
 
41
41
  def run
42
+ # get the slots for labelling multiple GPUs
43
+ pci_slots = `nvidia-smi --query-gpu=pci.bus --format=csv,noheader`.scan(/^.+$/)
44
+
42
45
  metrics = {}
43
- keys = ['temperature.gpu', 'fan.speed', 'memory.used', 'memory.total', 'memory.free']
46
+ keys = ['temperature.gpu', 'fan.speed', 'memory.used', 'memory.total', 'memory.free', 'utilization.memory', 'utilization.gpu', 'power.draw']
44
47
  keys.each do |key|
45
- metrics[key] = `nvidia-smi --query-gpu=#{key} --format=csv,noheader`.match(/\d+\.?\d*/).to_s
48
+ metrics[key] = `nvidia-smi --query-gpu=#{key} --format=csv,noheader`.scan(/\d+\.?\d*/)
46
49
  end
47
50
 
48
51
  timestamp = Time.now.to_i
49
52
 
50
- metrics.each do |key, value|
51
- output [config[:scheme], key].join('.'), value, timestamp
52
- end
53
+ # for every unit output every metric
53
54
 
55
+ pci_index = 0
56
+
57
+ pci_slots.each do
58
+ metrics.each do |key, value|
59
+ output [[config[:scheme], pci_slots[pci_index]].join('.bus'), key].join('.'), value[pci_index], timestamp
60
+ end
61
+ pci_index += 1
62
+ end
54
63
  ok
55
64
  end
56
65
  end
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsNvidia
2
2
  module Version
3
- MAJOR = 0
3
+ MAJOR = 1
4
4
  MINOR = 0
5
- PATCH = 2
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,51 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-nvidia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
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-07-14 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2017-02-22 00:00:00.000000000 Z
34
12
  dependencies:
35
13
  - !ruby/object:Gem::Dependency
36
14
  name: sensu-plugin
37
15
  requirement: !ruby/object:Gem::Requirement
38
16
  requirements:
39
- - - '='
17
+ - - "~>"
40
18
  - !ruby/object:Gem::Version
41
- version: 1.2.0
19
+ version: '1.2'
42
20
  type: :runtime
43
21
  prerelease: false
44
22
  version_requirements: !ruby/object:Gem::Requirement
45
23
  requirements:
46
- - - '='
24
+ - - "~>"
47
25
  - !ruby/object:Gem::Version
48
- version: 1.2.0
26
+ version: '1.2'
49
27
  - !ruby/object:Gem::Dependency
50
28
  name: bundler
51
29
  requirement: !ruby/object:Gem::Requirement
@@ -106,16 +84,16 @@ dependencies:
106
84
  name: rubocop
107
85
  requirement: !ruby/object:Gem::Requirement
108
86
  requirements:
109
- - - '='
87
+ - - "~>"
110
88
  - !ruby/object:Gem::Version
111
- version: '0.30'
89
+ version: 0.40.0
112
90
  type: :development
113
91
  prerelease: false
114
92
  version_requirements: !ruby/object:Gem::Requirement
115
93
  requirements:
116
- - - '='
94
+ - - "~>"
117
95
  - !ruby/object:Gem::Version
118
- version: '0.30'
96
+ version: 0.40.0
119
97
  - !ruby/object:Gem::Dependency
120
98
  name: rspec
121
99
  requirement: !ruby/object:Gem::Requirement
@@ -203,7 +181,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
203
181
  requirements:
204
182
  - - ">="
205
183
  - !ruby/object:Gem::Version
206
- version: 1.9.3
184
+ version: '2.1'
207
185
  required_rubygems_version: !ruby/object:Gem::Requirement
208
186
  requirements:
209
187
  - - ">="
@@ -211,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
189
  version: '0'
212
190
  requirements: []
213
191
  rubyforge_project:
214
- rubygems_version: 2.4.6
192
+ rubygems_version: 2.4.5
215
193
  signing_key:
216
194
  specification_version: 4
217
195
  summary: Sensu plugins for nvidia
Binary file
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file