bipbip 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -1
- data/data/php-opcache-status.php +4 -0
- data/lib/bipbip/plugin/fastcgi_php_opcache.rb +39 -0
- data/lib/bipbip/version.rb +1 -1
- metadata +11 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1054a8f8fa64e0cb8b7bfddb26712c4e65e83231
|
4
|
+
data.tar.gz: e3cfd1999f70edd0fec2cf3dcf4beb2699d56dd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f44ef61f199785f7db60f11b7520b75e905c58561255915f8711223fb9a1ca5200d75d4683e5fdf790d60034832942ddd78221fd9c8730bfba4a12638849f817
|
7
|
+
data.tar.gz: 1a6a20bad5c22b06c1d9525cb8d4b8abb077fbfa28adb4e5d667c17c1cf1cd9642e1a00e51bbe384af52e56a259b12362bb5092df553392d7d7731f0b7d7212a
|
data/README.md
CHANGED
@@ -68,6 +68,10 @@ services:
|
|
68
68
|
plugin: fastcgi-php-apc
|
69
69
|
host: localhost
|
70
70
|
port: 9000
|
71
|
+
-
|
72
|
+
plugin: fastcgi-php-opcache
|
73
|
+
host: localhost
|
74
|
+
port: 9000
|
71
75
|
```
|
72
76
|
|
73
77
|
Include configuration
|
@@ -86,13 +90,16 @@ port: 11211
|
|
86
90
|
```
|
87
91
|
|
88
92
|
Plugins
|
89
|
-
|
93
|
+
-------
|
90
94
|
#### fastcgi-php-fpm
|
91
95
|
Requires the `cgi-fcgi` program (debian package: `libfcgi0ldbl`).
|
92
96
|
|
93
97
|
#### fastcgi-php-apc
|
94
98
|
Requires the `cgi-fcgi` program (debian package: `libfcgi0ldbl`).
|
95
99
|
|
100
|
+
#### fastcgi-php-opcache
|
101
|
+
Requires the `cgi-fcgi` program (debian package: `libfcgi0ldbl`).
|
102
|
+
|
96
103
|
#### php-apc
|
97
104
|
To collect `APC` stats of your apache process, please install the following script.
|
98
105
|
|
@@ -110,3 +117,11 @@ Alias /apc-status /usr/local/bin/apc-status.php
|
|
110
117
|
```
|
111
118
|
|
112
119
|
Then set the `url`-configuration for the plugin to where the script is being served, e.g. `http//localhost:80/apc-status`.
|
120
|
+
|
121
|
+
Custom external plugins
|
122
|
+
-----------------------
|
123
|
+
Additional plugins can be created as independent gems.
|
124
|
+
They should include a class `Plugin::MyPlugin` in the `BipBip` module extending `Plugin`.
|
125
|
+
On that class the functions `metrics_schema` and `monitor` should be implemented.
|
126
|
+
|
127
|
+
For a complete example see [cargomedia/bipbip-random-example](https://github.com/cargomedia/bipbip-random-example).
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Bipbip
|
2
|
+
|
3
|
+
class Plugin::FastcgiPhpOpcache < Plugin
|
4
|
+
|
5
|
+
def metrics_schema
|
6
|
+
[
|
7
|
+
{:name => 'free_memory', :type => 'gauge', :unit => 'b'},
|
8
|
+
{:name => 'current_wasted_percentage', :type => 'gauge', :unit => '%'},
|
9
|
+
{:name => 'num_cached_keys', :type => 'gauge', :unit => 'Keys'},
|
10
|
+
{:name => 'opcache_hit_rate', :type => 'gauge', :unit => 'Hits'},
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
def monitor
|
15
|
+
authority = config['host'].to_s + ':' + config['port'].to_s
|
16
|
+
path = File.join(Bipbip::Helper.data_path, 'php-opcache-status.php')
|
17
|
+
|
18
|
+
env_backup = ENV.to_hash
|
19
|
+
ENV['REQUEST_METHOD'] = 'GET'
|
20
|
+
ENV['SCRIPT_NAME'] = File.basename(path)
|
21
|
+
ENV['SCRIPT_FILENAME'] = path
|
22
|
+
response = `cgi-fcgi -bind -connect #{authority.shellescape} 2>&1`
|
23
|
+
ENV.replace(env_backup)
|
24
|
+
|
25
|
+
body = response.split(/\r?\n\r?\n/)[1]
|
26
|
+
raise "FastCGI response has no body: #{response}" unless body
|
27
|
+
stats = JSON.parse(body)
|
28
|
+
|
29
|
+
stats_memory = stats['memory_usage']
|
30
|
+
stats_statistics = stats['opcache_statistics']
|
31
|
+
{
|
32
|
+
:free_memory => stats_memory['free_memory'].to_i,
|
33
|
+
:current_wasted_percentage => stats_memory['current_wasted_percentage'].to_i,
|
34
|
+
:num_cached_keys => stats_statistics['num_cached_keys'].to_i,
|
35
|
+
:opcache_hit_rate => stats_statistics['opcache_hit_rate'].to_i,
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/bipbip/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cargo Media
|
8
|
+
- kris-lab
|
9
|
+
- njam
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date:
|
13
|
+
date: 2014-03-07 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: copperegg
|
@@ -118,11 +120,16 @@ files:
|
|
118
120
|
- LICENSE
|
119
121
|
- README.md
|
120
122
|
- bin/bipbip
|
123
|
+
- data/apc-status.php
|
124
|
+
- data/php-opcache-status.php
|
125
|
+
- lib/bipbip.rb
|
121
126
|
- lib/bipbip/agent.rb
|
122
127
|
- lib/bipbip/helper.rb
|
128
|
+
- lib/bipbip/plugin.rb
|
123
129
|
- lib/bipbip/plugin/apache2.rb
|
124
130
|
- lib/bipbip/plugin/fastcgi_php_apc.rb
|
125
131
|
- lib/bipbip/plugin/fastcgi_php_fpm.rb
|
132
|
+
- lib/bipbip/plugin/fastcgi_php_opcache.rb
|
126
133
|
- lib/bipbip/plugin/gearman.rb
|
127
134
|
- lib/bipbip/plugin/memcached.rb
|
128
135
|
- lib/bipbip/plugin/mysql.rb
|
@@ -130,13 +137,10 @@ files:
|
|
130
137
|
- lib/bipbip/plugin/nginx.rb
|
131
138
|
- lib/bipbip/plugin/php_apc.rb
|
132
139
|
- lib/bipbip/plugin/redis.rb
|
133
|
-
- lib/bipbip/plugin.rb
|
134
|
-
- lib/bipbip/storage/copperegg.rb
|
135
140
|
- lib/bipbip/storage.rb
|
141
|
+
- lib/bipbip/storage/copperegg.rb
|
136
142
|
- lib/bipbip/version.rb
|
137
|
-
- lib/bipbip.rb
|
138
143
|
- lib/interruptible_sleep.rb
|
139
|
-
- data/apc-status.php
|
140
144
|
homepage: https://github.com/cargomedia/bipbip
|
141
145
|
licenses:
|
142
146
|
- MIT
|
@@ -157,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
161
|
version: '0'
|
158
162
|
requirements: []
|
159
163
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.
|
164
|
+
rubygems_version: 2.2.2
|
161
165
|
signing_key:
|
162
166
|
specification_version: 4
|
163
167
|
summary: Gather services data and store in CopperEgg
|