riemann-tools 0.2.11 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.docker/Dockerfile +7 -0
- data/.docker/publish.sh +35 -0
- data/.github/workflows/ci.yml +29 -0
- data/.gitignore +6 -0
- data/.rspec +2 -0
- data/.travis.yml +31 -0
- data/CHANGELOG.md +393 -0
- data/Gemfile +6 -0
- data/ISSUE_TEMPLATE.md +15 -0
- data/README.markdown +17 -1
- data/Rakefile +21 -0
- data/bin/riemann-apache-status +1 -0
- data/bin/riemann-bench +1 -0
- data/bin/riemann-cloudant +1 -0
- data/bin/riemann-consul +3 -2
- data/bin/riemann-dir-files-count +1 -0
- data/bin/riemann-dir-space +1 -0
- data/bin/riemann-diskstats +1 -0
- data/bin/riemann-fd +1 -0
- data/bin/riemann-freeswitch +1 -0
- data/bin/riemann-haproxy +1 -0
- data/bin/riemann-health +87 -10
- data/bin/riemann-kvminstance +1 -0
- data/bin/riemann-memcached +1 -0
- data/bin/riemann-net +3 -2
- data/bin/riemann-nginx-status +1 -0
- data/bin/riemann-ntp +1 -0
- data/bin/riemann-portcheck +42 -0
- data/bin/riemann-proc +2 -1
- data/bin/riemann-varnish +1 -0
- data/bin/riemann-zookeeper +1 -0
- data/lib/riemann/tools/utils.rb +17 -0
- data/lib/riemann/tools/version.rb +7 -0
- data/lib/riemann/tools.rb +15 -5
- data/riemann-tools.gemspec +39 -0
- data/tools/riemann-aws/LICENSE +21 -0
- data/tools/riemann-aws/README.md +54 -0
- data/tools/riemann-aws/Rakefile.rb +35 -0
- data/tools/riemann-aws/bin/riemann-aws-billing +87 -0
- data/tools/riemann-aws/bin/riemann-aws-rds-status +54 -0
- data/tools/riemann-aws/bin/riemann-aws-sqs-status +44 -0
- data/tools/riemann-aws/bin/riemann-aws-status +71 -0
- data/tools/riemann-aws/bin/riemann-elb-metrics +167 -0
- data/tools/riemann-aws/bin/riemann-s3-list +82 -0
- data/tools/riemann-aws/bin/riemann-s3-status +99 -0
- data/tools/riemann-chronos/LICENSE +21 -0
- data/tools/riemann-chronos/README.md +10 -0
- data/tools/riemann-chronos/Rakefile.rb +35 -0
- data/tools/riemann-chronos/bin/riemann-chronos +144 -0
- data/tools/riemann-docker/LICENSE +21 -0
- data/tools/riemann-docker/README.md +10 -0
- data/tools/riemann-docker/Rakefile.rb +34 -0
- data/tools/riemann-docker/bin/riemann-docker +217 -0
- data/tools/riemann-elasticsearch/LICENSE +21 -0
- data/tools/riemann-elasticsearch/README.md +10 -0
- data/tools/riemann-elasticsearch/Rakefile.rb +35 -0
- data/tools/riemann-elasticsearch/bin/riemann-elasticsearch +166 -0
- data/tools/riemann-marathon/LICENSE +21 -0
- data/tools/riemann-marathon/README.md +10 -0
- data/tools/riemann-marathon/Rakefile.rb +35 -0
- data/tools/riemann-marathon/bin/riemann-marathon +147 -0
- data/tools/riemann-mesos/LICENSE +21 -0
- data/tools/riemann-mesos/README.md +10 -0
- data/tools/riemann-mesos/Rakefile.rb +35 -0
- data/tools/riemann-mesos/bin/riemann-mesos +131 -0
- data/tools/riemann-munin/LICENSE +21 -0
- data/tools/riemann-munin/README.md +10 -0
- data/tools/riemann-munin/Rakefile.rb +34 -0
- data/tools/riemann-munin/bin/riemann-munin +37 -0
- data/tools/riemann-rabbitmq/LICENSE +21 -0
- data/tools/riemann-rabbitmq/README.md +10 -0
- data/tools/riemann-rabbitmq/Rakefile.rb +35 -0
- data/tools/riemann-rabbitmq/bin/riemann-rabbitmq +269 -0
- data/tools/riemann-riak/LICENSE +21 -0
- data/tools/riemann-riak/README.md +10 -0
- data/tools/riemann-riak/Rakefile.rb +34 -0
- data/tools/riemann-riak/bin/riemann-riak +331 -0
- data/tools/riemann-riak/bin/riemann-riak-keys +13 -0
- data/tools/riemann-riak/bin/riemann-riak-ring +9 -0
- data/tools/riemann-riak/riak_status/key_count.erl +13 -0
- data/tools/riemann-riak/riak_status/riak_status.rb +152 -0
- data/tools/riemann-riak/riak_status/ringready.erl +9 -0
- metadata +130 -16
data/bin/riemann-cloudant
CHANGED
data/bin/riemann-consul
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
Process.setproctitle($0)
|
2
3
|
|
3
4
|
# Reports service and node status to riemann
|
4
5
|
|
@@ -48,8 +49,8 @@ class Riemann::Tools::ConsulHealth
|
|
48
49
|
|
49
50
|
def tick
|
50
51
|
|
51
|
-
leader = get(@consul_leader_url)
|
52
|
-
leader_hostname = URI.parse("http://" + leader
|
52
|
+
leader = JSON.parse(get(@consul_leader_url))
|
53
|
+
leader_hostname = URI.parse("http://" + leader).hostname
|
53
54
|
|
54
55
|
if (leader_hostname == @underlying_ip)
|
55
56
|
nodes = JSON.parse(get(@consul_nodes_url))
|
data/bin/riemann-dir-files-count
CHANGED
data/bin/riemann-dir-space
CHANGED
data/bin/riemann-diskstats
CHANGED
data/bin/riemann-fd
CHANGED
data/bin/riemann-freeswitch
CHANGED
data/bin/riemann-haproxy
CHANGED
data/bin/riemann-health
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
Process.setproctitle($0)
|
2
3
|
|
3
4
|
# Reports current CPU, disk, load average, and memory use to riemann.
|
4
5
|
|
5
6
|
require File.expand_path('../../lib/riemann/tools', __FILE__)
|
7
|
+
require File.expand_path('../../lib/riemann/tools/utils', __FILE__)
|
6
8
|
|
7
9
|
class Riemann::Tools::Health
|
8
10
|
include Riemann::Tools
|
11
|
+
include Riemann::Tools::Utils
|
9
12
|
|
10
13
|
opt :cpu_warning, "CPU warning threshold (fraction of total jiffies)", :default => 0.9
|
11
14
|
opt :cpu_critical, "CPU critical threshold (fraction of total jiffies)", :default => 0.95
|
@@ -36,8 +39,20 @@ class Riemann::Tools::Health
|
|
36
39
|
@cores = `sysctl -n hw.ncpu`.to_i
|
37
40
|
@cpu = method :freebsd_cpu
|
38
41
|
@disk = method :disk
|
39
|
-
@load = method :
|
42
|
+
@load = method :bsd_load
|
40
43
|
@memory = method :freebsd_memory
|
44
|
+
when 'openbsd'
|
45
|
+
@cores = `sysctl -n hw.ncpu`.to_i
|
46
|
+
@cpu = method :openbsd_cpu
|
47
|
+
@disk = method :disk
|
48
|
+
@load = method :bsd_load
|
49
|
+
@memory = method :openbsd_memory
|
50
|
+
when 'sunos'
|
51
|
+
@cores = `mpstat -a 2>/dev/null`.split[33].to_i
|
52
|
+
@cpu = method :sunos_cpu
|
53
|
+
@disk = method :disk
|
54
|
+
@load = method :bsd_load
|
55
|
+
@memory = method :sunos_memory
|
41
56
|
else
|
42
57
|
@cores = `nproc`.to_i
|
43
58
|
puts "WARNING: OS '#{@ostype}' not explicitly supported. Falling back to Linux" unless @ostype == "linux"
|
@@ -45,6 +60,7 @@ class Riemann::Tools::Health
|
|
45
60
|
@disk = method :disk
|
46
61
|
@load = method :linux_load
|
47
62
|
@memory = method :linux_memory
|
63
|
+
@supports_exclude_type = `df --help 2>&1 | grep -e "--exclude-type"` != ""
|
48
64
|
end
|
49
65
|
|
50
66
|
opts[:checks].each do |check|
|
@@ -97,7 +113,7 @@ class Riemann::Tools::Health
|
|
97
113
|
total = used + i2-i1
|
98
114
|
fraction = used.to_f / total
|
99
115
|
|
100
|
-
report_pct :cpu, fraction, "user+nice+system\n\n#{`ps -eo pcpu,pid,comm
|
116
|
+
report_pct :cpu, fraction, "user+nice+system\n\n#{reverse_numeric_sort_with_header(`ps -eo pcpu,pid,comm`)}"
|
101
117
|
end
|
102
118
|
|
103
119
|
@old_cpu = [u2, n2, s2, i2]
|
@@ -126,7 +142,7 @@ class Riemann::Tools::Health
|
|
126
142
|
total = m['MemTotal'].to_i
|
127
143
|
fraction = 1 - (free.to_f / total)
|
128
144
|
|
129
|
-
report_pct :memory, fraction, "used\n\n#{`ps -eo pmem,pid,comm
|
145
|
+
report_pct :memory, fraction, "used\n\n#{reverse_numeric_sort_with_header(`ps -eo pmem,pid,comm`)}"
|
130
146
|
end
|
131
147
|
|
132
148
|
def freebsd_cpu
|
@@ -139,13 +155,53 @@ class Riemann::Tools::Health
|
|
139
155
|
total = used + i2-i1
|
140
156
|
fraction = used.to_f / total
|
141
157
|
|
142
|
-
report_pct :cpu, fraction, "user+nice+sytem+interrupt\n\n#{`ps -axo pcpu,pid,comm
|
158
|
+
report_pct :cpu, fraction, "user+nice+sytem+interrupt\n\n#{reverse_numeric_sort_with_header(`ps -axo pcpu,pid,comm`)}"
|
159
|
+
end
|
160
|
+
|
161
|
+
@old_cpu = [u2, n2, s2, t2, i2]
|
162
|
+
end
|
163
|
+
|
164
|
+
def openbsd_cpu
|
165
|
+
u2, n2, s2, t2, i2 = `sysctl -n kern.cp_time 2>/dev/null`.split(',').map{ |e| e.to_i } #OpenBSD separates with ,
|
166
|
+
|
167
|
+
if @old_cpu
|
168
|
+
u1, n1, s1, t1, i1 = @old_cpu
|
169
|
+
|
170
|
+
used = (u2+n2+s2+t2) - (u1+n1+s1+t1)
|
171
|
+
total = used + i2-i1
|
172
|
+
fraction = used.to_f / total
|
173
|
+
|
174
|
+
report_pct :cpu, fraction, "user+nice+sytem+interrupt\n\n#{reverse_numeric_sort_with_header(`ps -axo pcpu,pid,comm`)}"
|
143
175
|
end
|
144
176
|
|
145
177
|
@old_cpu = [u2, n2, s2, t2, i2]
|
146
178
|
end
|
147
179
|
|
148
|
-
def
|
180
|
+
def sunos_cpu
|
181
|
+
mpstats = `mpstat -a 2>/dev/null`.split
|
182
|
+
u2 = mpstats[29].to_i
|
183
|
+
s2 = mpstats[30].to_i
|
184
|
+
t2 = mpstats[31].to_i
|
185
|
+
i2 = mpstats[32].to_i
|
186
|
+
|
187
|
+
if @old_cpu
|
188
|
+
u1, s1, t1, i1 = @old_cpu
|
189
|
+
|
190
|
+
used = (u2+s2+t2) - (u1+s1+t1)
|
191
|
+
total = used + i2-i1
|
192
|
+
if i2 == i1 && used == 0 #If the system is <1% used in both samples then total will be 0 + (99 - 99), avoid a div by 0
|
193
|
+
fraction = 0
|
194
|
+
else
|
195
|
+
fraction = used.to_f / total
|
196
|
+
end
|
197
|
+
|
198
|
+
report_pct :cpu, fraction, "user+sytem+interrupt\n\n#{reverse_numeric_sort_with_header(`ps -ao pcpu,pid,comm`)}"
|
199
|
+
end
|
200
|
+
|
201
|
+
@old_cpu = [u2, s2, t2, i2]
|
202
|
+
end
|
203
|
+
|
204
|
+
def bsd_load
|
149
205
|
m = `uptime`.split(':')[-1].chomp.gsub(/\s+/,'').split(',')
|
150
206
|
load = m[0].to_f / @cores
|
151
207
|
if load > @limits[:load][:critical]
|
@@ -161,7 +217,22 @@ class Riemann::Tools::Health
|
|
161
217
|
meminfo = `sysctl -n vm.stats.vm.v_page_count vm.stats.vm.v_wire_count vm.stats.vm.v_active_count 2>/dev/null`.chomp.split
|
162
218
|
fraction = (meminfo[1].to_f + meminfo[2].to_f) / meminfo[0].to_f
|
163
219
|
|
164
|
-
report_pct :memory, fraction, "used\n\n#{`ps -axo pmem,pid,comm
|
220
|
+
report_pct :memory, fraction, "used\n\n#{reverse_numeric_sort_with_header(`ps -axo pmem,pid,comm`)}"
|
221
|
+
end
|
222
|
+
|
223
|
+
def openbsd_memory
|
224
|
+
meminfo = `vmstat 2>/dev/null`.chomp.split
|
225
|
+
fraction = meminfo[28].to_f / meminfo[29].to_f #The ratio of active to free memory unlike the others :(
|
226
|
+
|
227
|
+
report_pct :memory, fraction, "used\n\n#{reverse_numeric_sort_with_header(`ps -axo pmem,pid,comm`)}"
|
228
|
+
end
|
229
|
+
|
230
|
+
def sunos_memory
|
231
|
+
meminfo = `vmstat 2>/dev/null`.chomp.split
|
232
|
+
total_mem = `prtconf | grep Memory`.split[2].to_f * 1024 # reports in GB but vmstat is in MB
|
233
|
+
fraction = ( total_mem - meminfo[32].to_f ) / total_mem
|
234
|
+
|
235
|
+
report_pct :memory, fraction, "used\n\n#{reverse_numeric_sort_with_header(`ps -ao pmem,pid,comm`)}"
|
165
236
|
end
|
166
237
|
|
167
238
|
def darwin_top
|
@@ -197,7 +268,7 @@ class Riemann::Tools::Health
|
|
197
268
|
alert 'cpu', :unknown, nil, "unable to get CPU stats from top"
|
198
269
|
return false
|
199
270
|
end
|
200
|
-
report_pct :cpu, @topdata[:cpu], "usage\n\n#{`ps -eo pcpu,pid,comm
|
271
|
+
report_pct :cpu, @topdata[:cpu], "usage\n\n#{reverse_numeric_sort_with_header(`ps -eo pcpu,pid,comm`)}"
|
201
272
|
end
|
202
273
|
|
203
274
|
def darwin_load
|
@@ -222,15 +293,21 @@ class Riemann::Tools::Health
|
|
222
293
|
alert 'memory', :unknown, nil, "unable to get memory data from top"
|
223
294
|
return false
|
224
295
|
end
|
225
|
-
report_pct :memory, @topdata[:memory], "usage\n\n#{`ps -eo pmem,pid,comm
|
296
|
+
report_pct :memory, @topdata[:memory], "usage\n\n#{reverse_numeric_sort_with_header(`ps -eo pmem,pid,comm`)}"
|
226
297
|
end
|
227
298
|
|
228
299
|
def df
|
229
300
|
case @ostype
|
230
|
-
when 'darwin', 'freebsd'
|
301
|
+
when 'darwin', 'freebsd', 'openbsd'
|
231
302
|
`df -P -t noiso9660`
|
303
|
+
when 'sunos'
|
304
|
+
`df -P` # Is there a good way to exlude iso9660 here?
|
232
305
|
else
|
233
|
-
|
306
|
+
if @supports_exclude_type
|
307
|
+
`df -P --exclude-type=iso9660 --exclude-type=nfs`
|
308
|
+
else
|
309
|
+
`df -P`
|
310
|
+
end
|
234
311
|
end
|
235
312
|
end
|
236
313
|
|
data/bin/riemann-kvminstance
CHANGED
data/bin/riemann-memcached
CHANGED
data/bin/riemann-net
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
Process.setproctitle($0)
|
2
3
|
|
3
4
|
# Gathers network interface statistics and submits them to Riemann.
|
4
5
|
|
@@ -79,13 +80,13 @@ class Riemann::Tools::Net
|
|
79
80
|
delta = metric - @old_state[service]
|
80
81
|
svc_state = case service
|
81
82
|
when /drop$/
|
82
|
-
if
|
83
|
+
if delta > 0
|
83
84
|
'warning'
|
84
85
|
else
|
85
86
|
'ok'
|
86
87
|
end
|
87
88
|
when /errs$/
|
88
|
-
if
|
89
|
+
if delta > 0
|
89
90
|
'warning'
|
90
91
|
else
|
91
92
|
'ok'
|
data/bin/riemann-nginx-status
CHANGED
data/bin/riemann-ntp
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
Process.setproctitle($0)
|
3
|
+
|
4
|
+
# Checks for open tcp ports.
|
5
|
+
# (c) Max Voit 2017
|
6
|
+
|
7
|
+
require File.expand_path('../../lib/riemann/tools', __FILE__)
|
8
|
+
|
9
|
+
class Riemann::Tools::Portcheck
|
10
|
+
include Riemann::Tools
|
11
|
+
require 'socket'
|
12
|
+
|
13
|
+
opt :hostname, "Host, defaults to localhost", :default => `hostname`.chomp
|
14
|
+
opt :ports, "List of ports to check, e.g. '-r 80 443'", :type => :ints
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@hostname = opts.fetch(:hostname)
|
18
|
+
@ports = opts.fetch(:ports)
|
19
|
+
end
|
20
|
+
|
21
|
+
def tick
|
22
|
+
for thisport in @ports
|
23
|
+
# try opening tcp connection with 5s timeout;
|
24
|
+
# if this fails, the port is considered closed
|
25
|
+
portopen = Socket.tcp(@hostname, thisport, connect_timeout: 5) { true } rescue false
|
26
|
+
if portopen
|
27
|
+
state = "ok"
|
28
|
+
else
|
29
|
+
state = "critical"
|
30
|
+
end
|
31
|
+
report(
|
32
|
+
:host => "#{@hostname}",
|
33
|
+
:service => "port #{thisport}",
|
34
|
+
:state => "#{state}",
|
35
|
+
:tags => ["portcheck"]
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
Riemann::Tools::Portcheck.run
|
data/bin/riemann-proc
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
Process.setproctitle($0)
|
2
3
|
|
3
4
|
# Reports running process count to riemann.
|
4
5
|
|
@@ -50,7 +51,7 @@ class Riemann::Tools::Proc
|
|
50
51
|
# value should be either process RSS, VSIZE, or 1 if running
|
51
52
|
# state is always unknown for the moment
|
52
53
|
#
|
53
|
-
ps_regex = /([0-9]+)[ ]+([0-9]+)[ ]+([0-9]+)[ ]+([A-Z])[ ]+([0-9:.]+)[ ]+[A-Za-z]{3}[ ]+([A-Za-z]{3} [0-9]+ [0-9:]+ [0-9]+)[ ]+(.*)/
|
54
|
+
ps_regex = /([0-9]+)[ ]+([0-9]+)[ ]+([0-9]+)[ ]+([A-Z])[ ]+([0-9:.]+)[ ]+[A-Za-z]{3}[ ]+([A-Za-z]{3}[ ]{1,2}[0-9]+ [0-9:]+ [0-9]+)[ ]+(.*)/
|
54
55
|
found.each_line do |line|
|
55
56
|
m = ps_regex.match(line)
|
56
57
|
if not m.nil?
|
data/bin/riemann-varnish
CHANGED
data/bin/riemann-zookeeper
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Riemann
|
4
|
+
module Tools
|
5
|
+
module Utils # :nodoc:
|
6
|
+
def reverse_numeric_sort_with_header(data, header: 1, count: 10)
|
7
|
+
lines = data.chomp.split("\n")
|
8
|
+
header = lines.shift(header)
|
9
|
+
|
10
|
+
lines.sort_by!(&:to_f)
|
11
|
+
lines.reverse!
|
12
|
+
|
13
|
+
(header + lines[0, count]).join("\n")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/riemann/tools.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Riemann
|
2
2
|
module Tools
|
3
|
-
require '
|
3
|
+
require 'optimist'
|
4
4
|
require 'riemann/client'
|
5
5
|
|
6
6
|
def self.included(base)
|
@@ -16,11 +16,11 @@ module Riemann
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def options
|
19
|
-
p =
|
19
|
+
p = Optimist::Parser.new
|
20
20
|
@opts.each do |o|
|
21
21
|
p.send *o
|
22
22
|
end
|
23
|
-
|
23
|
+
Optimist::with_standard_exception_handling(p) do
|
24
24
|
p.parse ARGV
|
25
25
|
end
|
26
26
|
end
|
@@ -34,6 +34,11 @@ module Riemann
|
|
34
34
|
opt :attribute, "Attribute to add to the event", :type => String, :multi => true
|
35
35
|
opt :timeout, "Timeout (in seconds) when waiting for acknowledgements", :default => 30
|
36
36
|
opt :tcp, "Use TCP transport instead of UDP (improves reliability, slight overhead.", :default => true
|
37
|
+
opt :tls, "Use TLS for securing traffic", :default => false
|
38
|
+
opt :tls_key, "TLS Key to use when using TLS", :type => String
|
39
|
+
opt :tls_cert, "TLS Certificate to use when using TLS", :type => String
|
40
|
+
opt :tls_ca_cert, "Trusted CA Certificate when using TLS", :type => String
|
41
|
+
opt :tls_verify, "Verify TLS peer when using TLS", :default => true
|
37
42
|
end
|
38
43
|
end
|
39
44
|
|
@@ -73,9 +78,14 @@ module Riemann
|
|
73
78
|
r = Riemann::Client.new(
|
74
79
|
:host => options[:host],
|
75
80
|
:port => options[:port],
|
76
|
-
:timeout => options[:timeout]
|
81
|
+
:timeout => options[:timeout],
|
82
|
+
:ssl => options[:tls],
|
83
|
+
:key_file => options[:tls_key],
|
84
|
+
:cert_file => options[:tls_cert],
|
85
|
+
:ca_file => options[:tls_ca_cert],
|
86
|
+
:ssl_verify => options[:tls_verify],
|
77
87
|
)
|
78
|
-
if options[:tcp]
|
88
|
+
if options[:tcp] || options[:tls]
|
79
89
|
r.tcp
|
80
90
|
else
|
81
91
|
r
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/riemann/tools/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'riemann-tools'
|
7
|
+
spec.version = Riemann::Tools::VERSION
|
8
|
+
spec.authors = ['Kyle Kingsbury']
|
9
|
+
spec.email = ['aphyr@aphyr.com']
|
10
|
+
|
11
|
+
spec.summary = 'Utilities which submit events to Riemann.'
|
12
|
+
spec.description = 'Collection of utilities which submit events to Riemann,'
|
13
|
+
spec.homepage = 'https://github.com/aphyr/riemann-tools'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
|
16
|
+
|
17
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
|
18
|
+
|
19
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
20
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
21
|
+
spec.metadata['changelog_uri'] = spec.homepage
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
spec.bindir = 'bin'
|
29
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ['lib']
|
31
|
+
|
32
|
+
spec.add_runtime_dependency 'json', '>= 1.8'
|
33
|
+
spec.add_runtime_dependency 'optimist', '~> 3.0', '>= 3.0.0'
|
34
|
+
spec.add_runtime_dependency 'riemann-client', '~> 1.0'
|
35
|
+
|
36
|
+
spec.add_development_dependency 'github_changelog_generator'
|
37
|
+
spec.add_development_dependency 'rake'
|
38
|
+
spec.add_development_dependency 'rspec'
|
39
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2011 Kyle Kingsbury
|
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
|
13
|
+
all 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
|
21
|
+
THE SOFTWARE.
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Riemann AWS tools
|
2
|
+
|
3
|
+
Gathers various AWS services statistics and submits them to Riemann.
|
4
|
+
|
5
|
+
## Getting started
|
6
|
+
|
7
|
+
```
|
8
|
+
gem install riemann-aws
|
9
|
+
```
|
10
|
+
|
11
|
+
## AWS Commands
|
12
|
+
|
13
|
+
|
14
|
+
### Riemann AWS Billing
|
15
|
+
|
16
|
+
```
|
17
|
+
riemann-aws-billing --help
|
18
|
+
```
|
19
|
+
|
20
|
+
### Riemann AWS RDS Status
|
21
|
+
|
22
|
+
```
|
23
|
+
riemann-aws-rds-status --help
|
24
|
+
```
|
25
|
+
|
26
|
+
### Riemann AWS SQS Status
|
27
|
+
|
28
|
+
```
|
29
|
+
riemann-aws-sqs-status --help
|
30
|
+
```
|
31
|
+
|
32
|
+
### Riemann AWS Status
|
33
|
+
|
34
|
+
```
|
35
|
+
riemann-aws-status --help
|
36
|
+
```
|
37
|
+
|
38
|
+
### Riemann ELB Metrics
|
39
|
+
|
40
|
+
```
|
41
|
+
riemann-elb-metrics --help
|
42
|
+
```
|
43
|
+
|
44
|
+
### Riemann S3 Status by asking Cloudwatch
|
45
|
+
|
46
|
+
```
|
47
|
+
riemann-s3-status --help
|
48
|
+
```
|
49
|
+
|
50
|
+
### Riemann S3 Count by listing objects
|
51
|
+
|
52
|
+
```
|
53
|
+
riemann-s3-list --help
|
54
|
+
```
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubygems/package_task'
|
3
|
+
require 'rdoc/task'
|
4
|
+
require 'find'
|
5
|
+
|
6
|
+
# Don't include resource forks in tarballs on Mac OS X.
|
7
|
+
ENV['COPY_EXTENDED_ATTRIBUTES_DISABLE'] = 'true'
|
8
|
+
ENV['COPYFILE_DISABLE'] = 'true'
|
9
|
+
|
10
|
+
# Gemspec
|
11
|
+
gemspec = Gem::Specification.new do |s|
|
12
|
+
s.rubyforge_project = 'riemann-aws'
|
13
|
+
|
14
|
+
s.name = 'riemann-aws'
|
15
|
+
s.version = '0.1.4'
|
16
|
+
s.author = 'Kyle Kingsbury'
|
17
|
+
s.email = 'aphyr@aphyr.com'
|
18
|
+
s.homepage = 'https://github.com/riemann/riemann-tools'
|
19
|
+
s.platform = Gem::Platform::RUBY
|
20
|
+
s.summary = 'Submits AWS stats to riemann.'
|
21
|
+
s.license = 'MIT'
|
22
|
+
|
23
|
+
s.add_dependency 'riemann-tools', '>= 0.2.13'
|
24
|
+
s.add_dependency 'fog', '>= 1.4.0'
|
25
|
+
s.add_dependency 'json'
|
26
|
+
|
27
|
+
s.files = FileList['bin/*', 'LICENSE', 'README.md'].to_a
|
28
|
+
s.executables |= Dir.entries('bin/')
|
29
|
+
s.has_rdoc = false
|
30
|
+
|
31
|
+
s.required_ruby_version = '>= 1.8.7'
|
32
|
+
end
|
33
|
+
|
34
|
+
Gem::PackageTask.new gemspec do |p|
|
35
|
+
end
|