bipbip 0.2.7 → 0.2.8
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/README.md +9 -0
- data/lib/bipbip/agent.rb +6 -3
- data/lib/bipbip/plugin/redis.rb +17 -1
- data/lib/bipbip/plugin/resque.rb +55 -0
- data/lib/bipbip/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 083225503257d0bef472a8af9249318fb5f8ebf1
|
4
|
+
data.tar.gz: c9ebda005ce2b5034b34a688c8e767849255f6e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 244d5a7981d237a0e7ca25df707a41fc2d76b5d696c800c67d9c3ed2a4dcf0b4edfb059cd27a5e225aab75a5da4975e3beaeabfe401e6818ebc1606a3d468fad
|
7
|
+
data.tar.gz: 76ea6d676ed59161fb69829621a49193f91484cc86a2a915905a434e91c416652697c21844c1ebe40ff9f7ac8cc8aa6ae33f5345fe229a015c93f77ce2ab4270
|
data/README.md
CHANGED
@@ -44,6 +44,13 @@ services:
|
|
44
44
|
plugin: redis
|
45
45
|
hostname: localhost
|
46
46
|
port: 6379
|
47
|
+
-
|
48
|
+
plugin: resque
|
49
|
+
hostname: localhost
|
50
|
+
port: 6379
|
51
|
+
database: 10
|
52
|
+
namespace: resque-prefix
|
53
|
+
frequency: 60
|
47
54
|
-
|
48
55
|
plugin: gearman
|
49
56
|
hostname: localhost
|
@@ -89,6 +96,8 @@ hostname: localhost
|
|
89
96
|
port: 11211
|
90
97
|
```
|
91
98
|
|
99
|
+
You can also set an override frequency per service in the main config or in these included configs.
|
100
|
+
|
92
101
|
Plugins
|
93
102
|
-------
|
94
103
|
#### fastcgi-php-fpm
|
data/lib/bipbip/agent.rb
CHANGED
@@ -56,13 +56,16 @@ module Bipbip
|
|
56
56
|
services = config['services'].to_a
|
57
57
|
if config['include']
|
58
58
|
include_path = File.expand_path(config['include'].to_s, File.dirname(config_file))
|
59
|
+
|
59
60
|
files = Dir[include_path + '/**/*.yaml', include_path + '/**/*.yml']
|
60
61
|
services += files.map { |file| YAML.load(File.open(file)) }
|
61
|
-
end
|
62
|
+
end
|
63
|
+
|
62
64
|
@plugins = services.map do |service|
|
63
65
|
service_name = service['plugin'].to_s
|
64
|
-
|
65
|
-
|
66
|
+
frequency = service['frequency'].nil? ? config['frequency'] : service['frequency'].to_i
|
67
|
+
service_config = service.reject { |key, value| ['plugin','frequency'].include?(key) }
|
68
|
+
Bipbip::Plugin.factory(service_name, service_config, frequency)
|
66
69
|
end
|
67
70
|
|
68
71
|
storages = config['storages'].to_a
|
data/lib/bipbip/plugin/redis.rb
CHANGED
@@ -10,9 +10,19 @@ module Bipbip
|
|
10
10
|
[
|
11
11
|
{:name => 'total_commands_processed', :type => 'counter', :unit => 'Commands'},
|
12
12
|
{:name => 'used_memory', :type => 'gauge', :unit => 'b'},
|
13
|
+
{:name => 'used_memory_rss', :type => 'gauge', :unit => 'b'},
|
14
|
+
{:name => 'mem_fragmentation_ratio', :type => 'gauge', :unit => 'Frag'},
|
15
|
+
{:name => 'connected_clients', :type => 'gauge', :unit => 'Clients'},
|
16
|
+
{:name => 'blocked_clients', :type => 'gauge', :unit => 'BlockedClients'},
|
13
17
|
]
|
14
18
|
end
|
15
19
|
|
20
|
+
def float_roundings
|
21
|
+
{
|
22
|
+
'mem_fragmentation_ratio' => 2
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
16
26
|
def monitor
|
17
27
|
redis = RedisClient.new(
|
18
28
|
:host => config['hostname'],
|
@@ -21,9 +31,15 @@ module Bipbip
|
|
21
31
|
stats = redis.info
|
22
32
|
redis.quit
|
23
33
|
|
34
|
+
roundings = float_roundings
|
24
35
|
data = {}
|
36
|
+
|
25
37
|
metrics_names.each do |key|
|
26
|
-
|
38
|
+
if !roundings[key].nil?
|
39
|
+
data[key] = stats[key].to_f.round(roundings[key])
|
40
|
+
else
|
41
|
+
data[key] = stats[key].to_i
|
42
|
+
end
|
27
43
|
end
|
28
44
|
data
|
29
45
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'redis'
|
2
|
+
require 'resque'
|
3
|
+
|
4
|
+
module Bipbip
|
5
|
+
|
6
|
+
class Plugin::Resque < Plugin
|
7
|
+
|
8
|
+
def metrics_schema
|
9
|
+
schema_list = [
|
10
|
+
{:name => 'num_workers', :type => 'counter', :unit => 'Workers'},
|
11
|
+
{:name => 'num_idle_workers', :type => 'counter', :unit => 'Workers'},
|
12
|
+
{:name => 'num_active_workers', :type => 'counter', :unit => 'Workers'},
|
13
|
+
]
|
14
|
+
|
15
|
+
with_resque_connection do
|
16
|
+
::Resque.queues.each do |queue|
|
17
|
+
schema_list << {:name => "queue_size_#{sanitize_queue_name(queue)}", :type => 'gauge', :unit => 'Jobs'}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
schema_list
|
22
|
+
end
|
23
|
+
|
24
|
+
def sanitize_queue_name(queue)
|
25
|
+
queue.gsub(/\s/, '-')
|
26
|
+
end
|
27
|
+
|
28
|
+
def with_resque_connection
|
29
|
+
redis = ::Redis.new(
|
30
|
+
:host => config['hostname'] || 'localhost',
|
31
|
+
:port => config['port'] || 6369
|
32
|
+
)
|
33
|
+
redis.select config['database']
|
34
|
+
::Resque.redis = redis
|
35
|
+
::Resque.redis.namespace = config['namespace'] unless config['namespace'].nil?
|
36
|
+
|
37
|
+
yield
|
38
|
+
|
39
|
+
redis.quit
|
40
|
+
end
|
41
|
+
|
42
|
+
def monitor
|
43
|
+
data = {}
|
44
|
+
with_resque_connection do
|
45
|
+
data['num_workers'] = ::Resque.workers.count
|
46
|
+
data['num_idle_workers'] = ::Resque.workers.select { |w| w.idle? }.count
|
47
|
+
data['num_active_workers'] = data['num_workers'] - data['num_idle_workers']
|
48
|
+
::Resque.queues.each do |queue|
|
49
|
+
data["queue_size_#{sanitize_queue_name(queue)}"] = ::Resque.size(queue).to_i
|
50
|
+
end
|
51
|
+
end
|
52
|
+
data
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/bipbip/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bipbip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cargo Media
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-03-
|
13
|
+
date: 2014-03-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: copperegg
|
@@ -82,6 +82,20 @@ dependencies:
|
|
82
82
|
- - ">="
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: resque
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '1.25'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '1.25'
|
85
99
|
- !ruby/object:Gem::Dependency
|
86
100
|
name: rake
|
87
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +151,7 @@ files:
|
|
137
151
|
- lib/bipbip/plugin/nginx.rb
|
138
152
|
- lib/bipbip/plugin/php_apc.rb
|
139
153
|
- lib/bipbip/plugin/redis.rb
|
154
|
+
- lib/bipbip/plugin/resque.rb
|
140
155
|
- lib/bipbip/storage.rb
|
141
156
|
- lib/bipbip/storage/copperegg.rb
|
142
157
|
- lib/bipbip/version.rb
|