riemann-redis-keys 0.0.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 +7 -0
- data/README.md +21 -0
- data/bin/riemann-redis-keys +67 -0
- metadata +74 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: af3b5a5a359001d4bdee472bba116b0bbb46dbcc
|
4
|
+
data.tar.gz: 39e4df9ff66021c4bfdcbcf37552a1849c40137f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bd08d3b74cb96a0ceb48ae1f097223b7ace7cce98800e1ee5c1655a57ca65e55fe7c2805ccad3e8af8c463b506db98a1923b94f803212a85cac72d0e2ce96a3e
|
7
|
+
data.tar.gz: f93b642e5472b11b5bd327940a7a1eea9f83197c22998b2d7bbafbd59cbce422d10eb465e2f6b93524cd67ffd2898f8103ef008a2512698d34ae5d452aab64e3
|
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Riemann Redis Keys
|
2
|
+
|
3
|
+
A simple redis riemann client based on https://github.com/riemann/riemann-redis
|
4
|
+
Supports reporting the size/cardinality/length of the following key types:
|
5
|
+
|
6
|
+
* list
|
7
|
+
* set
|
8
|
+
* zset
|
9
|
+
* hash
|
10
|
+
* string
|
11
|
+
|
12
|
+
## Usage
|
13
|
+
|
14
|
+
```bash
|
15
|
+
riemann-redis-keys --redis-key "key:one" --redis-key "other:key"
|
16
|
+
```
|
17
|
+
|
18
|
+
Specify additional conneciton info:
|
19
|
+
```
|
20
|
+
riemann-redis-keys --redis-key "other:key" --redis-url "redis://localhost:6379"
|
21
|
+
```
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'riemann/tools'
|
3
|
+
require 'pry'
|
4
|
+
|
5
|
+
class Riemann::Tools::RedisKeys
|
6
|
+
include Riemann::Tools
|
7
|
+
require 'redis'
|
8
|
+
|
9
|
+
opt :redis_host, "Redis hostname", :default => 'localhost'
|
10
|
+
opt :redis_port, "Redis port", :default => 6379
|
11
|
+
opt :redis_password, "Redis password", :default => ''
|
12
|
+
opt :redis_url, "Redis URL", :default => ''
|
13
|
+
opt :redis_socket, "Redis socket", :default => ''
|
14
|
+
opt :redis_section, "Redis INFO section", :type => String, :multi => true, :default => 'default'
|
15
|
+
opt :redis_key, "Redis keys", :type => :strings, :multi => true
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
options = if opts[:redis_url] != ''
|
19
|
+
{ :url => opts[:redis_url] }
|
20
|
+
elsif opts[:redis_socket] != ''
|
21
|
+
{ :path => opts[:redis_socket] }
|
22
|
+
else
|
23
|
+
{ :host => opts[:redis_host], :port => opts[:redis_port] }
|
24
|
+
end
|
25
|
+
@redis = ::Redis.new(options)
|
26
|
+
@redis.auth(opts[:redis_password]) unless opts[:redis_password] == ''
|
27
|
+
@key_types = Hash[opts[:redis_key].collect { |v| [v.first, nil] }]
|
28
|
+
|
29
|
+
@key_operations = {"list" => :llen, "set" => :scard, "zset" => :zcard,
|
30
|
+
"hash" => :hlen, "string" => :strlen}
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def tick
|
36
|
+
begin
|
37
|
+
@key_types.each do |key, key_type|
|
38
|
+
type = key_type
|
39
|
+
# If nil, grab type from redis
|
40
|
+
if type.nil?
|
41
|
+
t = @redis.type key
|
42
|
+
@key_types[key] = t unless t == "none"
|
43
|
+
end
|
44
|
+
|
45
|
+
if !type.nil?
|
46
|
+
value = @redis.send(@key_operations[type], key)
|
47
|
+
|
48
|
+
data = {
|
49
|
+
:host => opts[:redis_host].dup,
|
50
|
+
:service => "redis #{key}",
|
51
|
+
:metric => value.to_s,
|
52
|
+
:state => value.to_s,
|
53
|
+
:tags => ['redis']
|
54
|
+
}
|
55
|
+
|
56
|
+
report(data)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
rescue ::Redis::CommandError => e
|
60
|
+
if e.message == "ERR operation not permitted"
|
61
|
+
@redis.auth(opts[:redis_password]) unless opts[:redis_password] == ''
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
Riemann::Tools::RedisKeys.run
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: riemann-redis-keys
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stuart Quin
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-11-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: riemann-tools
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.2.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.2.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: redis
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.2
|
41
|
+
description: Monitor redis key size/length and report back to riemann
|
42
|
+
email: stuart.quin@gmail.com
|
43
|
+
executables:
|
44
|
+
- riemann-redis-keys
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- README.md
|
49
|
+
- bin/riemann-redis-keys
|
50
|
+
homepage: https://github.com/stuartquin/riemann-redis-keys
|
51
|
+
licenses:
|
52
|
+
- MIT
|
53
|
+
metadata: {}
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options: []
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.8.7
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
requirements: []
|
69
|
+
rubyforge_project: riemann-redis-keys
|
70
|
+
rubygems_version: 2.2.2
|
71
|
+
signing_key:
|
72
|
+
specification_version: 4
|
73
|
+
summary: Monitor redis key size/length and report back to riemann
|
74
|
+
test_files: []
|