riemann-tools 0.2.1 → 0.2.2
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/bin/riemann-aws-billing +1 -1
- data/bin/riemann-elasticsearch +1 -0
- data/bin/riemann-health +4 -2
- data/bin/riemann-proc +1 -1
- data/lib/riemann/tools.rb +4 -11
- metadata +2 -20
- data/bin/riemann-redis +0 -71
- data/bin/riemann-redis-slowlog +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b58978e25c07331c031e4575ffb46b7a04c3db5
|
4
|
+
data.tar.gz: 50649c44cd74a42dd1b7d9b82e27cbdfdb16341d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d2a3f364ed87b7d79252eafc11fb5d05c5ef000cc029460c08b1b1bd4457800329e3cf69dda990458e2fb91900b02413ebcb28c677ab696bb88a46790f14ef1
|
7
|
+
data.tar.gz: 491e357bbf23baac6fbee6172a6f8ecb81fb004280c4135bfe67d00945785bbc190531b97a93ff06fbcd248bb5e178243a2effc92ddb5f31ad198c342fc4d39a
|
data/bin/riemann-aws-billing
CHANGED
@@ -14,7 +14,7 @@ class Riemann::Tools::AWSBilling
|
|
14
14
|
|
15
15
|
opt :access_key, "AWS access key", :type => String
|
16
16
|
opt :secret_key, "Secret access key", :type => String
|
17
|
-
opt :services, "AWS services: AmazonEC2 AmazonS3 AWSDataTransfer", :type => strings, :multi => true, :default => ["AmazonEC2", "AmazonS3", "AWSDataTransfer"]
|
17
|
+
opt :services, "AWS services: AmazonEC2 AmazonS3 AWSDataTransfer", :type => :strings, :multi => true, :default => ["AmazonEC2", "AmazonS3", "AWSDataTransfer"]
|
18
18
|
|
19
19
|
opt :time_start, "Start time in seconds of the metrics period (2hrs ago default)", :type => Integer, :default => 7200
|
20
20
|
opt :time_end, "End time in seconds of the metrics period ", :type => Integer, :default => 60
|
data/bin/riemann-elasticsearch
CHANGED
data/bin/riemann-health
CHANGED
@@ -237,8 +237,10 @@ class Riemann::Tools::Health
|
|
237
237
|
def disk
|
238
238
|
`df -P`.split(/\n/).each do |r|
|
239
239
|
f = r.split(/\s+/)
|
240
|
-
next
|
241
|
-
|
240
|
+
next if f[0] == 'Filesystem'
|
241
|
+
next unless f[0] =~ /\// # Needs at least one slash in the mount path
|
242
|
+
|
243
|
+
# Calculate capacity
|
242
244
|
x = f[4].to_f/100
|
243
245
|
|
244
246
|
if x > @limits[:disk][:critical]
|
data/bin/riemann-proc
CHANGED
@@ -32,7 +32,7 @@ class Riemann::Tools::Proc
|
|
32
32
|
|
33
33
|
def linux_proc
|
34
34
|
process = opts[:proc_regex]
|
35
|
-
running = Integer(`ps axo args | grep #{process} | grep -v grep | grep -v riemann-proc | wc -l`)
|
35
|
+
running = Integer(`ps axo args | grep '#{process}' | grep -v grep | grep -v riemann-proc | wc -l`)
|
36
36
|
if running > @limits[:critical][:max] or running < @limits[:critical][:min]
|
37
37
|
alert "proc #{process}", :critical, running, "process #{process} is running #{running} instances"
|
38
38
|
else
|
data/lib/riemann/tools.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
module Riemann
|
2
2
|
module Tools
|
3
|
-
require 'rubygems'
|
4
3
|
require 'trollop'
|
5
4
|
require 'riemann/client'
|
6
|
-
require 'timeout'
|
7
5
|
|
8
6
|
def self.included(base)
|
9
7
|
base.instance_eval do
|
@@ -68,19 +66,14 @@ module Riemann
|
|
68
66
|
|
69
67
|
event = event.merge(attributes)
|
70
68
|
|
71
|
-
|
72
|
-
Timeout::timeout(options[:timeout]) do
|
73
|
-
riemann << event
|
74
|
-
end
|
75
|
-
rescue Timeout::Error
|
76
|
-
riemann.connect
|
77
|
-
end
|
69
|
+
riemann << event
|
78
70
|
end
|
79
71
|
|
80
72
|
def new_riemann_client
|
81
73
|
r = Riemann::Client.new(
|
82
|
-
:host
|
83
|
-
:port
|
74
|
+
:host => options[:host],
|
75
|
+
:port => options[:port],
|
76
|
+
:timeout => options[:timeout]
|
84
77
|
)
|
85
78
|
if options[:tcp]
|
86
79
|
r.tcp
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riemann-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Kingsbury
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: riemann-client
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.1.0
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: redis
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 3.0.2
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '>='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 3.0.2
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: fog
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,13 +129,11 @@ executables:
|
|
143
129
|
- riemann-munin
|
144
130
|
- riemann-aws-billing
|
145
131
|
- riemann-riak
|
146
|
-
- riemann-redis-slowlog
|
147
132
|
- riemann-varnish
|
148
133
|
- riemann-haproxy
|
149
134
|
- riemann-freeswitch
|
150
135
|
- riemann-aws-status
|
151
136
|
- riemann-nginx-status
|
152
|
-
- riemann-redis
|
153
137
|
- riemann-diskstats
|
154
138
|
- riemann-health
|
155
139
|
extensions: []
|
@@ -175,8 +159,6 @@ files:
|
|
175
159
|
- bin/riemann-nginx-status
|
176
160
|
- bin/riemann-proc
|
177
161
|
- bin/riemann-rabbitmq
|
178
|
-
- bin/riemann-redis
|
179
|
-
- bin/riemann-redis-slowlog
|
180
162
|
- bin/riemann-resmon
|
181
163
|
- bin/riemann-riak
|
182
164
|
- bin/riemann-riak-keys
|
data/bin/riemann-redis
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Gathers redis INFO statistics and submits them to Riemann.
|
4
|
-
|
5
|
-
require File.expand_path('../../lib/riemann/tools', __FILE__)
|
6
|
-
|
7
|
-
class Riemann::Tools::Redis
|
8
|
-
include Riemann::Tools
|
9
|
-
require 'redis'
|
10
|
-
|
11
|
-
opt :redis_host, "Redis hostname", :default => 'localhost'
|
12
|
-
opt :redis_port, "Redis port", :default => 6379
|
13
|
-
opt :redis_password, "Redis password", :default => ''
|
14
|
-
opt :redis_url, "Redis URL", :default => ''
|
15
|
-
opt :redis_socket, "Redis socket", :default => ''
|
16
|
-
opt :redis_section, "Redis INFO section", :default => 'default'
|
17
|
-
|
18
|
-
STRING_VALUES = %w{ redis_version redis_git_sha1 redis_mode os
|
19
|
-
multiplexing_api gcc_version run_id used_memory_human
|
20
|
-
used_memory_peak_human mem_allocator
|
21
|
-
rdb_last_bgsave_status aof_last_bgrewrite_status role }
|
22
|
-
|
23
|
-
def initialize
|
24
|
-
options = if opts[:redis_url] != ''
|
25
|
-
{ :url => opts[:redis_url] }
|
26
|
-
elsif opts[:redis_socket] != ''
|
27
|
-
{ :path => opts[:redis_socket] }
|
28
|
-
else
|
29
|
-
{ :host => opts[:redis_host], :port => opts[:redis_port] }
|
30
|
-
end
|
31
|
-
@redis = ::Redis.new(options)
|
32
|
-
@redis.auth(opts[:redis_password]) unless opts[:redis_password] == ''
|
33
|
-
@section = opts[:redis_section]
|
34
|
-
end
|
35
|
-
|
36
|
-
def tick
|
37
|
-
begin
|
38
|
-
@redis.info(@section).each do |property, value|
|
39
|
-
data = {
|
40
|
-
:host => opts[:redis_host].dup,
|
41
|
-
:service => "redis #{property}",
|
42
|
-
:metric => value.to_f,
|
43
|
-
:state => value.to_s,
|
44
|
-
:tags => ['redis']
|
45
|
-
}
|
46
|
-
|
47
|
-
if STRING_VALUES.include?(property) || property.match(/^db\d+/)
|
48
|
-
if %w{ rdb_last_bgsave_status aof_last_bgrewrite_status }.include?(property)
|
49
|
-
data[:state] = value
|
50
|
-
else
|
51
|
-
data[:description] = value
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
if property == "run_id"
|
56
|
-
data[:metric] = 0
|
57
|
-
end
|
58
|
-
|
59
|
-
report(data)
|
60
|
-
end
|
61
|
-
rescue ::Redis::CommandError => e
|
62
|
-
if e.message == "ERR operation not permitted"
|
63
|
-
@redis.auth(opts[:redis_password]) unless opts[:redis_password] == ''
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
Riemann::Tools::Redis.run
|
data/bin/riemann-redis-slowlog
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Gathers Redis SLOWLOG statistics and submits them to Riemann.
|
4
|
-
|
5
|
-
require File.expand_path('../../lib/riemann/tools', __FILE__)
|
6
|
-
|
7
|
-
class Riemann::Tools::RedisSlowlog
|
8
|
-
include Riemann::Tools
|
9
|
-
require 'redis'
|
10
|
-
|
11
|
-
opt :redis_url, "Redis URL", :default => 'redis://127.0.0.1:6379/'
|
12
|
-
opt :redis_password, "Redis password", :default => ''
|
13
|
-
opt :slowlog_len, "Number of SLOWLOG entries to get", :default => 10
|
14
|
-
opt :slowlog_reset, "Reset SLOWLOG after querying it", :default => false
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
@redis = ::Redis.new(url: opts[:redis_url])
|
18
|
-
|
19
|
-
@slowlog_len = opts[:slowlog_len]
|
20
|
-
@slowlog_reset = opts[:slowlog_reset]
|
21
|
-
|
22
|
-
@redis.auth(opts[:redis_password]) unless opts[:redis_password] == ''
|
23
|
-
end
|
24
|
-
|
25
|
-
def tick
|
26
|
-
@redis.slowlog("GET", @slowlog_len).each do |id, timestamp, us, cmd|
|
27
|
-
data = {
|
28
|
-
:host => @redis.client.host,
|
29
|
-
:service => "redis",
|
30
|
-
:time => timestamp,
|
31
|
-
:metric => us.to_f,
|
32
|
-
:state => 'warning',
|
33
|
-
:tags => ['redis', 'slowlog'],
|
34
|
-
:description => cmd.inspect
|
35
|
-
}
|
36
|
-
report(data)
|
37
|
-
end
|
38
|
-
|
39
|
-
@redis.slowlog("RESET") if @slowlog_reset
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
Riemann::Tools::RedisSlowlog.run
|