class Bipbip::Plugin::FastcgiPhpApc
Public Instance Methods
_fetch_apc_stats()
click to toggle source
@return [Hash]
# File lib/bipbip/plugin/fastcgi_php_apc.rb, line 13 def _fetch_apc_stats authority = config['host'].to_s + ':' + config['port'].to_s path = if config.key?('path') config['path'].to_s else File.join(Bipbip::Helper.data_path, 'apc-status.php') end env_backup = ENV.to_hash ENV['REQUEST_METHOD'] = 'GET' ENV['SCRIPT_NAME'] = File.basename(path) ENV['SCRIPT_FILENAME'] = path response = `cgi-fcgi -bind -connect #{authority.shellescape} 2>&1` ENV.replace(env_backup) body = response.split(/\r?\n\r?\n/)[1] raise "FastCGI response has no body: #{response}" unless body JSON.parse(body) end
metrics_schema()
click to toggle source
# File lib/bipbip/plugin/fastcgi_php_apc.rb, line 3 def metrics_schema [ { name: 'opcode_mem_size', type: 'gauge', unit: 'b' }, { name: 'user_mem_size', type: 'gauge', unit: 'b' }, { name: 'used_mem_size', type: 'gauge', unit: 'b' }, { name: 'used_mem_percentage', type: 'gauge', unit: '%' } ] end
monitor()
click to toggle source
# File lib/bipbip/plugin/fastcgi_php_apc.rb, line 33 def monitor stats = _fetch_apc_stats { opcode_mem_size: stats['opcode_mem_size'].to_i, user_mem_size: stats['user_mem_size'].to_i, used_mem_size: stats['used_mem_size'].to_i, used_mem_percentage: (stats['used_mem_size'].to_f / stats['total_mem_size'].to_f) * 100 } end