# File lib/visage-app/collectd/json.rb, line 76
      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