#! /usr/bin/ruby1.8 require "libisi" init_libisi(:ui => "console") args = optparse cf = Pathname.new(__FILE__).dirname + "../conf/prisma/environment.rb" if cf.exist? require cf else require "/etc/prisma/environment.rb" end Prisma::Database.load_classes("pumpy") if ARGV[0] == "config" print "graph_title Sink flows \n" print "graph_category Alois\n" print "graph_vlabel records\n" for klass in Prisma::Database.get_classes(:raw) print "#{klass.table_name}_drops.label #{klass.table_name}_drops\n" print "#{klass.table_name}_drops.type DERIVE\n" print "#{klass.table_name}_drops.min 0\n" print "#{klass.table_name}_incoming.label #{klass.table_name}_incoming\n" print "#{klass.table_name}_incoming.type DERIVE\n" print "#{klass.table_name}_incoming.min 0\n" print "#{klass.table_name}_outgoing.label #{klass.table_name}_outgoing\n" print "#{klass.table_name}_outgoing.type DERIVE\n" print "#{klass.table_name}_outgoing.min 0\n" end else for klass in Prisma::Database.get_classes(:raw) # queue_size queue_size = klass.approx_count # drops drops = RawsState.connection.select_value("SELECT sum(delete_value) FROM #{RawsState.table_name} WHERE table_name='#{klass.table_name}'") || 0 drops = drops.to_i print "#{klass.table_name}_drops.value #{drops}\n" # incoming incoming = klass.auto_increment print "#{klass.table_name}_incoming.value #{incoming}\n" # outgoing print "#{klass.table_name}_outgoing.value #{incoming - queue_size - drops}\n" end end