class CdnManagerPcacheProbe::Connector
Public Class Methods
new(url, options = {})
click to toggle source
# File lib/cdn_manager_pcache_probe/connector.rb, line 6 def initialize(url, options = {}) @url = url @options = options end
Public Instance Methods
get_live_probe()
click to toggle source
# File lib/cdn_manager_pcache_probe/connector.rb, line 11 def get_live_probe get_probe(Time.now) end
get_probe(options = {})
click to toggle source
# File lib/cdn_manager_pcache_probe/connector.rb, line 15 def get_probe(options = {}) probe = JSON.parse( RestClient.get( @url, params: { source: query(options) } ) ) puts "Response: \n" + JSON.pretty_generate(probe) if options[:debug] probe["aggregations"]["bytes_sent"]["value"] end
query(options = {})
click to toggle source
# File lib/cdn_manager_pcache_probe/connector.rb, line 25 def query(options = {}) interval = (options[:interval] || 5).to_i delay = (options[:delay] || 5).to_i volume_key_filter = "\"volume_key\": \"#{options[:key]}\"" if options[:key] query = %Q({ "size": 0, "query": { "bool": { "filter": [ { "range": { "@timestamp": { "gt": "now-#{interval + delay}m", "lt": "now-#{delay}m" } } }, { "term": { "type": "pcache" #{", " + volume_key_filter if options[:key]} } } ] } }, "aggs": { "bytes_sent": { "sum": { "field": "body_bytes_sent" } } } }).gsub(/\A[[:space:]]+/, '').gsub(/[[:space:]]+\z/, '').gsub(/[[:space:]]+/, ' ') puts "Query: \n" + JSON.pretty_generate(JSON.parse(query)) if options[:debug] query end