def json(opts={})
host = opts[:host]
plugin = opts[:plugin]
instances = opts[:instances][/\w.*/]
instances = instances.blank? ? '*' : '{' + instances.split('/').join(',') + '}'
percentiles = opts[:percentiles] !~ /^$|^false$/ ? true : false
resolution = opts[:resolution] || ""
rrdglob = "#{@rrddir}/#{host}/#{plugin}/#{instances}.rrd"
finish = parse_time(opts[:finish])
start = parse_time(opts[:start], :default => (finish - 3600 || (Time.now - 3600).to_i))
data = []
Dir.glob(rrdglob).map do |rrdname|
parts = rrdname.gsub(/#{@rrddir}\//, '').split('/')
host_name = parts[0]
plugin_name = parts[1]
instance_name = File.basename(parts[2], '.rrd')
rrd = Errand.new(:filename => rrdname)
data << { :plugin => plugin_name, :instance => instance_name,
:host => host_name,
:start => start,
:finish => finish,
:rrd => rrd,
:percentiles => percentiles,
:resolution => resolution}
end
encode(data)
end